diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..f2a672928 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,80 @@ +# EditorConfig is awesome:http://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Don't use tabs for indentation. +[*] +indent_style = space +# (Please don't specify an indent_size here; that has too many unintended consequences.) + +# Code files +[*.{cs,csx,vb,vbx}] +indent_size = 4 +insert_final_newline = true +charset = utf-8-bom + +# Xml project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 2 + +# Xml config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 + +# JSON files +[*.json] +indent_size = 2 + +# Dotnet code style settings: +[*.{cs,vb}] +# Sort using and Import directives with System.* appearing first +dotnet_sort_system_directives_first = true +# Avoid "this." and "Me." if not necessary +dotnet_style_qualification_for_field = false:suggestion +dotnet_style_qualification_for_property = false:suggestion +dotnet_style_qualification_for_method = false:suggestion +dotnet_style_qualification_for_event = false:suggestion + +# Use language keywords instead of framework type names for type references +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion + +# Suggest more modern language features when available +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion + +# CSharp code style settings: +[*.cs] +# Prefer "var" everywhere +#csharp_style_var_for_built_in_types = true:suggestion +#csharp_style_var_when_type_is_apparent = false:suggestion +#csharp_style_var_elsewhere = true:suggestion + +# Prefer method-like constructs to have a expression-body +csharp_style_expression_bodied_methods = true:none +csharp_style_expression_bodied_constructors = true:none +csharp_style_expression_bodied_operators = true:none + +# Prefer property-like constructs to have an expression-body +csharp_style_expression_bodied_properties = true:none +csharp_style_expression_bodied_indexers = true:none +csharp_style_expression_bodied_accessors = true:none + +# Suggest more modern language features when available +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +# Newline settings +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 0a575e9a8..1cf0fcd08 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,6 @@ -*.doc diff=astextplain +* text=auto + +*.doc diff=astextplain *.DOC diff=astextplain *.docx diff=astextplain *.DOCX diff=astextplain diff --git a/.gitignore b/.gitignore index ea0f2334b..360431748 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /*.suo .vs/ +.vscode/ bin/ obj/ /*.user @@ -8,5 +9,13 @@ _Resharper* NuGet.exe *.user *.nupkg +.nupkgs/ .docstats -*.ide/ \ No newline at end of file +*.ide/ +*.lock.json +*.coverage +Test.DB.* +TestResults/ +Dapper.Tests/*.sdf +Dapper.Tests/SqlServerTypes/ +.dotnet/* \ No newline at end of file diff --git a/.hgignore b/.hgignore deleted file mode 100644 index e398d2c33..000000000 --- a/.hgignore +++ /dev/null @@ -1,11 +0,0 @@ -/*.suo -bin/* -obj/* -/*.user -glob:Dapper/NuGet.exe -syntax: glob -*.docstates -glob:Dapper.Contrib/NuGet.exe -*.nupkg -*/NuGet.exe -_ReSharper.* diff --git a/.hgtags b/.hgtags deleted file mode 100644 index 4608df0ad..000000000 --- a/.hgtags +++ /dev/null @@ -1,6 +0,0 @@ -f4a04d92d07a1186974442dfeec1e9b44a221685 #nuget dapper release 1.5 -924b2d19b9b8b86457076a532daca84848c8b9ad #nuget dapper 1.6 -f4a04d92d07a1186974442dfeec1e9b44a221685 #nuget dapper release 1.5 -0000000000000000000000000000000000000000 #nuget dapper release 1.5 -924b2d19b9b8b86457076a532daca84848c8b9ad #nuget dapper 1.6 -0000000000000000000000000000000000000000 #nuget dapper 1.6 diff --git a/.nuget/packages.config b/.nuget/packages.config deleted file mode 100644 index af17f43c1..000000000 --- a/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Dapper NET35 SNK/Dapper NET35 SNK.csproj b/Dapper NET35 SNK/Dapper NET35 SNK.csproj deleted file mode 100644 index 1c1bd4927..000000000 --- a/Dapper NET35 SNK/Dapper NET35 SNK.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {02BA5431-EBE0-4E06-A01C-71C1A0D74379} - Library - Properties - Dapper - Dapper - v3.5 - 512 - - - true - full - false - bin\Debug\ - TRACE;DEBUG;CSHARP30 - prompt - 4 - 3 - bin\Debug\Dapper.xml - true - false - - - pdbonly - true - bin\Release\ - TRACE;CSHARP30 - prompt - 4 - 3 - bin\Release\Dapper.xml - true - false - - - true - - - ..\Dapper.snk - - - - - - - - - - AssemblyInfo.cs - - - SqlMapper.cs - - - - - - - - \ No newline at end of file diff --git a/Dapper NET35/Dapper NET35.csproj b/Dapper NET35/Dapper NET35.csproj deleted file mode 100644 index 8b031ad1c..000000000 --- a/Dapper NET35/Dapper NET35.csproj +++ /dev/null @@ -1,66 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {B26305D8-3A89-4D68-A981-9BBF378B81FA} - Library - Properties - Dapper - Dapper - v3.5 - 512 - - - true - full - false - bin\Debug\ - TRACE;DEBUG;CSHARP30 - prompt - 4 - 3 - bin\Debug\Dapper.xml - true - false - - - pdbonly - true - bin\Release\ - TRACE;CSHARP30 - prompt - 4 - 3 - bin\Release\Dapper.xml - true - false - - - - - - - - - - AssemblyInfo.cs - - - SqlMapper.cs - - - - - - - - \ No newline at end of file diff --git a/Dapper NET40 SNK/Dapper NET40 SNK.csproj b/Dapper NET40 SNK/Dapper NET40 SNK.csproj deleted file mode 100644 index 3c063af2f..000000000 --- a/Dapper NET40 SNK/Dapper NET40 SNK.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7} - Library - Properties - Dapper - Dapper - v4.0 - 512 - Client - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - bin\Debug\Dapper.xml - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.xml - true - false - - - true - - - ..\Dapper.snk - - - - - - - - - - - AssemblyInfo.cs - - - SqlMapper.cs - - - - - - - - \ No newline at end of file diff --git a/Dapper NET40/Dapper NET40.csproj b/Dapper NET40/Dapper NET40.csproj deleted file mode 100644 index 184454708..000000000 --- a/Dapper NET40/Dapper NET40.csproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7} - Library - Properties - Dapper - Dapper - v4.0 - 512 - Client - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - bin\Debug\Dapper.xml - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.xml - true - false - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper NET40/Properties/AssemblyInfo.cs b/Dapper NET40/Properties/AssemblyInfo.cs deleted file mode 100644 index 6f1b77c19..000000000 --- a/Dapper NET40/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System; - -// 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("Dapper")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Stack Exchange")] -[assembly: AssemblyProduct("Dapper")] -[assembly: AssemblyCopyright("Copyright © Sam Saffron 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: CLSCompliant(true)] -// 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("59080aa9-fa65-438f-ad2e-772d840effa9")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/Dapper NET40/SqlMapper.cs b/Dapper NET40/SqlMapper.cs deleted file mode 100644 index a7efe556c..000000000 --- a/Dapper NET40/SqlMapper.cs +++ /dev/null @@ -1,6144 +0,0 @@ -/* - License: http://www.apache.org/licenses/LICENSE-2.0 - Home page: http://code.google.com/p/dapper-dot-net/ - - Note: to build on C# 3.0 + .NET 3.5, include the CSHARP30 compiler symbol (and yes, - I know the difference between language and runtime versions; this is a compromise). - */ - -#if DNXCORE50 -using IDbDataParameter = global::System.Data.Common.DbParameter; -using IDataParameter = global::System.Data.Common.DbParameter; -using IDbTransaction = global::System.Data.Common.DbTransaction; -using IDbConnection = global::System.Data.Common.DbConnection; -using IDbCommand = global::System.Data.Common.DbCommand; -using IDataReader = global::System.Data.Common.DbDataReader; -using IDataRecord = global::System.Data.Common.DbDataReader; -using IDataParameterCollection = global::System.Data.Common.DbParameterCollection; -using DataException = global::System.InvalidOperationException; -using ApplicationException = global::System.InvalidOperationException; -#endif - -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Linq; -using System.Reflection; -using System.Reflection.Emit; -using System.Text; -using System.Threading; -using System.Text.RegularExpressions; -using System.Diagnostics; -using System.Globalization; -using System.Linq.Expressions; -using System.Data.Common; - -namespace Dapper -{ - [AssemblyNeutral, AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct, AllowMultiple = false, Inherited = false)] - internal sealed class AssemblyNeutralAttribute : Attribute { } - - /// - /// Additional state flags that control command behaviour - /// - [Flags] - public enum CommandFlags - { - /// - /// No additional flags - /// - None = 0, - /// - /// Should data be buffered before returning? - /// - Buffered = 1, - /// - /// Can async queries be pipelined? - /// - Pipelined = 2, - /// - /// Should the plan cache be bypassed? - /// - NoCache = 4, - } - /// - /// Represents the key aspects of a sql operation - /// - public struct CommandDefinition - { - internal static CommandDefinition ForCallback(object parameters) - { - if(parameters is DynamicParameters) - { - return new CommandDefinition(parameters); - } - else - { - return default(CommandDefinition); - } - } - private readonly string commandText; - private readonly object parameters; - private readonly IDbTransaction transaction; - private readonly int? commandTimeout; - private readonly CommandType? commandType; - private readonly CommandFlags flags; - - - internal void OnCompleted() - { - if (parameters is SqlMapper.IParameterCallbacks) - { - ((SqlMapper.IParameterCallbacks)parameters).OnCompleted(); - } - } - /// - /// The command (sql or a stored-procedure name) to execute - /// - public string CommandText { get { return commandText; } } - /// - /// The parameters associated with the command - /// - public object Parameters { get { return parameters; } } - /// - /// The active transaction for the command - /// - public IDbTransaction Transaction { get { return transaction; } } - /// - /// The effective timeout for the command - /// - public int? CommandTimeout { get { return commandTimeout; } } - /// - /// The type of command that the command-text represents - /// - public CommandType? CommandType { get { return commandType; } } - - /// - /// Should data be buffered before returning? - /// - public bool Buffered { get { return (flags & CommandFlags.Buffered) != 0; } } - - /// - /// Should the plan for this query be cached? - /// - internal bool AddToCache { get { return (flags & CommandFlags.NoCache) == 0; } } - - /// - /// Additional state flags against this command - /// - public CommandFlags Flags { get { return flags; } } - - /// - /// Can async queries be pipelined? - /// - public bool Pipelined { get { return (flags & CommandFlags.Pipelined) != 0; } } - - /// - /// Initialize the command definition - /// -#if CSHARP30 - public CommandDefinition(string commandText, object parameters, IDbTransaction transaction, int? commandTimeout, - CommandType? commandType, CommandFlags flags) -#else - public CommandDefinition(string commandText, object parameters = null, IDbTransaction transaction = null, int? commandTimeout = null, - CommandType? commandType = null, CommandFlags flags = CommandFlags.Buffered -#if ASYNC - , CancellationToken cancellationToken = default(CancellationToken) -#endif - ) -#endif - { - this.commandText = commandText; - this.parameters = parameters; - this.transaction = transaction; - this.commandTimeout = commandTimeout; - this.commandType = commandType; - this.flags = flags; -#if ASYNC - this.cancellationToken = cancellationToken; -#endif - } - - private CommandDefinition(object parameters) : this() - { - this.parameters = parameters; - } - -#if ASYNC - private readonly CancellationToken cancellationToken; - /// - /// For asynchronous operations, the cancellation-token - /// - public CancellationToken CancellationToken { get { return cancellationToken; } } -#endif - - internal IDbCommand SetupCommand(IDbConnection cnn, Action paramReader) - { - var cmd = cnn.CreateCommand(); - var init = GetInit(cmd.GetType()); - if (init != null) init(cmd); - if (transaction != null) - cmd.Transaction = transaction; - cmd.CommandText = commandText; - if (commandTimeout.HasValue) - cmd.CommandTimeout = commandTimeout.Value; - if (commandType.HasValue) - cmd.CommandType = commandType.Value; - if (paramReader != null) - { - paramReader(cmd, parameters); - } - return cmd; - } - - static SqlMapper.Link> commandInitCache; - static Action GetInit(Type commandType) - { - if (commandType == null) return null; // GIGO - Action action; - if (SqlMapper.Link>.TryGet(commandInitCache, commandType, out action)) - { - return action; - } - var bindByName = GetBasicPropertySetter(commandType, "BindByName", typeof(bool)); - var initialLongFetchSize = GetBasicPropertySetter(commandType, "InitialLONGFetchSize", typeof(int)); - - action = null; - if (bindByName != null || initialLongFetchSize != null) - { - var method = new DynamicMethod(commandType.Name + "_init", null, new Type[] { typeof(IDbCommand) }); - var il = method.GetILGenerator(); - - if (bindByName != null) - { - // .BindByName = true - il.Emit(OpCodes.Ldarg_0); - il.Emit(OpCodes.Castclass, commandType); - il.Emit(OpCodes.Ldc_I4_1); - il.EmitCall(OpCodes.Callvirt, bindByName, null); - } - if (initialLongFetchSize != null) - { - // .InitialLONGFetchSize = -1 - il.Emit(OpCodes.Ldarg_0); - il.Emit(OpCodes.Castclass, commandType); - il.Emit(OpCodes.Ldc_I4_M1); - il.EmitCall(OpCodes.Callvirt, initialLongFetchSize, null); - } - il.Emit(OpCodes.Ret); - action = (Action)method.CreateDelegate(typeof(Action)); - } - // cache it - SqlMapper.Link>.TryAdd(ref commandInitCache, commandType, ref action); - return action; - } - static MethodInfo GetBasicPropertySetter(Type declaringType, string name, Type expectedType) - { - var prop = declaringType.GetProperty(name, BindingFlags.Public | BindingFlags.Instance); - ParameterInfo[] indexers; - if (prop != null && prop.CanWrite && prop.PropertyType == expectedType - && ((indexers = prop.GetIndexParameters()) == null || indexers.Length == 0)) - { - return prop.GetSetMethod(); - } - return null; - } - } - - /// - /// Dapper, a light weight object mapper for ADO.NET - /// - static partial class SqlMapper - { - /// - /// Implement this interface to pass an arbitrary db specific set of parameters to Dapper - /// - public partial interface IDynamicParameters - { - /// - /// Add all the parameters needed to the command just before it executes - /// - /// The raw command prior to execution - /// Information about the query - void AddParameters(IDbCommand command, Identity identity); - } - - /// - /// Extends IDynamicParameters providing by-name lookup of parameter values - /// - public interface IParameterLookup : IDynamicParameters - { - /// - /// Get the value of the specified parameter (return null if not found) - /// - object this[string name] { get; } - } - - /// - /// Extends IDynamicParameters with facilities for executing callbacks after commands have completed - /// - public partial interface IParameterCallbacks : IDynamicParameters - { - /// - /// Invoked when the command has executed - /// - void OnCompleted(); - } - - /// - /// Implement this interface to pass an arbitrary db specific parameter to Dapper - /// - [AssemblyNeutral] - public interface ICustomQueryParameter - { - /// - /// Add the parameter needed to the command before it executes - /// - /// The raw command prior to execution - /// Parameter name - void AddParameter(IDbCommand command, string name); - } - - /// - /// Implement this interface to perform custom type-based parameter handling and value parsing - /// - [AssemblyNeutral] - public interface ITypeHandler - { - /// - /// Assign the value of a parameter before a command executes - /// - /// The parameter to configure - /// Parameter value - void SetValue(IDbDataParameter parameter, object value); - - /// - /// Parse a database value back to a typed value - /// - /// The value from the database - /// The type to parse to - /// The typed value - object Parse(Type destinationType, object value); - } -#if !DNXCORE50 - /// - /// A type handler for data-types that are supported by the underlying provider, but which need - /// a well-known UdtTypeName to be specified - /// - public class UdtTypeHandler : ITypeHandler - { - private readonly string udtTypeName; - /// - /// Creates a new instance of UdtTypeHandler with the specified UdtTypeName - /// - public UdtTypeHandler(string udtTypeName) - { - if (string.IsNullOrEmpty(udtTypeName)) throw new ArgumentException("Cannot be null or empty", udtTypeName); - this.udtTypeName = udtTypeName; - } - object ITypeHandler.Parse(Type destinationType, object value) - { - return value is DBNull ? null : value; - } - - void ITypeHandler.SetValue(IDbDataParameter parameter, object value) - { - parameter.Value = SanitizeParameterValue(value); - if (parameter is System.Data.SqlClient.SqlParameter) - { - ((System.Data.SqlClient.SqlParameter)parameter).UdtTypeName = udtTypeName; - } - } - } -#endif - - /// - /// Base-class for simple type-handlers - /// - public abstract class TypeHandler : ITypeHandler - { - /// - /// Assign the value of a parameter before a command executes - /// - /// The parameter to configure - /// Parameter value - public abstract void SetValue(IDbDataParameter parameter, T value); - - /// - /// Parse a database value back to a typed value - /// - /// The value from the database - /// The typed value - public abstract T Parse(object value); - - void ITypeHandler.SetValue(IDbDataParameter parameter, object value) - { - if (value is DBNull) - { - parameter.Value = value; - } - else - { - SetValue(parameter, (T)value); - } - } - - object ITypeHandler.Parse(Type destinationType, object value) - { - return Parse(value); - } - } - - /// - /// Implement this interface to change default mapping of reader columns to type members - /// - public interface ITypeMap - { - /// - /// Finds best constructor - /// - /// DataReader column names - /// DataReader column types - /// Matching constructor or default one - ConstructorInfo FindConstructor(string[] names, Type[] types); - - /// - /// 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. - /// - ConstructorInfo FindExplicitConstructor(); - - /// - /// Gets mapping for constructor parameter - /// - /// Constructor to resolve - /// DataReader column name - /// Mapping implementation - IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName); - - /// - /// Gets member mapping for column - /// - /// DataReader column name - /// Mapping implementation - IMemberMap GetMember(string columnName); - } - - /// - /// Implements this interface to provide custom member mapping - /// - public interface IMemberMap - { - /// - /// Source DataReader column name - /// - string ColumnName { get; } - - /// - /// Target member type - /// - Type MemberType { get; } - - /// - /// Target property - /// - PropertyInfo Property { get; } - - /// - /// Target field - /// - FieldInfo Field { get; } - - /// - /// Target constructor parameter - /// - ParameterInfo Parameter { get; } - } - - /// - /// 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. - /// - internal partial class Link where TKey : class - { - public static bool TryGet(Link link, TKey key, out TValue value) - { - while (link != null) - { - if ((object)key == (object)link.Key) - { - value = link.Value; - return true; - } - link = link.Tail; - } - value = default(TValue); - return false; - } - public static bool TryAdd(ref Link head, TKey key, ref TValue value) - { - bool tryAgain; - do - { - var snapshot = Interlocked.CompareExchange(ref head, null, null); - TValue found; - if (TryGet(snapshot, key, out found)) - { // existing match; report the existing value instead - value = found; - return false; - } - var newNode = new Link(key, value, snapshot); - // did somebody move our cheese? - tryAgain = Interlocked.CompareExchange(ref head, newNode, snapshot) != snapshot; - } while (tryAgain); - return true; - } - private Link(TKey key, TValue value, Link tail) - { - Key = key; - Value = value; - Tail = tail; - } - public TKey Key { get; private set; } - public TValue Value { get; private set; } - public Link Tail { get; private set; } - } - partial class CacheInfo - { - public DeserializerState Deserializer { get; set; } - public Func[] OtherDeserializers { get; set; } - public Action ParamReader { get; set; } - private int hitCount; - public int GetHitCount() { return Interlocked.CompareExchange(ref hitCount, 0, 0); } - public void RecordHit() { Interlocked.Increment(ref hitCount); } - } - static int GetColumnHash(IDataReader reader) - { - unchecked - { - int colCount = reader.FieldCount, hash = colCount; - for (int i = 0; i < colCount; i++) - { // binding code is only interested in names - not types - object tmp = reader.GetName(i); - hash = (hash * 31) + (tmp == null ? 0 : tmp.GetHashCode()); - } - return hash; - } - } - struct DeserializerState - { - public readonly int Hash; - public readonly Func Func; - - public DeserializerState(int hash, Func func) - { - Hash = hash; - Func = func; - } - } - - /// - /// Called if the query cache is purged via PurgeQueryCache - /// - public static event EventHandler QueryCachePurged; - private static void OnQueryCachePurged() - { - var handler = QueryCachePurged; - if (handler != null) handler(null, EventArgs.Empty); - } -#if CSHARP30 - private static readonly Dictionary _queryCache = new Dictionary(); - // note: conflicts between readers and writers are so short-lived that it isn't worth the overhead of - // ReaderWriterLockSlim etc; a simple lock is faster - private static void SetQueryCache(Identity key, CacheInfo value) - { - lock (_queryCache) { _queryCache[key] = value; } - } - private static bool TryGetQueryCache(Identity key, out CacheInfo value) - { - lock (_queryCache) { return _queryCache.TryGetValue(key, out value); } - } - private static void PurgeQueryCacheByType(Type type) - { - lock (_queryCache) - { - var toRemove = _queryCache.Keys.Where(id => id.type == type).ToArray(); - foreach (var key in toRemove) - _queryCache.Remove(key); - } - } - /// - /// Purge the query cache - /// - public static void PurgeQueryCache() - { - lock (_queryCache) - { - _queryCache.Clear(); - } - OnQueryCachePurged(); - } -#else - static readonly System.Collections.Concurrent.ConcurrentDictionary _queryCache = new System.Collections.Concurrent.ConcurrentDictionary(); - private static void SetQueryCache(Identity key, CacheInfo value) - { - if (Interlocked.Increment(ref collect) == COLLECT_PER_ITEMS) - { - CollectCacheGarbage(); - } - _queryCache[key] = value; - } - - private static void CollectCacheGarbage() - { - try - { - foreach (var pair in _queryCache) - { - if (pair.Value.GetHitCount() <= COLLECT_HIT_COUNT_MIN) - { - CacheInfo cache; - _queryCache.TryRemove(pair.Key, out cache); - } - } - } - - finally - { - Interlocked.Exchange(ref collect, 0); - } - } - - private const int COLLECT_PER_ITEMS = 1000, COLLECT_HIT_COUNT_MIN = 0; - private static int collect; - private static bool TryGetQueryCache(Identity key, out CacheInfo value) - { - if (_queryCache.TryGetValue(key, out value)) - { - value.RecordHit(); - return true; - } - value = null; - return false; - } - - /// - /// Purge the query cache - /// - public static void PurgeQueryCache() - { - _queryCache.Clear(); - OnQueryCachePurged(); - } - - private static void PurgeQueryCacheByType(Type type) - { - foreach (var entry in _queryCache) - { - CacheInfo cache; - if (entry.Key.type == type) - _queryCache.TryRemove(entry.Key, out cache); - } - } - - /// - /// Return a count of all the cached queries by dapper - /// - /// - public static int GetCachedSQLCount() - { - return _queryCache.Count; - } - - /// - /// Return a list of all the queries cached by dapper - /// - /// - /// - public static IEnumerable> GetCachedSQL(int ignoreHitCountAbove = int.MaxValue) - { - var data = _queryCache.Select(pair => Tuple.Create(pair.Key.connectionString, pair.Key.sql, pair.Value.GetHitCount())); - if (ignoreHitCountAbove < int.MaxValue) data = data.Where(tuple => tuple.Item3 <= ignoreHitCountAbove); - return data; - } - - /// - /// Deep diagnostics only: find any hash collisions in the cache - /// - /// - public static IEnumerable> GetHashCollissions() - { - var counts = new Dictionary(); - foreach (var key in _queryCache.Keys) - { - int count; - if (!counts.TryGetValue(key.hashCode, out count)) - { - counts.Add(key.hashCode, 1); - } - else - { - counts[key.hashCode] = count + 1; - } - } - return from pair in counts - where pair.Value > 1 - select Tuple.Create(pair.Key, pair.Value); - - } -#endif - - - static Dictionary typeMap; - - static SqlMapper() - { - typeMap = new Dictionary(); - typeMap[typeof(byte)] = DbType.Byte; - typeMap[typeof(sbyte)] = DbType.SByte; - typeMap[typeof(short)] = DbType.Int16; - typeMap[typeof(ushort)] = DbType.UInt16; - typeMap[typeof(int)] = DbType.Int32; - typeMap[typeof(uint)] = DbType.UInt32; - typeMap[typeof(long)] = DbType.Int64; - typeMap[typeof(ulong)] = DbType.UInt64; - typeMap[typeof(float)] = DbType.Single; - typeMap[typeof(double)] = DbType.Double; - typeMap[typeof(decimal)] = DbType.Decimal; - typeMap[typeof(bool)] = DbType.Boolean; - typeMap[typeof(string)] = DbType.String; - typeMap[typeof(char)] = DbType.StringFixedLength; - typeMap[typeof(Guid)] = DbType.Guid; - typeMap[typeof(DateTime)] = DbType.DateTime; - typeMap[typeof(DateTimeOffset)] = DbType.DateTimeOffset; - typeMap[typeof(TimeSpan)] = DbType.Time; - typeMap[typeof(byte[])] = DbType.Binary; - typeMap[typeof(byte?)] = DbType.Byte; - typeMap[typeof(sbyte?)] = DbType.SByte; - typeMap[typeof(short?)] = DbType.Int16; - typeMap[typeof(ushort?)] = DbType.UInt16; - typeMap[typeof(int?)] = DbType.Int32; - typeMap[typeof(uint?)] = DbType.UInt32; - typeMap[typeof(long?)] = DbType.Int64; - typeMap[typeof(ulong?)] = DbType.UInt64; - typeMap[typeof(float?)] = DbType.Single; - typeMap[typeof(double?)] = DbType.Double; - typeMap[typeof(decimal?)] = DbType.Decimal; - typeMap[typeof(bool?)] = DbType.Boolean; - typeMap[typeof(char?)] = DbType.StringFixedLength; - typeMap[typeof(Guid?)] = DbType.Guid; - typeMap[typeof(DateTime?)] = DbType.DateTime; - typeMap[typeof(DateTimeOffset?)] = DbType.DateTimeOffset; - typeMap[typeof(TimeSpan?)] = DbType.Time; - typeMap[typeof(object)] = DbType.Object; -#if !DNXCORE50 - AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), false); -#endif - } - - /// - /// Clear the registered type handlers - /// - public static void ResetTypeHandlers() - { - typeHandlers = new Dictionary(); -#if !DNXCORE50 - AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), true); -#endif - } - /// - /// Configure the specified type to be mapped to a given db-type - /// - public static void AddTypeMap(Type type, DbType dbType) - { - // use clone, mutate, replace to avoid threading issues - var snapshot = typeMap; - - DbType oldValue; - if (snapshot.TryGetValue(type, out oldValue) && oldValue == dbType) return; // nothing to do - - var newCopy = new Dictionary(snapshot); - newCopy[type] = dbType; - typeMap = newCopy; - } - - /// - /// Configure the specified type to be processed by a custom handler - /// - public static void AddTypeHandler(Type type, ITypeHandler handler) - { - AddTypeHandlerImpl(type, handler, true); - } - - /// - /// Configure the specified type to be processed by a custom handler - /// - public static void AddTypeHandlerImpl(Type type, ITypeHandler handler, bool clone) - { - if (type == null) throw new ArgumentNullException("type"); - - Type secondary = null; - if(type.IsValueType()) - { - var underlying = Nullable.GetUnderlyingType(type); - if(underlying == null) - { - secondary = typeof(Nullable<>).MakeGenericType(type); // the Nullable - // type is already the T - } - else - { - secondary = type; // the Nullable - type = underlying; // the T - } - } - - var snapshot = typeHandlers; - ITypeHandler oldValue; - if (snapshot.TryGetValue(type, out oldValue) && handler == oldValue) return; // nothing to do - - var newCopy = clone ? new Dictionary(snapshot) : snapshot; - -#pragma warning disable 618 - typeof(TypeHandlerCache<>).MakeGenericType(type).GetMethod("SetHandler", BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, new object[] { handler }); - if(secondary != null) - { - typeof(TypeHandlerCache<>).MakeGenericType(secondary).GetMethod("SetHandler", BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, new object[] { handler }); - } -#pragma warning restore 618 - if (handler == null) - { - newCopy.Remove(type); - if (secondary != null) newCopy.Remove(secondary); - } - else - { - newCopy[type] = handler; - if(secondary != null) newCopy[secondary] = handler; - } - typeHandlers = newCopy; - } - - /// - /// Configure the specified type to be processed by a custom handler - /// - public static void AddTypeHandler(TypeHandler handler) - { - AddTypeHandlerImpl(typeof(T), handler, true); - } - - /// - /// Not intended for direct usage - /// - [Obsolete("Not intended for direct usage", false)] -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - public static class TypeHandlerCache - { - /// - /// Not intended for direct usage - /// - [Obsolete("Not intended for direct usage", true)] - public static T Parse(object value) - { - return (T)handler.Parse(typeof(T), value); - - } - - /// - /// Not intended for direct usage - /// - [Obsolete("Not intended for direct usage", true)] - public static void SetValue(IDbDataParameter parameter, object value) - { - handler.SetValue(parameter, value); - } - - internal static void SetHandler(ITypeHandler handler) - { -#pragma warning disable 618 - TypeHandlerCache.handler = handler; -#pragma warning restore 618 - } - - private static ITypeHandler handler; - } - - private static Dictionary typeHandlers = new Dictionary(); - - internal const string LinqBinary = "System.Data.Linq.Binary"; - - /// - /// Get the DbType that maps to a given value - /// - [Obsolete("This method is for internal use only")] -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - public static DbType GetDbType(object value) - { - if (value == null || value is DBNull) return DbType.Object; - - ITypeHandler handler; - return LookupDbType(value.GetType(), "n/a", false, out handler); - - } - internal static DbType LookupDbType(Type type, string name, bool demand, out ITypeHandler handler) - { - DbType dbType; - handler = null; - var nullUnderlyingType = Nullable.GetUnderlyingType(type); - if (nullUnderlyingType != null) type = nullUnderlyingType; - if (type.IsEnum() && !typeMap.ContainsKey(type)) - { - type = Enum.GetUnderlyingType(type); - } - if (typeMap.TryGetValue(type, out dbType)) - { - return dbType; - } - if (type.FullName == LinqBinary) - { - return DbType.Binary; - } - if (typeHandlers.TryGetValue(type, out handler)) - { - return DbType.Object; - } - if (typeof(IEnumerable).IsAssignableFrom(type)) - { - return DynamicParameters.EnumerableMultiParameter; - } - -#if !DNXCORE50 - switch (type.FullName) - { - case "Microsoft.SqlServer.Types.SqlGeography": - AddTypeHandler(type, handler = new UdtTypeHandler("geography")); - return DbType.Object; - case "Microsoft.SqlServer.Types.SqlGeometry": - AddTypeHandler(type, handler = new UdtTypeHandler("geometry")); - return DbType.Object; - case "Microsoft.SqlServer.Types.SqlHierarchyId": - AddTypeHandler(type, handler = new UdtTypeHandler("hierarchyid")); - return DbType.Object; - } -#endif - if(demand) - throw new NotSupportedException(string.Format("The member {0} of type {1} cannot be used as a parameter value", name, type.FullName)); - return DbType.Object; - - } - - /// - /// Identity of a cached query in Dapper, used for extensibility - /// - public partial class Identity : IEquatable - { - internal Identity ForGrid(Type primaryType, int gridIndex) - { - return new Identity(sql, commandType, connectionString, primaryType, parametersType, null, gridIndex); - } - - internal Identity ForGrid(Type primaryType, Type[] otherTypes, int gridIndex) - { - return new Identity(sql, commandType, connectionString, primaryType, parametersType, otherTypes, gridIndex); - } - /// - /// Create an identity for use with DynamicParameters, internal use only - /// - /// - /// - public Identity ForDynamicParameters(Type type) - { - return new Identity(sql, commandType, connectionString, this.type, type, null, -1); - } - - internal Identity(string sql, CommandType? commandType, IDbConnection connection, Type type, Type parametersType, Type[] otherTypes) - : this(sql, commandType, connection.ConnectionString, type, parametersType, otherTypes, 0) - { } - private Identity(string sql, CommandType? commandType, string connectionString, Type type, Type parametersType, Type[] otherTypes, int gridIndex) - { - this.sql = sql; - this.commandType = commandType; - this.connectionString = connectionString; - this.type = type; - this.parametersType = parametersType; - this.gridIndex = gridIndex; - unchecked - { - hashCode = 17; // we *know* we are using this in a dictionary, so pre-compute this - hashCode = hashCode * 23 + commandType.GetHashCode(); - hashCode = hashCode * 23 + gridIndex.GetHashCode(); - hashCode = hashCode * 23 + (sql == null ? 0 : sql.GetHashCode()); - hashCode = hashCode * 23 + (type == null ? 0 : type.GetHashCode()); - if (otherTypes != null) - { - foreach (var t in otherTypes) - { - hashCode = hashCode * 23 + (t == null ? 0 : t.GetHashCode()); - } - } - hashCode = hashCode * 23 + (connectionString == null ? 0 : SqlMapper.connectionStringComparer.GetHashCode(connectionString)); - hashCode = hashCode * 23 + (parametersType == null ? 0 : parametersType.GetHashCode()); - } - } - - /// - /// - /// - /// - /// - public override bool Equals(object obj) - { - return Equals(obj as Identity); - } - /// - /// The sql - /// - public readonly string sql; - /// - /// The command type - /// - public readonly CommandType? commandType; - - /// - /// - /// - public readonly int hashCode, gridIndex; - /// - /// - /// - public readonly Type type; - /// - /// - /// - public readonly string connectionString; - /// - /// - /// - public readonly Type parametersType; - /// - /// - /// - /// - public override int GetHashCode() - { - return hashCode; - } - /// - /// Compare 2 Identity objects - /// - /// - /// - public bool Equals(Identity other) - { - return - other != null && - gridIndex == other.gridIndex && - type == other.type && - sql == other.sql && - commandType == other.commandType && - SqlMapper.connectionStringComparer.Equals(connectionString, other.connectionString) && - parametersType == other.parametersType; - } - } - - /// - /// Obtains the data as a list; if it is *already* a list, the original object is returned without - /// any duplication; otherwise, ToList() is invoked. - /// - public static List AsList(this IEnumerable source) - { - return (source == null || source is List) ? (List)source : source.ToList(); - } - -#if CSHARP30 - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute(this IDbConnection cnn, string sql, object param) - { - return Execute(cnn, sql, param, null, null, null); - } - - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute(this IDbConnection cnn, string sql, object param, IDbTransaction transaction) - { - return Execute(cnn, sql, param, transaction, null, null); - } - - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute(this IDbConnection cnn, string sql, object param, CommandType commandType) - { - return Execute(cnn, sql, param, null, null, commandType); - } - - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, CommandType commandType) - { - return Execute(cnn, sql, param, transaction, null, commandType); - } - - /// - /// Execute parameterized SQL and return an - /// - /// An that can be used to iterate over the results of the SQL query. - public static IDataReader ExecuteReader(this IDbConnection cnn, string sql, object param) - { - return ExecuteReader(cnn, sql, param, null, null, null); - } - - /// - /// Execute parameterized SQL and return an - /// - /// An that can be used to iterate over the results of the SQL query. - public static IDataReader ExecuteReader(this IDbConnection cnn, string sql, object param, IDbTransaction transaction) - { - return ExecuteReader(cnn, sql, param, transaction, null, null); - } - - /// - /// Execute parameterized SQL and return an - /// - /// An that can be used to iterate over the results of the SQL query. - public static IDataReader ExecuteReader(this IDbConnection cnn, string sql, object param, CommandType commandType) - { - return ExecuteReader(cnn, sql, param, null, null, commandType); - } - - /// - /// Execute parameterized SQL and return an - /// - /// An that can be used to iterate over the results of the SQL query. - public static IDataReader ExecuteReader(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, CommandType commandType) - { - return ExecuteReader(cnn, sql, param, transaction, null, commandType); - } - - /// - /// 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). - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, object param) - { - return Query(cnn, sql, param, null, true, null, null); - } - - /// - /// 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). - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, object param, IDbTransaction transaction) - { - return Query(cnn, sql, param, transaction, true, null, null); - } - - /// - /// 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). - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, object param, CommandType commandType) - { - return Query(cnn, sql, param, null, true, null, commandType); - } - - /// - /// 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). - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, CommandType commandType) - { - return Query(cnn, sql, param, transaction, true, null, commandType); - } - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static GridReader QueryMultiple(this IDbConnection cnn, string sql, object param, IDbTransaction transaction) - { - return QueryMultiple(cnn, sql, param, transaction, null, null); - } - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static GridReader QueryMultiple(this IDbConnection cnn, string sql, object param, CommandType commandType) - { - return QueryMultiple(cnn, sql, param, null, null, commandType); - } - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static GridReader QueryMultiple(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, CommandType commandType) - { - return QueryMultiple(cnn, sql, param, transaction, null, commandType); - } -#endif - - - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteImpl(cnn, ref command); - } - /// - /// Execute parameterized SQL - /// - /// Number of rows affected - public static int Execute(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteImpl(cnn, ref command); - } - - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static object ExecuteScalar( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteScalarImpl(cnn, ref command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static T ExecuteScalar( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteScalarImpl(cnn, ref command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static object ExecuteScalar(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteScalarImpl(cnn, ref command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static T ExecuteScalar(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteScalarImpl(cnn, ref command); - } - - private static IEnumerable GetMultiExec(object param) - { - return (param is IEnumerable - && !(param is string || param is IEnumerable> - )) ? (IEnumerable)param : null; - } - - private static int ExecuteImpl(this IDbConnection cnn, ref CommandDefinition command) - { - object param = command.Parameters; - IEnumerable multiExec = GetMultiExec(param); - Identity identity; - CacheInfo info = null; - if (multiExec != null) - { -#if ASYNC - if((command.Flags & CommandFlags.Pipelined) != 0) - { - // this includes all the code for concurrent/overlapped query - return ExecuteMultiImplAsync(cnn, command, multiExec).Result; - } -#endif - bool isFirst = true; - int total = 0; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - if (wasClosed) cnn.Open(); - using (var cmd = command.SetupCommand(cnn, null)) - { - string masterSql = null; - foreach (var obj in multiExec) - { - if (isFirst) - { - masterSql = cmd.CommandText; - isFirst = false; - identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); - info = GetCacheInfo(identity, obj, command.AddToCache); - } - else - { - cmd.CommandText = masterSql; // because we do magic replaces on "in" etc - cmd.Parameters.Clear(); // current code is Add-tastic - } - info.ParamReader(cmd, obj); - total += cmd.ExecuteNonQuery(); - } - } - command.OnCompleted(); - } finally - { - if (wasClosed) cnn.Close(); - } - return total; - } - - // nice and simple - if (param != null) - { - identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); - info = GetCacheInfo(identity, param, command.AddToCache); - } - return ExecuteCommand(cnn, ref command, param == null ? null : info.ParamReader); - } - - /// - /// 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 . - /// - /// - /// - /// - /// - /// - public static IDataReader ExecuteReader( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - IDbCommand dbcmd; - var reader = ExecuteReaderImpl(cnn, ref command, CommandBehavior.Default, out dbcmd); - return new WrappedReader(dbcmd, reader); - } - - /// - /// 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 . - /// - public static IDataReader ExecuteReader(this IDbConnection cnn, CommandDefinition command) - { - IDbCommand dbcmd; - var reader = ExecuteReaderImpl(cnn, ref command, CommandBehavior.Default, out dbcmd); - return new WrappedReader(dbcmd, reader); - } - /// - /// 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 . - /// - public static IDataReader ExecuteReader(this IDbConnection cnn, CommandDefinition command, CommandBehavior commandBehavior) - { - IDbCommand dbcmd; - var reader = ExecuteReaderImpl(cnn, ref command, commandBehavior, out dbcmd); - return new WrappedReader(dbcmd, reader); - } - -#if !CSHARP30 - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> - public static IEnumerable Query(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null) - { - return Query(cnn, sql, param as object, transaction, buffered, commandTimeout, commandType); - } -#else - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - public static IEnumerable> Query(this IDbConnection cnn, string sql, object param) - { - return Query(cnn, sql, param, null, true, null, null); - } - - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - public static IEnumerable> Query(this IDbConnection cnn, string sql, object param, IDbTransaction transaction) - { - return Query(cnn, sql, param, transaction, true, null, null); - } - - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - public static IEnumerable> Query(this IDbConnection cnn, string sql, object param, CommandType? commandType) - { - return Query(cnn, sql, param, null, true, null, commandType); - } - - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - public static IEnumerable> Query(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, CommandType? commandType) - { - return Query(cnn, sql, param, transaction, true, null, commandType); - } - - /// - /// Return a list of dynamic objects, reader is closed after the call - /// - public static IEnumerable> Query(this IDbConnection cnn, string sql, object param, IDbTransaction transaction, bool buffered, int? commandTimeout, CommandType? commandType) - { - return Query>(cnn, sql, param, transaction, buffered, commandTimeout, commandType); - } -#endif - - /// - /// 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). - /// - public static IEnumerable Query( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, bool buffered, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); - var data = QueryImpl(cnn, command, typeof(T)); - return command.Buffered ? data.ToList() : data; - } - - /// - /// Executes a 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). - /// - public static IEnumerable Query( -#if CSHARP30 -this IDbConnection cnn, Type type, string sql, object param, IDbTransaction transaction, bool buffered, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null -#endif - ) - { - if (type == null) throw new ArgumentNullException("type"); - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); - var data = QueryImpl(cnn, command, type); - return command.Buffered ? data.ToList() : data; - } - /// - /// 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). - /// - public static IEnumerable Query(this IDbConnection cnn, CommandDefinition command) - { - var data = QueryImpl(cnn, command, typeof(T)); - return command.Buffered ? data.ToList() : data; - } - - - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static GridReader QueryMultiple( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else - this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return QueryMultipleImpl(cnn, ref command); - } - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static GridReader QueryMultiple(this IDbConnection cnn, CommandDefinition command) - { - return QueryMultipleImpl(cnn, ref command); - } - private static GridReader QueryMultipleImpl(this IDbConnection cnn, ref CommandDefinition command) - { - object param = command.Parameters; - Identity identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(GridReader), param == null ? null : param.GetType(), null); - CacheInfo info = GetCacheInfo(identity, param, command.AddToCache); - - IDbCommand cmd = null; - IDataReader reader = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - if (wasClosed) cnn.Open(); - cmd = command.SetupCommand(cnn, info.ParamReader); - reader = cmd.ExecuteReader(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess); - - var result = new GridReader(cmd, reader, identity, command.Parameters as DynamicParameters, command.AddToCache); - cmd = null; // now owned by result - wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader - // with the CloseConnection flag, so the reader will deal with the connection; we - // still need something in the "finally" to ensure that broken SQL still results - // in the connection closing itself - return result; - } - catch - { - if (reader != null) - { - if (!reader.IsClosed) try { cmd.Cancel(); } - catch { /* don't spoil the existing exception */ } - reader.Dispose(); - } - if (cmd != null) cmd.Dispose(); - if (wasClosed) cnn.Close(); - throw; - } - } - - private static IEnumerable QueryImpl(this IDbConnection cnn, CommandDefinition command, Type effectiveType) - { - object param = command.Parameters; - var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param == null ? null : param.GetType(), null); - var info = GetCacheInfo(identity, param, command.AddToCache); - - IDbCommand cmd = null; - IDataReader reader = null; - - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - cmd = command.SetupCommand(cnn, info.ParamReader); - - if (wasClosed) cnn.Open(); - reader = cmd.ExecuteReader(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess); - wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader - // with the CloseConnection flag, so the reader will deal with the connection; we - // still need something in the "finally" to ensure that broken SQL still results - // in the connection closing itself - var tuple = info.Deserializer; - int hash = GetColumnHash(reader); - if (tuple.Func == null || tuple.Hash != hash) - { - if (reader.FieldCount == 0) //https://code.google.com/p/dapper-dot-net/issues/detail?id=57 - yield break; - tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); - if(command.AddToCache) SetQueryCache(identity, info); - } - - var func = tuple.Func; - var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; - while (reader.Read()) - { - object val = func(reader); - if (val == null || val is T) { - yield return (T)val; - } else { - yield return (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); - } - } - while (reader.NextResult()) { } - // happy path; close the reader cleanly - no - // need for "Cancel" etc - reader.Dispose(); - reader = null; - - command.OnCompleted(); - } - finally - { - if (reader != null) - { - if (!reader.IsClosed) try { cmd.Cancel(); } - catch { /* don't spoil the existing exception */ } - reader.Dispose(); - } - if (wasClosed) cnn.Close(); - if (cmd != null) cmd.Dispose(); - } - } - - /// - /// 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? - /// - public static IEnumerable Query( -#if CSHARP30 -this IDbConnection cnn, string sql, Func map, object param, IDbTransaction transaction, bool buffered, string splitOn, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - - /// - /// 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 - /// - /// - public static IEnumerable Query( -#if CSHARP30 -this IDbConnection cnn, string sql, Func map, object param, IDbTransaction transaction, bool buffered, string splitOn, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - - /// - /// Perform a multi mapping query with 4 input parameters - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static IEnumerable Query( -#if CSHARP30 -this IDbConnection cnn, string sql, Func map, object param, IDbTransaction transaction, bool buffered, string splitOn, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - -#if !CSHARP30 - /// - /// Perform a multi mapping query with 5 input parameters - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static IEnumerable Query( - this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null -) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - - /// - /// Perform a multi mapping query with 6 input parameters - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static IEnumerable Query( - this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null -) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - - - /// - /// Perform a multi mapping query with 7 input parameters - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMap(cnn, sql, map, param as object, transaction, buffered, splitOn, commandTimeout, commandType); - } - - /// - /// 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? - /// - public static IEnumerable Query(this IDbConnection cnn, string sql, Type[] types, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); - var results = MultiMapImpl(cnn, command, types, map, splitOn, null, null, true); - return buffered ? results.ToList() : results; - } -#endif - partial class DontMap { } - static IEnumerable MultiMap( - this IDbConnection cnn, string sql, Delegate map, object param, IDbTransaction transaction, bool buffered, string splitOn, int? commandTimeout, CommandType? commandType) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); - var results = MultiMapImpl(cnn, command, map, splitOn, null, null, true); - return buffered ? results.ToList() : results; - } - - static IEnumerable MultiMapImpl(this IDbConnection cnn, CommandDefinition command, Delegate map, string splitOn, IDataReader reader, Identity identity, bool finalize) - { - object param = command.Parameters; - identity = identity ?? new Identity(command.CommandText, command.CommandType, cnn, typeof(TFirst), param == null ? null : param.GetType(), new[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }); - CacheInfo cinfo = GetCacheInfo(identity, param, command.AddToCache); - - IDbCommand ownedCommand = null; - IDataReader ownedReader = null; - - bool wasClosed = cnn != null && cnn.State == ConnectionState.Closed; - try - { - if (reader == null) - { - ownedCommand = command.SetupCommand(cnn, cinfo.ParamReader); - if (wasClosed) cnn.Open(); - ownedReader = ownedCommand.ExecuteReader(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess); - reader = ownedReader; - } - DeserializerState deserializer = default(DeserializerState); - Func[] otherDeserializers = null; - - int hash = GetColumnHash(reader); - if ((deserializer = cinfo.Deserializer).Func == null || (otherDeserializers = cinfo.OtherDeserializers) == null || hash != deserializer.Hash) - { - var deserializers = GenerateDeserializers(new Type[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }, splitOn, reader); - deserializer = cinfo.Deserializer = new DeserializerState(hash, deserializers[0]); - otherDeserializers = cinfo.OtherDeserializers = deserializers.Skip(1).ToArray(); - if(command.AddToCache) SetQueryCache(identity, cinfo); - } - - Func mapIt = GenerateMapper(deserializer.Func, otherDeserializers, map); - - if (mapIt != null) - { - while (reader.Read()) - { - yield return mapIt(reader); - } - if(finalize) - { - while (reader.NextResult()) { } - command.OnCompleted(); - } - } - } - finally - { - try - { - if (ownedReader != null) - { - ownedReader.Dispose(); - } - } - finally - { - if (ownedCommand != null) - { - ownedCommand.Dispose(); - } - if (wasClosed) cnn.Close(); - } - } - } - - static IEnumerable MultiMapImpl(this IDbConnection cnn, CommandDefinition command, Type[] types, Func map, string splitOn, IDataReader reader, Identity identity, bool finalize) - { - if (types.Length < 1) - { - throw new ArgumentException("you must provide at least one type to deserialize"); - } - - object param = command.Parameters; - identity = identity ?? new Identity(command.CommandText, command.CommandType, cnn, types[0], param == null ? null : param.GetType(), types); - CacheInfo cinfo = GetCacheInfo(identity, param, command.AddToCache); - - IDbCommand ownedCommand = null; - IDataReader ownedReader = null; - - bool wasClosed = cnn != null && cnn.State == ConnectionState.Closed; - try - { - if (reader == null) - { - ownedCommand = command.SetupCommand(cnn, cinfo.ParamReader); - if (wasClosed) cnn.Open(); - ownedReader = ownedCommand.ExecuteReader(); - reader = ownedReader; - } - DeserializerState deserializer = default(DeserializerState); - Func[] otherDeserializers = null; - - int hash = GetColumnHash(reader); - if ((deserializer = cinfo.Deserializer).Func == null || (otherDeserializers = cinfo.OtherDeserializers) == null || hash != deserializer.Hash) - { - var deserializers = GenerateDeserializers(types, splitOn, reader); - deserializer = cinfo.Deserializer = new DeserializerState(hash, deserializers[0]); - otherDeserializers = cinfo.OtherDeserializers = deserializers.Skip(1).ToArray(); - SetQueryCache(identity, cinfo); - } - - Func mapIt = GenerateMapper(types.Length, deserializer.Func, otherDeserializers, map); - - if (mapIt != null) - { - while (reader.Read()) - { - yield return mapIt(reader); - } - if (finalize) - { - while (reader.NextResult()) { } - command.OnCompleted(); - } - } - } - finally - { - try - { - if (ownedReader != null) - { - ownedReader.Dispose(); - } - } - finally - { - if (ownedCommand != null) - { - ownedCommand.Dispose(); - } - if (wasClosed) cnn.Close(); - } - } - } - - private static Func GenerateMapper(Func deserializer, Func[] otherDeserializers, object map) - { - switch (otherDeserializers.Length) - { - case 1: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r)); - case 2: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r)); - case 3: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r)); -#if !CSHARP30 - case 4: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r)); - case 5: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r), (TSixth)otherDeserializers[4](r)); - case 6: - return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r), (TSixth)otherDeserializers[4](r), (TSeventh)otherDeserializers[5](r)); -#endif - default: - throw new NotSupportedException(); - } - } - - private static Func GenerateMapper(int length, Func deserializer, Func[] otherDeserializers, Func map) - { - return r => - { - var objects = new object[length]; - objects[0] = deserializer(r); - - for (var i = 1; i < length; ++i) - { - objects[i] = otherDeserializers[i - 1](r); - } - - return map(objects); - }; - } - - private static Func[] GenerateDeserializers(Type[] types, string splitOn, IDataReader reader) - { - var deserializers = new List>(); - var splits = splitOn.Split(',').Select(s => s.Trim()).ToArray(); - bool isMultiSplit = splits.Length > 1; - if (types.First() == typeof(Object)) - { - // we go left to right for dynamic multi-mapping so that the madness of TestMultiMappingVariations - // is supported - bool first = true; - int currentPos = 0; - int splitIdx = 0; - string currentSplit = splits[splitIdx]; - foreach (var type in types) - { - if (type == typeof(DontMap)) - { - break; - } - - int splitPoint = GetNextSplitDynamic(currentPos, currentSplit, reader); - if (isMultiSplit && splitIdx < splits.Length - 1) - { - currentSplit = splits[++splitIdx]; - } - deserializers.Add((GetDeserializer(type, reader, currentPos, splitPoint - currentPos, !first))); - currentPos = splitPoint; - first = false; - } - } - else - { - // in this we go right to left through the data reader in order to cope with properties that are - // named the same as a subsequent primary key that we split on - int currentPos = reader.FieldCount; - int splitIdx = splits.Length - 1; - var currentSplit = splits[splitIdx]; - for (var typeIdx = types.Length - 1; typeIdx >= 0; --typeIdx) - { - var type = types[typeIdx]; - if (type == typeof (DontMap)) - { - continue; - } - - int splitPoint = 0; - if (typeIdx > 0) - { - splitPoint = GetNextSplit(currentPos, currentSplit, reader); - if (isMultiSplit && splitIdx > 0) - { - currentSplit = splits[--splitIdx]; - } - } - - deserializers.Add((GetDeserializer(type, reader, splitPoint, currentPos - splitPoint, typeIdx > 0))); - currentPos = splitPoint; - } - - deserializers.Reverse(); - - } - return deserializers.ToArray(); - } - - private static int GetNextSplitDynamic(int startIdx, string splitOn, IDataReader reader) - { - if (startIdx == reader.FieldCount) - { - throw MultiMapException(reader); - } - - if (splitOn == "*") - { - return ++startIdx; - } - - for (var i = startIdx + 1; i < reader.FieldCount; ++i) - { - if (string.Equals(splitOn, reader.GetName(i), StringComparison.OrdinalIgnoreCase)) - { - return i; - } - } - - return reader.FieldCount; - } - - private static int GetNextSplit(int startIdx, string splitOn, IDataReader reader) - { - if (splitOn == "*") - { - return --startIdx; - } - - for (var i = startIdx - 1; i > 0; --i) - { - if (string.Equals(splitOn, reader.GetName(i), StringComparison.OrdinalIgnoreCase)) - { - return i; - } - } - - throw MultiMapException(reader); - } - - private static CacheInfo GetCacheInfo(Identity identity, object exampleParameters, bool addToCache) - { - CacheInfo info; - if (!TryGetQueryCache(identity, out info)) - { - if(GetMultiExec(exampleParameters) != null) - { - throw new InvalidOperationException("An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context"); - } - info = new CacheInfo(); - if (identity.parametersType != null) - { - Action reader; - if (exampleParameters is IDynamicParameters) - { - reader = (cmd, obj) => { ((IDynamicParameters)obj).AddParameters(cmd, identity); }; - } - else if (exampleParameters is IEnumerable>) - { - reader = (cmd, obj) => - { - IDynamicParameters mapped = new DynamicParameters(obj); - mapped.AddParameters(cmd, identity); - }; - } - else - { - var literals = GetLiteralTokens(identity.sql); - reader = CreateParamInfoGenerator(identity, false, true, literals); - } - if((identity.commandType == null || identity.commandType == CommandType.Text) && ShouldPassByPosition(identity.sql)) - { - var tail = reader; - var sql = identity.sql; - reader = (cmd, obj) => - { - tail(cmd, obj); - PassByPosition(cmd); - }; - } - info.ParamReader = reader; - } - if(addToCache) SetQueryCache(identity, info); - } - return info; - } - - private static bool ShouldPassByPosition(string sql) - { - return sql != null && sql.IndexOf('?') >= 0 && pseudoPositional.IsMatch(sql); - } - - private static void PassByPosition(IDbCommand cmd) - { - if (cmd.Parameters.Count == 0) return; - - Dictionary parameters = new Dictionary(StringComparer.Ordinal); - - foreach(IDbDataParameter param in cmd.Parameters) - { - if (!string.IsNullOrEmpty(param.ParameterName)) parameters[param.ParameterName] = param; - } - HashSet consumed = new HashSet(StringComparer.Ordinal); - bool firstMatch = true; - cmd.CommandText = pseudoPositional.Replace(cmd.CommandText, match => - { - string key = match.Groups[1].Value; - IDbDataParameter param; - if (!consumed.Add(key)) - { - throw new InvalidOperationException("When passing parameters by position, each parameter can only be referenced once"); - } - else if (parameters.TryGetValue(key, out param)) - { - if(firstMatch) - { - firstMatch = false; - cmd.Parameters.Clear(); // only clear if we are pretty positive that we've found this pattern successfully - } - // if found, return the anonymous token "?" - cmd.Parameters.Add(param); - parameters.Remove(key); - consumed.Add(key); - return "?"; - } - else - { - // otherwise, leave alone for simple debugging - return match.Value; - } - }); - } - - private static Func GetDeserializer(Type type, IDataReader reader, int startBound, int length, bool returnNullIfFirstMissing) - { -#if !CSHARP30 - // dynamic is passed in as Object ... by c# design - if (type == typeof(object) - || type == typeof(DapperRow)) - { - return GetDapperRowDeserializer(reader, startBound, length, returnNullIfFirstMissing); - } -#else - if (type.IsAssignableFrom(typeof(Dictionary))) - { - return GetDictionaryDeserializer(reader, startBound, length, returnNullIfFirstMissing); - } -#endif - Type underlyingType = null; - if (!(typeMap.ContainsKey(type) || type.IsEnum() || type.FullName == LinqBinary || - (type.IsValueType() && (underlyingType = Nullable.GetUnderlyingType(type)) != null && underlyingType.IsEnum()))) - { - ITypeHandler handler; - if (typeHandlers.TryGetValue(type, out handler)) - { - return GetHandlerDeserializer(handler, type, startBound); - } - return GetTypeDeserializer(type, reader, startBound, length, returnNullIfFirstMissing); - } - return GetStructDeserializer(type, underlyingType ?? type, startBound); - } - static Func GetHandlerDeserializer(ITypeHandler handler, Type type, int startBound) - { - return (IDataReader reader) => - handler.Parse(type, reader.GetValue(startBound)); - } - -#if !CSHARP30 - private sealed partial class DapperTable - { - string[] fieldNames; - readonly Dictionary fieldNameLookup; - - internal string[] FieldNames { get { return fieldNames; } } - - public DapperTable(string[] fieldNames) - { - if (fieldNames == null) throw new ArgumentNullException("fieldNames"); - this.fieldNames = fieldNames; - - fieldNameLookup = new Dictionary(fieldNames.Length, StringComparer.Ordinal); - // if there are dups, we want the **first** key to be the "winner" - so iterate backwards - for (int i = fieldNames.Length - 1; i >= 0; i--) - { - string key = fieldNames[i]; - if (key != null) fieldNameLookup[key] = i; - } - } - - internal int IndexOfName(string name) - { - int result; - return (name != null && fieldNameLookup.TryGetValue(name, out result)) ? result : -1; - } - internal int AddField(string name) - { - if (name == null) throw new ArgumentNullException("name"); - if (fieldNameLookup.ContainsKey(name)) throw new InvalidOperationException("Field already exists: " + name); - int oldLen = fieldNames.Length; - Array.Resize(ref fieldNames, oldLen + 1); // yes, this is sub-optimal, but this is not the expected common case - fieldNames[oldLen] = name; - fieldNameLookup[name] = oldLen; - return oldLen; - } - - - internal bool FieldExists(string key) - { - return key != null && fieldNameLookup.ContainsKey(key); - } - - public int FieldCount { get { return fieldNames.Length; } } - } - - sealed partial class DapperRowMetaObject : System.Dynamic.DynamicMetaObject - { - static readonly MethodInfo getValueMethod = typeof(IDictionary).GetProperty("Item").GetGetMethod(); - static readonly MethodInfo setValueMethod = typeof(DapperRow).GetMethod("SetValue", new Type[] { typeof(string), typeof(object) }); - - public DapperRowMetaObject( - System.Linq.Expressions.Expression expression, - System.Dynamic.BindingRestrictions restrictions - ) - : base(expression, restrictions) - { - } - - public DapperRowMetaObject( - System.Linq.Expressions.Expression expression, - System.Dynamic.BindingRestrictions restrictions, - object value - ) - : base(expression, restrictions, value) - { - } - - System.Dynamic.DynamicMetaObject CallMethod( - MethodInfo method, - System.Linq.Expressions.Expression[] parameters - ) - { - var callMethod = new System.Dynamic.DynamicMetaObject( - System.Linq.Expressions.Expression.Call( - System.Linq.Expressions.Expression.Convert(Expression, LimitType), - method, - parameters), - System.Dynamic.BindingRestrictions.GetTypeRestriction(Expression, LimitType) - ); - return callMethod; - } - - public override System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.GetMemberBinder binder) - { - var parameters = new System.Linq.Expressions.Expression[] - { - System.Linq.Expressions.Expression.Constant(binder.Name) - }; - - var callMethod = CallMethod(getValueMethod, parameters); - - return callMethod; - } - - // Needed for Visual basic dynamic support - public override System.Dynamic.DynamicMetaObject BindInvokeMember(System.Dynamic.InvokeMemberBinder binder, System.Dynamic.DynamicMetaObject[] args) - { - var parameters = new System.Linq.Expressions.Expression[] - { - System.Linq.Expressions.Expression.Constant(binder.Name) - }; - - var callMethod = CallMethod(getValueMethod, parameters); - - return callMethod; - } - - public override System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder binder, System.Dynamic.DynamicMetaObject value) - { - var parameters = new System.Linq.Expressions.Expression[] - { - System.Linq.Expressions.Expression.Constant(binder.Name), - value.Expression, - }; - - var callMethod = CallMethod(setValueMethod, parameters); - - return callMethod; - } - } - - private sealed partial class DapperRow - : System.Dynamic.IDynamicMetaObjectProvider - , IDictionary - { - readonly DapperTable table; - object[] values; - - public DapperRow(DapperTable table, object[] values) - { - if (table == null) throw new ArgumentNullException("table"); - if (values == null) throw new ArgumentNullException("values"); - this.table = table; - this.values = values; - } - private sealed class DeadValue - { - public static readonly DeadValue Default = new DeadValue(); - private DeadValue() { } - } - int ICollection>.Count - { - get - { - int count = 0; - for (int i = 0; i < values.Length; i++) - { - if (!(values[i] is DeadValue)) count++; - } - return count; - } - } - - public bool TryGetValue(string name, out object value) - { - var index = table.IndexOfName(name); - if (index < 0) - { // doesn't exist - value = null; - return false; - } - // exists, **even if** we don't have a value; consider table rows heterogeneous - value = index < values.Length ? values[index] : null; - if (value is DeadValue) - { // pretend it isn't here - value = null; - return false; - } - return true; - } - - public override string ToString() - { - var sb = GetStringBuilder().Append("{DapperRow"); - foreach (var kv in this) - { - var value = kv.Value; - sb.Append(", ").Append(kv.Key); - if (value != null) - { - sb.Append(" = '").Append(kv.Value).Append('\''); - } - else - { - sb.Append(" = NULL"); - } - } - - return sb.Append('}').__ToStringRecycle(); - } - - System.Dynamic.DynamicMetaObject System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject( - System.Linq.Expressions.Expression parameter) - { - return new DapperRowMetaObject(parameter, System.Dynamic.BindingRestrictions.Empty, this); - } - - public IEnumerator> GetEnumerator() - { - var names = table.FieldNames; - for (var i = 0; i < names.Length; i++) - { - object value = i < values.Length ? values[i] : null; - if (!(value is DeadValue)) - { - yield return new KeyValuePair(names[i], value); - } - } - } - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - -#region Implementation of ICollection> - - void ICollection>.Add(KeyValuePair item) - { - IDictionary dic = this; - dic.Add(item.Key, item.Value); - } - - void ICollection>.Clear() - { // removes values for **this row**, but doesn't change the fundamental table - for (int i = 0; i < values.Length; i++) - values[i] = DeadValue.Default; - } - - bool ICollection>.Contains(KeyValuePair item) - { - object value; - return TryGetValue(item.Key, out value) && Equals(value, item.Value); - } - - void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) - { - foreach (var kv in this) - { - array[arrayIndex++] = kv; // if they didn't leave enough space; not our fault - } - } - - bool ICollection>.Remove(KeyValuePair item) - { - IDictionary dic = this; - return dic.Remove(item.Key); - } - - bool ICollection>.IsReadOnly - { - get { return false; } - } - -#endregion - -#region Implementation of IDictionary - - bool IDictionary.ContainsKey(string key) - { - int index = table.IndexOfName(key); - if (index < 0 || index >= values.Length || values[index] is DeadValue) return false; - return true; - } - - void IDictionary.Add(string key, object value) - { - SetValue(key, value, true); - } - - bool IDictionary.Remove(string key) - { - int index = table.IndexOfName(key); - if (index < 0 || index >= values.Length || values[index] is DeadValue) return false; - values[index] = DeadValue.Default; - return true; - } - - object IDictionary.this[string key] - { - get { object val; TryGetValue(key, out val); return val; } - set { SetValue(key, value, false); } - } - - public object SetValue(string key, object value) - { - return SetValue(key, value, false); - } - private object SetValue(string key, object value, bool isAdd) - { - if (key == null) throw new ArgumentNullException("key"); - int index = table.IndexOfName(key); - if (index < 0) - { - index = table.AddField(key); - } - else if (isAdd && index < values.Length && !(values[index] is DeadValue)) - { - // then semantically, this value already exists - throw new ArgumentException("An item with the same key has already been added", "key"); - } - int oldLength = values.Length; - if (oldLength <= index) - { - // we'll assume they're doing lots of things, and - // grow it to the full width of the table - Array.Resize(ref values, table.FieldCount); - for (int i = oldLength; i < values.Length; i++) - { - values[i] = DeadValue.Default; - } - } - return values[index] = value; - } - - ICollection IDictionary.Keys - { - get { return this.Select(kv => kv.Key).ToArray(); } - } - - ICollection IDictionary.Values - { - get { return this.Select(kv => kv.Value).ToArray(); } - } - -#endregion - } -#endif - private static Exception MultiMapException(IDataRecord reader) - { - bool hasFields = false; - try { - hasFields = reader != null && reader.FieldCount != 0; - } catch { } - if (hasFields) - return new ArgumentException("When using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id", "splitOn"); - else - return new InvalidOperationException("No columns were selected"); - } - -#if !CSHARP30 - internal static Func GetDapperRowDeserializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing) - { - var fieldCount = reader.FieldCount; - if (length == -1) - { - length = fieldCount - startBound; - } - - if (fieldCount <= startBound) - { - throw MultiMapException(reader); - } - - var effectiveFieldCount = Math.Min(fieldCount - startBound, length); - - DapperTable table = null; - - return - r => - { - if (table == null) - { - string[] names = new string[effectiveFieldCount]; - for (int i = 0; i < effectiveFieldCount; i++) - { - names[i] = r.GetName(i + startBound); - } - table = new DapperTable(names); - } - - var values = new object[effectiveFieldCount]; - - if (returnNullIfFirstMissing) - { - values[0] = r.GetValue(startBound); - if (values[0] is DBNull) - { - return null; - } - } - - if (startBound == 0) - { - for (int i = 0; i < values.Length; i++) - { - object val = r.GetValue(i); - values[i] = val is DBNull ? null : val; - } - } - else - { - var begin = returnNullIfFirstMissing ? 1 : 0; - for (var iter = begin; iter < effectiveFieldCount; ++iter) - { - object obj = r.GetValue(iter + startBound); - values[iter] = obj is DBNull ? null : obj; - } - } - return new DapperRow(table, values); - }; - } -#else - internal static Func GetDictionaryDeserializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing) - { - var fieldCount = reader.FieldCount; - if (length == -1) - { - length = fieldCount - startBound; - } - - if (fieldCount <= startBound) - { - throw MultiMapException(reader); - } - - return - r => - { - IDictionary row = new Dictionary(length); - for (var i = startBound; i < startBound + length; i++) - { - var tmp = r.GetValue(i); - tmp = tmp == DBNull.Value ? null : tmp; - row[r.GetName(i)] = tmp; - if (returnNullIfFirstMissing && i == startBound && tmp == null) - { - return null; - } - } - return row; - }; - } -#endif - /// - /// Internal use only - /// - /// - /// -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - [Obsolete("This method is for internal usage only", false)] - public static char ReadChar(object value) - { - if (value == null || value is DBNull) throw new ArgumentNullException("value"); - string s = value as string; - if (s == null || s.Length != 1) throw new ArgumentException("A single-character was expected", "value"); - return s[0]; - } - - /// - /// Internal use only - /// -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - [Obsolete("This method is for internal usage only", false)] - public static char? ReadNullableChar(object value) - { - if (value == null || value is DBNull) return null; - string s = value as string; - if (s == null || s.Length != 1) throw new ArgumentException("A single-character was expected", "value"); - return s[0]; - } - - - /// - /// Internal use only - /// -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - [Obsolete("This method is for internal usage only", true)] - public static IDbDataParameter FindOrAddParameter(IDataParameterCollection parameters, IDbCommand command, string name) - { - IDbDataParameter result; - if (parameters.Contains(name)) - { - result = (IDbDataParameter)parameters[name]; - } - else - { - result = command.CreateParameter(); - result.ParameterName = name; - parameters.Add(result); - } - return result; - } - - /// - /// Internal use only - /// -#if !DNXCORE50 - [Browsable(false)] -#endif - [EditorBrowsable(EditorBrowsableState.Never)] - [Obsolete("This method is for internal usage only", false)] - public static void PackListParameters(IDbCommand command, string namePrefix, object value) - { - // initially we tried TVP, however it performs quite poorly. - // keep in mind SQL support up to 2000 params easily in sp_executesql, needing more is rare - - if (FeatureSupport.Get(command.Connection).Arrays) - { - var arrayParm = command.CreateParameter(); - arrayParm.Value = SanitizeParameterValue(value); - arrayParm.ParameterName = namePrefix; - command.Parameters.Add(arrayParm); - } - else - { - var list = value as IEnumerable; - var count = 0; - bool isString = value is IEnumerable; - bool isDbString = value is IEnumerable; - foreach (var item in list) - { - count++; - var listParam = command.CreateParameter(); - listParam.ParameterName = namePrefix + count; - if (isString) - { - listParam.Size = DbString.DefaultLength; - if (item != null && ((string)item).Length > DbString.DefaultLength) - { - listParam.Size = -1; - } - } - if (isDbString && item as DbString != null) - { - var str = item as DbString; - str.AddParameter(command, listParam.ParameterName); - } - else - { - listParam.Value = SanitizeParameterValue(item); - command.Parameters.Add(listParam); - } - } - - var regexIncludingUnknown = @"([?@:]" + Regex.Escape(namePrefix) + @")(?!\w)(\s+(?i)unknown(?-i))?"; - if (count == 0) - { - command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match => - { - var variableName = match.Groups[1].Value; - if (match.Groups[2].Success) - { - // looks like an optimize hint; leave it alone! - return match.Value; - } - else - { - return "(SELECT " + variableName + " WHERE 1 = 0)"; - } - }, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); - var dummyParam = command.CreateParameter(); - dummyParam.ParameterName = namePrefix; - dummyParam.Value = DBNull.Value; - command.Parameters.Add(dummyParam); - } - else - { - command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match => - { - var variableName = match.Groups[1].Value; - if (match.Groups[2].Success) - { - // looks like an optimize hint; expand it - var suffix = match.Groups[2].Value; - - var sb = GetStringBuilder().Append(variableName).Append(1).Append(suffix); - for (int i = 2; i <= count; i++) - { - sb.Append(',').Append(variableName).Append(i).Append(suffix); - } - return sb.__ToStringRecycle(); - } - else - { - var sb = GetStringBuilder().Append('(').Append(variableName).Append(1); - for (int i = 2; i <= count; i++) - { - sb.Append(',').Append(variableName).Append(i); - } - return sb.Append(')').__ToStringRecycle(); - } - }, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); - } - } - - } - internal static object SanitizeParameterValue(object value) - { - if (value == null) return DBNull.Value; - if (value is Enum) - { - TypeCode typeCode; - if (value is IConvertible) - { - typeCode = ((IConvertible)value).GetTypeCode(); - } - else - { - typeCode = TypeExtensions.GetTypeCode(Enum.GetUnderlyingType(value.GetType())); - } - switch (typeCode) - { - case TypeCode.Byte: return (byte)value; - case TypeCode.SByte: return (sbyte)value; - case TypeCode.Int16: return (short)value; - case TypeCode.Int32: return (int)value; - case TypeCode.Int64: return (long)value; - case TypeCode.UInt16: return (ushort)value; - case TypeCode.UInt32: return (uint)value; - case TypeCode.UInt64: return (ulong)value; - } - } - return value; - } - private static IEnumerable FilterParameters(IEnumerable parameters, string sql) - { - return parameters.Where(p => Regex.IsMatch(sql, @"[?@:]" + p.Name + "([^a-z0-9_]+|$)", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant)); - } - - // look for ? / @ / : *by itself* - static readonly Regex smellsLikeOleDb = new Regex(@"(? - /// Represents a placeholder for a value that should be replaced as a literal value in the resulting sql - /// - internal struct LiteralToken - { - private readonly string token, member; - /// - /// The text in the original command that should be replaced - /// - public string Token { get { return token; } } - - /// - /// The name of the member referred to by the token - /// - public string Member { get { return member; } } - internal LiteralToken(string token, string member) - { - this.token = token; - this.member = member; - } - - internal static readonly IList None = new LiteralToken[0]; - } - - /// - /// Replace all literal tokens with their text form - /// - public static void ReplaceLiterals(this IParameterLookup parameters, IDbCommand command) - { - var tokens = GetLiteralTokens(command.CommandText); - if (tokens.Count != 0) ReplaceLiterals(parameters, command, tokens); - } - - internal static readonly MethodInfo format = typeof(SqlMapper).GetMethod("Format", BindingFlags.Public | BindingFlags.Static); - /// - /// Convert numeric values to their string form for SQL literal purposes - /// - [Obsolete("This is intended for internal usage only")] - public static string Format(object value) - { - if (value == null) - { - return "null"; - } - else - { - switch (TypeExtensions.GetTypeCode(value.GetType())) - { -#if !DNXCORE50 - case TypeCode.DBNull: - return "null"; -#endif - case TypeCode.Boolean: - return ((bool)value) ? "1" : "0"; - case TypeCode.Byte: - return ((byte)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.SByte: - return ((sbyte)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.UInt16: - return ((ushort)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Int16: - return ((short)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.UInt32: - return ((uint)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Int32: - return ((int)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.UInt64: - return ((ulong)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Int64: - return ((long)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Single: - return ((float)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Double: - return ((double)value).ToString(CultureInfo.InvariantCulture); - case TypeCode.Decimal: - return ((decimal)value).ToString(CultureInfo.InvariantCulture); - default: - var multiExec = GetMultiExec(value); - if(multiExec != null) - { - StringBuilder sb = null; - bool first = true; - foreach (object subval in multiExec) - { - if(first) - { - sb = GetStringBuilder().Append('('); - first = false; - } - else - { - sb.Append(','); - } - sb.Append(Format(subval)); - } - if(first) - { - return "(select null where 1=0)"; - } - else - { - return sb.Append(')').__ToStringRecycle(); - } - } - throw new NotSupportedException(value.GetType().Name); - } - } - } - - - internal static void ReplaceLiterals(IParameterLookup parameters, IDbCommand command, IList tokens) - { - var sql = command.CommandText; - foreach (var token in tokens) - { - object value = parameters[token.Member]; -#pragma warning disable 0618 - string text = Format(value); -#pragma warning restore 0618 - sql = sql.Replace(token.Token, text); - } - command.CommandText = sql; - } - - internal static IList GetLiteralTokens(string sql) - { - if (string.IsNullOrEmpty(sql)) return LiteralToken.None; - if (!literalTokens.IsMatch(sql)) return LiteralToken.None; - - var matches = literalTokens.Matches(sql); - var found = new HashSet(StringComparer.Ordinal); - List list = new List(matches.Count); - foreach(Match match in matches) - { - string token = match.Value; - if(found.Add(match.Value)) - { - list.Add(new LiteralToken(token, match.Groups[1].Value)); - } - } - return list.Count == 0 ? LiteralToken.None : list; - } - - /// - /// Internal use only - /// - public static Action CreateParamInfoGenerator(Identity identity, bool checkForDuplicates, bool removeUnused) - { - return CreateParamInfoGenerator(identity, checkForDuplicates, removeUnused, GetLiteralTokens(identity.sql)); - } - - internal static Action CreateParamInfoGenerator(Identity identity, bool checkForDuplicates, bool removeUnused, IList literals) - { - Type type = identity.parametersType; - - bool filterParams = false; - if (removeUnused && identity.commandType.GetValueOrDefault(CommandType.Text) == CommandType.Text) - { - filterParams = !smellsLikeOleDb.IsMatch(identity.sql); - } - var dm = new DynamicMethod(string.Format("ParamInfo{0}", Guid.NewGuid()), null, new[] { typeof(IDbCommand), typeof(object) }, type, true); - - var il = dm.GetILGenerator(); - - bool isStruct = type.IsValueType(); - bool haveInt32Arg1 = false; - il.Emit(OpCodes.Ldarg_1); // stack is now [untyped-param] - if (isStruct) - { - il.DeclareLocal(type.MakePointerType()); - il.Emit(OpCodes.Unbox, type); // stack is now [typed-param] - } - else - { - il.DeclareLocal(type); // 0 - il.Emit(OpCodes.Castclass, type); // stack is now [typed-param] - } - il.Emit(OpCodes.Stloc_0);// stack is now empty - - il.Emit(OpCodes.Ldarg_0); // stack is now [command] - il.EmitCall(OpCodes.Callvirt, typeof(IDbCommand).GetProperty("Parameters").GetGetMethod(), null); // stack is now [parameters] - - var propsArr = type.GetProperties().Where(p => p.GetIndexParameters().Length == 0).ToArray(); - var ctors = type.GetConstructors(); - ParameterInfo[] ctorParams; - IEnumerable props = null; - // try to detect tuple patterns, e.g. anon-types, and use that to choose the order - // otherwise: alphabetical - if (ctors.Length == 1 && propsArr.Length == (ctorParams = ctors[0].GetParameters()).Length) - { - // check if reflection was kind enough to put everything in the right order for us - bool ok = true; - for (int i = 0; i < propsArr.Length; i++) - { - if (!string.Equals(propsArr[i].Name, ctorParams[i].Name, StringComparison.OrdinalIgnoreCase)) - { - ok = false; - break; - } - } - if(ok) - { - // pre-sorted; the reflection gods have smiled upon us - props = propsArr; - } - else { // might still all be accounted for; check the hard way - var positionByName = new Dictionary(StringComparer.OrdinalIgnoreCase); - foreach(var param in ctorParams) - { - positionByName[param.Name] = param.Position; - } - if (positionByName.Count == propsArr.Length) - { - int[] positions = new int[propsArr.Length]; - ok = true; - for (int i = 0; i < propsArr.Length; i++) - { - int pos; - if (!positionByName.TryGetValue(propsArr[i].Name, out pos)) - { - ok = false; - break; - } - positions[i] = pos; - } - if (ok) - { - Array.Sort(positions, propsArr); - props = propsArr; - } - } - } - } - if(props == null) props = propsArr.OrderBy(x => x.Name); - if (filterParams) - { - props = FilterParameters(props, identity.sql); - } - - var callOpCode = isStruct ? OpCodes.Call : OpCodes.Callvirt; - foreach (var prop in props) - { - if (typeof(ICustomQueryParameter).IsAssignableFrom(prop.PropertyType)) - { - il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [typed-param] - il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [custom] - il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [custom] [command] - il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [custom] [command] [name] - il.EmitCall(OpCodes.Callvirt, prop.PropertyType.GetMethod("AddParameter"), null); // stack is now [parameters] - continue; - } - ITypeHandler handler; - DbType dbType = LookupDbType(prop.PropertyType, prop.Name, true, out handler); - if (dbType == DynamicParameters.EnumerableMultiParameter) - { - // this actually represents special handling for list types; - il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [command] - il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [command] [name] - il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [command] [name] [typed-param] - il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [command] [name] [typed-value] - if (prop.PropertyType.IsValueType()) - { - il.Emit(OpCodes.Box, prop.PropertyType); // stack is [parameters] [command] [name] [boxed-value] - } - il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod("PackListParameters"), null); // stack is [parameters] - continue; - } - il.Emit(OpCodes.Dup); // stack is now [parameters] [parameters] - - il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [parameters] [command] - - if (checkForDuplicates) - { - // need to be a little careful about adding; use a utility method - il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [parameters] [command] [name] - il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod("FindOrAddParameter"), null); // stack is [parameters] [parameter] - } - else - { - // no risk of duplicates; just blindly add - il.EmitCall(OpCodes.Callvirt, typeof(IDbCommand).GetMethod("CreateParameter"), null);// stack is now [parameters] [parameters] [parameter] - - il.Emit(OpCodes.Dup);// stack is now [parameters] [parameters] [parameter] [parameter] - il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [parameters] [parameter] [parameter] [name] - il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty("ParameterName").GetSetMethod(), null);// stack is now [parameters] [parameters] [parameter] - } - if (dbType != DbType.Time && handler == null) // https://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time - { - il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] - if (dbType == DbType.Object && prop.PropertyType == typeof(object)) // includes dynamic - { - // look it up from the param value - il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param] - il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [[parameters]] [parameter] [parameter] [object-value] - il.Emit(OpCodes.Call, typeof(SqlMapper).GetMethod("GetDbType", BindingFlags.Static | BindingFlags.Public)); // stack is now [parameters] [[parameters]] [parameter] [parameter] [db-type] - } - else - { - // constant value; nice and simple - EmitInt32(il, (int)dbType);// stack is now [parameters] [[parameters]] [parameter] [parameter] [db-type] - } - il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty("DbType").GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] - } - - il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] - EmitInt32(il, (int)ParameterDirection.Input);// stack is now [parameters] [[parameters]] [parameter] [parameter] [dir] - il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty("Direction").GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] - - il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] - il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param] - il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [[parameters]] [parameter] [parameter] [typed-value] - bool checkForNull = true; - if (prop.PropertyType.IsValueType()) - { - il.Emit(OpCodes.Box, prop.PropertyType); // stack is [parameters] [[parameters]] [parameter] [parameter] [boxed-value] - if (Nullable.GetUnderlyingType(prop.PropertyType) == null) - { // struct but not Nullable; boxed value cannot be null - checkForNull = false; - } - } - if (checkForNull) - { - if ((dbType == DbType.String || dbType == DbType.AnsiString) && !haveInt32Arg1) - { - il.DeclareLocal(typeof(int)); - haveInt32Arg1 = true; - } - // relative stack: [boxed value] - il.Emit(OpCodes.Dup);// relative stack: [boxed value] [boxed value] - Label notNull = il.DefineLabel(); - Label? allDone = (dbType == DbType.String || dbType == DbType.AnsiString) ? il.DefineLabel() : (Label?)null; - il.Emit(OpCodes.Brtrue_S, notNull); - // relative stack [boxed value = null] - il.Emit(OpCodes.Pop); // relative stack empty - il.Emit(OpCodes.Ldsfld, typeof(DBNull).GetField("Value")); // relative stack [DBNull] - if (dbType == DbType.String || dbType == DbType.AnsiString) - { - EmitInt32(il, 0); - il.Emit(OpCodes.Stloc_1); - } - if (allDone != null) il.Emit(OpCodes.Br_S, allDone.Value); - il.MarkLabel(notNull); - if (prop.PropertyType == typeof(string)) - { - il.Emit(OpCodes.Dup); // [string] [string] - il.EmitCall(OpCodes.Callvirt, typeof(string).GetProperty("Length").GetGetMethod(), null); // [string] [length] - EmitInt32(il, DbString.DefaultLength); // [string] [length] [4000] - il.Emit(OpCodes.Cgt); // [string] [0 or 1] - Label isLong = il.DefineLabel(), lenDone = il.DefineLabel(); - il.Emit(OpCodes.Brtrue_S, isLong); - EmitInt32(il, DbString.DefaultLength); // [string] [4000] - il.Emit(OpCodes.Br_S, lenDone); - il.MarkLabel(isLong); - EmitInt32(il, -1); // [string] [-1] - il.MarkLabel(lenDone); - il.Emit(OpCodes.Stloc_1); // [string] - } - if (prop.PropertyType.FullName == LinqBinary) - { - il.EmitCall(OpCodes.Callvirt, prop.PropertyType.GetMethod("ToArray", BindingFlags.Public | BindingFlags.Instance), null); - } - if (allDone != null) il.MarkLabel(allDone.Value); - // relative stack [boxed value or DBNull] - } - - if (handler != null) - { -#pragma warning disable 618 - il.Emit(OpCodes.Call, typeof(TypeHandlerCache<>).MakeGenericType(prop.PropertyType).GetMethod("SetValue")); // stack is now [parameters] [[parameters]] [parameter] -#pragma warning restore 618 - } - else - { - il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty("Value").GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] - } - - if (prop.PropertyType == typeof(string)) - { - var endOfSize = il.DefineLabel(); - // don't set if 0 - il.Emit(OpCodes.Ldloc_1); // [parameters] [[parameters]] [parameter] [size] - il.Emit(OpCodes.Brfalse_S, endOfSize); // [parameters] [[parameters]] [parameter] - - il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] - il.Emit(OpCodes.Ldloc_1); // stack is now [parameters] [[parameters]] [parameter] [parameter] [size] - il.EmitCall(OpCodes.Callvirt, typeof(IDbDataParameter).GetProperty("Size").GetSetMethod(), null); // stack is now [parameters] [[parameters]] [parameter] - - il.MarkLabel(endOfSize); - } - if (checkForDuplicates) - { - // stack is now [parameters] [parameter] - il.Emit(OpCodes.Pop); // don't need parameter any more - } - else - { - // stack is now [parameters] [parameters] [parameter] - // blindly add - il.EmitCall(OpCodes.Callvirt, typeof(IList).GetMethod("Add"), null); // stack is now [parameters] - il.Emit(OpCodes.Pop); // IList.Add returns the new index (int); we don't care - } - } - - // stack is currently [parameters] - il.Emit(OpCodes.Pop); // stack is now empty - - if(literals.Count != 0 && propsArr != null) - { - il.Emit(OpCodes.Ldarg_0); // command - il.Emit(OpCodes.Ldarg_0); // command, command - var cmdText = typeof(IDbCommand).GetProperty("CommandText"); - il.EmitCall(OpCodes.Callvirt, cmdText.GetGetMethod(), null); // command, sql - Dictionary locals = null; - LocalBuilder local = null; - foreach (var literal in literals) - { - // find the best member, preferring case-sensitive - PropertyInfo exact = null, fallback = null; - string huntName = literal.Member; - for(int i = 0; i < propsArr.Length;i++) - { - string thisName = propsArr[i].Name; - if(string.Equals(thisName, huntName, StringComparison.OrdinalIgnoreCase)) - { - fallback = propsArr[i]; - if(string.Equals(thisName, huntName, StringComparison.Ordinal)) - { - exact = fallback; - break; - } - } - } - var prop = exact ?? fallback; - - if(prop != null) - { - il.Emit(OpCodes.Ldstr, literal.Token); - il.Emit(OpCodes.Ldloc_0); // command, sql, typed parameter - il.EmitCall(callOpCode, prop.GetGetMethod(), null); // command, sql, typed value - Type propType = prop.PropertyType; - var typeCode = TypeExtensions.GetTypeCode(propType); - switch (typeCode) - { - case TypeCode.Boolean: - Label ifTrue = il.DefineLabel(), allDone = il.DefineLabel(); - il.Emit(OpCodes.Brtrue_S, ifTrue); - il.Emit(OpCodes.Ldstr, "0"); - il.Emit(OpCodes.Br_S, allDone); - il.MarkLabel(ifTrue); - il.Emit(OpCodes.Ldstr, "1"); - il.MarkLabel(allDone); - break; - case TypeCode.Byte: - case TypeCode.SByte: - case TypeCode.UInt16: - case TypeCode.Int16: - case TypeCode.UInt32: - case TypeCode.Int32: - case TypeCode.UInt64: - case TypeCode.Int64: - case TypeCode.Single: - case TypeCode.Double: - case TypeCode.Decimal: - // need to stloc, ldloca, call - // re-use existing locals (both the last known, and via a dictionary) - var convert = GetToString(typeCode); - if (local == null || local.LocalType != propType) - { - if (locals == null) - { - locals = new Dictionary(); - local = null; - } - else - { - if (!locals.TryGetValue(propType, out local)) local = null; - } - if (local == null) - { - local = il.DeclareLocal(propType); - locals.Add(propType, local); - } - } - il.Emit(OpCodes.Stloc, local); // command, sql - il.Emit(OpCodes.Ldloca, local); // command, sql, ref-to-value - il.EmitCall(OpCodes.Call, InvariantCulture, null); // command, sql, ref-to-value, culture - il.EmitCall(OpCodes.Call, convert, null); // command, sql, string value - break; - default: - if (propType.IsValueType()) il.Emit(OpCodes.Box, propType); // command, sql, object value - il.EmitCall(OpCodes.Call, format, null); // command, sql, string value - break; - - } - il.EmitCall(OpCodes.Callvirt, StringReplace, null); - } - } - il.EmitCall(OpCodes.Callvirt, cmdText.GetSetMethod(), null); // empty - } - - il.Emit(OpCodes.Ret); - return (Action)dm.CreateDelegate(typeof(Action)); - } - static readonly Dictionary toStrings = new[] - { - typeof(bool), typeof(sbyte), typeof(byte), typeof(ushort), typeof(short), - typeof(uint), typeof(int), typeof(ulong), typeof(long), typeof(float), typeof(double), typeof(decimal) - }.ToDictionary(x => TypeExtensions.GetTypeCode(x), x => x.GetPublicInstanceMethod("ToString", new[] { typeof(IFormatProvider) })); - static MethodInfo GetToString(TypeCode typeCode) - { - MethodInfo method; - return toStrings.TryGetValue(typeCode, out method) ? method : null; - } - static readonly MethodInfo StringReplace = typeof(string).GetPublicInstanceMethod("Replace", new Type[] { typeof(string), typeof(string) }), - InvariantCulture = typeof(CultureInfo).GetProperty("InvariantCulture", BindingFlags.Public | BindingFlags.Static).GetGetMethod(); - - private static int ExecuteCommand(IDbConnection cnn, ref CommandDefinition command, Action paramReader) - { - IDbCommand cmd = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - cmd = command.SetupCommand(cnn, paramReader); - if (wasClosed) cnn.Open(); - int result = cmd.ExecuteNonQuery(); - command.OnCompleted(); - return result; - } - finally - { - if (wasClosed) cnn.Close(); - if (cmd != null) cmd.Dispose(); - } - } - - private static T ExecuteScalarImpl(IDbConnection cnn, ref CommandDefinition command) - { - Action paramReader = null; - object param = command.Parameters; - if (param != null) - { - var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); - paramReader = GetCacheInfo(identity, command.Parameters, command.AddToCache).ParamReader; - } - - IDbCommand cmd = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - object result; - try - { - cmd = command.SetupCommand(cnn, paramReader); - if (wasClosed) cnn.Open(); - result =cmd.ExecuteScalar(); - command.OnCompleted(); - } - finally - { - if (wasClosed) cnn.Close(); - if (cmd != null) cmd.Dispose(); - } - return Parse(result); - } - - private static IDataReader ExecuteReaderImpl(IDbConnection cnn, ref CommandDefinition command, CommandBehavior commandBehavior, out IDbCommand cmd) - { - Action paramReader = GetParameterReader(cnn, ref command); - cmd = null; - bool wasClosed = cnn.State == ConnectionState.Closed, disposeCommand = true; - try - { - cmd = command.SetupCommand(cnn, paramReader); - if (wasClosed) cnn.Open(); - if (wasClosed) commandBehavior |= CommandBehavior.CloseConnection; - var reader = cmd.ExecuteReader(commandBehavior); - wasClosed = false; // don't dispose before giving it to them! - disposeCommand = false; - // note: command.FireOutputCallbacks(); would be useless here; parameters come at the **end** of the TDS stream - return reader; - } - finally - { - if (wasClosed) cnn.Close(); - if (cmd != null && disposeCommand) cmd.Dispose(); - } - } - - private static Action GetParameterReader(IDbConnection cnn, ref CommandDefinition command) - { - object param = command.Parameters; - IEnumerable multiExec = GetMultiExec(param); - Identity identity; - CacheInfo info = null; - if (multiExec != null) - { - throw new NotSupportedException("MultiExec is not supported by ExecuteReader"); - } - - // nice and simple - if (param != null) - { - identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); - info = GetCacheInfo(identity, param, command.AddToCache); - } - var paramReader = info == null ? null : info.ParamReader; - return paramReader; - } - - private static Func GetStructDeserializer(Type type, Type effectiveType, int index) - { - // no point using special per-type handling here; it boils down to the same, plus not all are supported anyway (see: SqlDataReader.GetChar - not supported!) -#pragma warning disable 618 - if (type == typeof(char)) - { // this *does* need special handling, though - return r => SqlMapper.ReadChar(r.GetValue(index)); - } - if (type == typeof(char?)) - { - return r => SqlMapper.ReadNullableChar(r.GetValue(index)); - } - if (type.FullName == LinqBinary) - { - return r => Activator.CreateInstance(type, r.GetValue(index)); - } -#pragma warning restore 618 - - if (effectiveType.IsEnum()) - { // assume the value is returned as the correct type (int/byte/etc), but box back to the typed enum - return r => - { - var val = r.GetValue(index); - if(val is float || val is double || val is decimal) - { - val = Convert.ChangeType(val, Enum.GetUnderlyingType(effectiveType), CultureInfo.InvariantCulture); - } - return val is DBNull ? null : Enum.ToObject(effectiveType, val); - }; - } - ITypeHandler handler; - if(typeHandlers.TryGetValue(type, out handler)) - { - return r => - { - var val = r.GetValue(index); - return val is DBNull ? null : handler.Parse(type, val); - }; - } - return r => - { - var val = r.GetValue(index); - return val is DBNull ? null : val; - }; - } - - private static T Parse(object value) - { - if (value == null || value is DBNull) return default(T); - if (value is T) return (T)value; - var type = typeof(T); - type = Nullable.GetUnderlyingType(type) ?? type; - if (type.IsEnum()) - { - if (value is float || value is double || value is decimal) - { - value = Convert.ChangeType(value, Enum.GetUnderlyingType(type), CultureInfo.InvariantCulture); - } - return (T)Enum.ToObject(type, value); - } - ITypeHandler handler; - if (typeHandlers.TryGetValue(type, out handler)) - { - return (T)handler.Parse(type, value); - } - return (T)Convert.ChangeType(value, type, CultureInfo.InvariantCulture); - } - - static readonly MethodInfo - enumParse = typeof(Enum).GetMethod("Parse", new Type[] { typeof(Type), typeof(string), typeof(bool) }), - getItem = typeof(IDataRecord).GetProperties(BindingFlags.Instance | BindingFlags.Public) - .Where(p => p.GetIndexParameters().Any() && p.GetIndexParameters()[0].ParameterType == typeof(int)) - .Select(p => p.GetGetMethod()).First(); - - /// - /// Gets type-map for the given type - /// - /// Type map implementation, DefaultTypeMap instance if no override present - public static ITypeMap GetTypeMap(Type type) - { - if (type == null) throw new ArgumentNullException("type"); -#if DNXCORE50 - ITypeMap map = null; -#else - var map = (ITypeMap)_typeMaps[type]; -#endif - if (map == null) - { - lock (_typeMaps) - { // double-checked; store this to avoid reflection next time we see this type - // since multiple queries commonly use the same domain-entity/DTO/view-model type -#if DNXCORE50 - if (!_typeMaps.TryGetValue(type, out map)) map = null; -#else - map = (ITypeMap)_typeMaps[type]; -#endif - - if (map == null) - { - map = new DefaultTypeMap(type); - _typeMaps[type] = map; - } - } - } - return map; - } - - // use Hashtable to get free lockless reading -#if DNXCORE50 - private static readonly Dictionary _typeMaps = new Dictionary(); -#else - private static readonly Hashtable _typeMaps = new Hashtable(); -#endif - - /// - /// Set custom mapping for type deserializers - /// - /// Entity type to override - /// Mapping rules impementation, null to remove custom map - public static void SetTypeMap(Type type, ITypeMap map) - { - if (type == null) - throw new ArgumentNullException("type"); - - if (map == null || map is DefaultTypeMap) - { - lock (_typeMaps) - { - _typeMaps.Remove(type); - } - } - else - { - lock (_typeMaps) - { - _typeMaps[type] = map; - } - } - - PurgeQueryCacheByType(type); - } - - /// - /// Internal use only - /// - /// - /// - /// - /// - /// - /// - public static Func GetTypeDeserializer( -#if CSHARP30 -Type type, IDataReader reader, int startBound, int length, bool returnNullIfFirstMissing -#else -Type type, IDataReader reader, int startBound = 0, int length = -1, bool returnNullIfFirstMissing = false -#endif -) - { - - var dm = new DynamicMethod(string.Format("Deserialize{0}", Guid.NewGuid()), typeof(object), new[] { typeof(IDataReader) }, true); - var il = dm.GetILGenerator(); - il.DeclareLocal(typeof(int)); - il.DeclareLocal(type); - il.Emit(OpCodes.Ldc_I4_0); - il.Emit(OpCodes.Stloc_0); - - if (length == -1) - { - length = reader.FieldCount - startBound; - } - - if (reader.FieldCount <= startBound) - { - throw MultiMapException(reader); - } - - var names = Enumerable.Range(startBound, length).Select(i => reader.GetName(i)).ToArray(); - - ITypeMap typeMap = GetTypeMap(type); - - int index = startBound; - - ConstructorInfo specializedConstructor = null; - -#if !DNXCORE50 - bool supportInitialize = false; -#endif - if (type.IsValueType()) - { - il.Emit(OpCodes.Ldloca_S, (byte)1); - il.Emit(OpCodes.Initobj, type); - } - else - { - var types = new Type[length]; - for (int i = startBound; i < startBound + length; i++) - { - types[i - startBound] = reader.GetFieldType(i); - } - - var explicitConstr = typeMap.FindExplicitConstructor(); - if (explicitConstr != null) - { - var structLocals = new Dictionary(); - - var consPs = explicitConstr.GetParameters(); - foreach(var p in consPs) - { - if(!p.ParameterType.IsValueType()) - { - il.Emit(OpCodes.Ldnull); - } - else - { - LocalBuilder loc; - if(!structLocals.TryGetValue(p.ParameterType, out loc)) - { - structLocals[p.ParameterType] = loc = il.DeclareLocal(p.ParameterType); - } - - il.Emit(OpCodes.Ldloca, (short)loc.LocalIndex); - il.Emit(OpCodes.Initobj, p.ParameterType); - il.Emit(OpCodes.Ldloca, (short)loc.LocalIndex); - il.Emit(OpCodes.Ldobj, p.ParameterType); - } - } - - il.Emit(OpCodes.Newobj, explicitConstr); - il.Emit(OpCodes.Stloc_1); -#if !DNXCORE50 - supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type); - if (supportInitialize) - { - il.Emit(OpCodes.Ldloc_1); - il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("BeginInit"), null); - } -#endif - } - else - { - var ctor = typeMap.FindConstructor(names, types); - if (ctor == null) - { - string proposedTypes = "(" + string.Join(", ", types.Select((t, i) => t.FullName + " " + names[i]).ToArray()) + ")"; - throw new InvalidOperationException(string.Format("A parameterless default constructor or one matching signature {0} is required for {1} materialization", proposedTypes, type.FullName)); - } - - if (ctor.GetParameters().Length == 0) - { - il.Emit(OpCodes.Newobj, ctor); - il.Emit(OpCodes.Stloc_1); -#if !DNXCORE50 - supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type); - if (supportInitialize) - { - il.Emit(OpCodes.Ldloc_1); - il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("BeginInit"), null); - } -#endif - } - else - { - specializedConstructor = ctor; - } - } - } - - il.BeginExceptionBlock(); - if (type.IsValueType()) - { - il.Emit(OpCodes.Ldloca_S, (byte)1);// [target] - } - else if (specializedConstructor == null) - { - il.Emit(OpCodes.Ldloc_1);// [target] - } - - var members = (specializedConstructor != null - ? names.Select(n => typeMap.GetConstructorParameter(specializedConstructor, n)) - : names.Select(n => typeMap.GetMember(n))).ToList(); - - // stack is now [target] - - bool first = true; - var allDone = il.DefineLabel(); - int enumDeclareLocal = -1, valueCopyLocal = il.DeclareLocal(typeof(object)).LocalIndex; - foreach (var item in members) - { - if (item != null) - { - if (specializedConstructor == null) - il.Emit(OpCodes.Dup); // stack is now [target][target] - Label isDbNullLabel = il.DefineLabel(); - Label finishLabel = il.DefineLabel(); - - il.Emit(OpCodes.Ldarg_0); // stack is now [target][target][reader] - EmitInt32(il, index); // stack is now [target][target][reader][index] - il.Emit(OpCodes.Dup);// stack is now [target][target][reader][index][index] - il.Emit(OpCodes.Stloc_0);// stack is now [target][target][reader][index] - il.Emit(OpCodes.Callvirt, getItem); // stack is now [target][target][value-as-object] - il.Emit(OpCodes.Dup); // stack is now [target][target][value-as-object][value-as-object] - StoreLocal(il, valueCopyLocal); - Type colType = reader.GetFieldType(index); - Type memberType = item.MemberType; - - if (memberType == typeof(char) || memberType == typeof(char?)) - { - il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod( - memberType == typeof(char) ? "ReadChar" : "ReadNullableChar", BindingFlags.Static | BindingFlags.Public), null); // stack is now [target][target][typed-value] - } - else - { - il.Emit(OpCodes.Dup); // stack is now [target][target][value][value] - il.Emit(OpCodes.Isinst, typeof(DBNull)); // stack is now [target][target][value-as-object][DBNull or null] - il.Emit(OpCodes.Brtrue_S, isDbNullLabel); // stack is now [target][target][value-as-object] - - // unbox nullable enums as the primitive, i.e. byte etc - - var nullUnderlyingType = Nullable.GetUnderlyingType(memberType); - var unboxType = nullUnderlyingType != null && nullUnderlyingType.IsEnum() ? nullUnderlyingType : memberType; - - if (unboxType.IsEnum()) - { - Type numericType = Enum.GetUnderlyingType(unboxType); - if(colType == typeof(string)) - { - if (enumDeclareLocal == -1) - { - enumDeclareLocal = il.DeclareLocal(typeof(string)).LocalIndex; - } - il.Emit(OpCodes.Castclass, typeof(string)); // stack is now [target][target][string] - StoreLocal(il, enumDeclareLocal); // stack is now [target][target] - il.Emit(OpCodes.Ldtoken, unboxType); // stack is now [target][target][enum-type-token] - il.EmitCall(OpCodes.Call, typeof(Type).GetMethod("GetTypeFromHandle"), null);// stack is now [target][target][enum-type] - LoadLocal(il, enumDeclareLocal); // stack is now [target][target][enum-type][string] - il.Emit(OpCodes.Ldc_I4_1); // stack is now [target][target][enum-type][string][true] - il.EmitCall(OpCodes.Call, enumParse, null); // stack is now [target][target][enum-as-object] - il.Emit(OpCodes.Unbox_Any, unboxType); // stack is now [target][target][typed-value] - } - else - { - FlexibleConvertBoxedFromHeadOfStack(il, colType, unboxType, numericType); - } - - if (nullUnderlyingType != null) - { - il.Emit(OpCodes.Newobj, memberType.GetConstructor(new[] { nullUnderlyingType })); // stack is now [target][target][typed-value] - } - } - else if (memberType.FullName == LinqBinary) - { - il.Emit(OpCodes.Unbox_Any, typeof(byte[])); // stack is now [target][target][byte-array] - il.Emit(OpCodes.Newobj, memberType.GetConstructor(new Type[] { typeof(byte[]) }));// stack is now [target][target][binary] - } - else - { - TypeCode dataTypeCode = TypeExtensions.GetTypeCode(colType), unboxTypeCode = TypeExtensions.GetTypeCode(unboxType); - bool hasTypeHandler; - if ((hasTypeHandler = typeHandlers.ContainsKey(unboxType)) || colType == unboxType || dataTypeCode == unboxTypeCode || dataTypeCode == TypeExtensions.GetTypeCode(nullUnderlyingType)) - { - if (hasTypeHandler) - { -#pragma warning disable 618 - il.EmitCall(OpCodes.Call, typeof(TypeHandlerCache<>).MakeGenericType(unboxType).GetMethod("Parse"), null); // stack is now [target][target][typed-value] -#pragma warning restore 618 - } - else - { - il.Emit(OpCodes.Unbox_Any, unboxType); // stack is now [target][target][typed-value] - } - } - else - { - // not a direct match; need to tweak the unbox - FlexibleConvertBoxedFromHeadOfStack(il, colType, nullUnderlyingType ?? unboxType, null); - if (nullUnderlyingType != null) - { - il.Emit(OpCodes.Newobj, unboxType.GetConstructor(new[] { nullUnderlyingType })); // stack is now [target][target][typed-value] - } - - } - - } - } - if (specializedConstructor == null) - { - // Store the value in the property/field - if (item.Property != null) - { - if (type.IsValueType()) - { - il.Emit(OpCodes.Call, DefaultTypeMap.GetPropertySetter(item.Property, type)); // stack is now [target] - } - else - { - il.Emit(OpCodes.Callvirt, DefaultTypeMap.GetPropertySetter(item.Property, type)); // stack is now [target] - } - } - else - { - il.Emit(OpCodes.Stfld, item.Field); // stack is now [target] - } - } - - il.Emit(OpCodes.Br_S, finishLabel); // stack is now [target] - - il.MarkLabel(isDbNullLabel); // incoming stack: [target][target][value] - if (specializedConstructor != null) - { - il.Emit(OpCodes.Pop); - if (item.MemberType.IsValueType()) - { - int localIndex = il.DeclareLocal(item.MemberType).LocalIndex; - LoadLocalAddress(il, localIndex); - il.Emit(OpCodes.Initobj, item.MemberType); - LoadLocal(il, localIndex); - } - else - { - il.Emit(OpCodes.Ldnull); - } - } - else - { - il.Emit(OpCodes.Pop); // stack is now [target][target] - il.Emit(OpCodes.Pop); // stack is now [target] - } - - if (first && returnNullIfFirstMissing) - { - il.Emit(OpCodes.Pop); - il.Emit(OpCodes.Ldnull); // stack is now [null] - il.Emit(OpCodes.Stloc_1); - il.Emit(OpCodes.Br, allDone); - } - - il.MarkLabel(finishLabel); - } - first = false; - index += 1; - } - if (type.IsValueType()) - { - il.Emit(OpCodes.Pop); - } - else - { - if (specializedConstructor != null) - { - il.Emit(OpCodes.Newobj, specializedConstructor); - } - il.Emit(OpCodes.Stloc_1); // stack is empty -#if !DNXCORE50 - if (supportInitialize) - { - il.Emit(OpCodes.Ldloc_1); - il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("EndInit"), null); - } -#endif - } - il.MarkLabel(allDone); - il.BeginCatchBlock(typeof(Exception)); // stack is Exception - il.Emit(OpCodes.Ldloc_0); // stack is Exception, index - il.Emit(OpCodes.Ldarg_0); // stack is Exception, index, reader - LoadLocal(il, valueCopyLocal); // stack is Exception, index, reader, value - il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod("ThrowDataException"), null); - il.EndExceptionBlock(); - - il.Emit(OpCodes.Ldloc_1); // stack is [rval] - if (type.IsValueType()) - { - il.Emit(OpCodes.Box, type); - } - il.Emit(OpCodes.Ret); - - return (Func)dm.CreateDelegate(typeof(Func)); - } - - private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type from, Type to, Type via) - { - MethodInfo op; - if(from == (via ?? to)) - { - il.Emit(OpCodes.Unbox_Any, to); // stack is now [target][target][typed-value] - } - else if ((op = GetOperator(from,to)) != null) - { - // this is handy for things like decimal <===> double - il.Emit(OpCodes.Unbox_Any, from); // stack is now [target][target][data-typed-value] - il.Emit(OpCodes.Call, op); // stack is now [target][target][typed-value] - } - else - { - bool handled = false; - OpCode opCode = default(OpCode); - switch (TypeExtensions.GetTypeCode(from)) - { - case TypeCode.Boolean: - case TypeCode.Byte: - case TypeCode.SByte: - case TypeCode.Int16: - case TypeCode.UInt16: - case TypeCode.Int32: - case TypeCode.UInt32: - case TypeCode.Int64: - case TypeCode.UInt64: - case TypeCode.Single: - case TypeCode.Double: - handled = true; - switch (TypeExtensions.GetTypeCode(via ?? to)) - { - case TypeCode.Byte: - opCode = OpCodes.Conv_Ovf_I1_Un; break; - case TypeCode.SByte: - opCode = OpCodes.Conv_Ovf_I1; break; - case TypeCode.UInt16: - opCode = OpCodes.Conv_Ovf_I2_Un; break; - case TypeCode.Int16: - opCode = OpCodes.Conv_Ovf_I2; break; - case TypeCode.UInt32: - opCode = OpCodes.Conv_Ovf_I4_Un; break; - case TypeCode.Boolean: // boolean is basically an int, at least at this level - case TypeCode.Int32: - opCode = OpCodes.Conv_Ovf_I4; break; - case TypeCode.UInt64: - opCode = OpCodes.Conv_Ovf_I8_Un; break; - case TypeCode.Int64: - opCode = OpCodes.Conv_Ovf_I8; break; - case TypeCode.Single: - opCode = OpCodes.Conv_R4; break; - case TypeCode.Double: - opCode = OpCodes.Conv_R8; break; - default: - handled = false; - break; - } - break; - } - if (handled) - { - il.Emit(OpCodes.Unbox_Any, from); // stack is now [target][target][col-typed-value] - il.Emit(opCode); // stack is now [target][target][typed-value] - if (to == typeof(bool)) - { // compare to zero; I checked "csc" - this is the trick it uses; nice - il.Emit(OpCodes.Ldc_I4_0); - il.Emit(OpCodes.Ceq); - il.Emit(OpCodes.Ldc_I4_0); - il.Emit(OpCodes.Ceq); - } - } - else - { - il.Emit(OpCodes.Ldtoken, via ?? to); // stack is now [target][target][value][member-type-token] - il.EmitCall(OpCodes.Call, typeof(Type).GetMethod("GetTypeFromHandle"), null); // stack is now [target][target][value][member-type] - il.EmitCall(OpCodes.Call, typeof(Convert).GetMethod("ChangeType", new Type[] { typeof(object), typeof(Type) }), null); // stack is now [target][target][boxed-member-type-value] - il.Emit(OpCodes.Unbox_Any, to); // stack is now [target][target][typed-value] - } - } - } - - static MethodInfo GetOperator(Type from, Type to) - { - if (to == null) return null; - MethodInfo[] fromMethods, toMethods; - return ResolveOperator(fromMethods = from.GetMethods(BindingFlags.Static | BindingFlags.Public), from, to, "op_Implicit") - ?? ResolveOperator(toMethods = to.GetMethods(BindingFlags.Static | BindingFlags.Public), from, to, "op_Implicit") - ?? ResolveOperator(fromMethods, from, to, "op_Explicit") - ?? ResolveOperator(toMethods, from, to, "op_Explicit"); - - } - static MethodInfo ResolveOperator(MethodInfo[] methods, Type from, Type to, string name) - { - for (int i = 0; i < methods.Length; i++) - { - if (methods[i].Name != name || methods[i].ReturnType != to) continue; - var args = methods[i].GetParameters(); - if (args.Length != 1 || args[0].ParameterType != from) continue; - return methods[i]; - } - return null; - } - - private static void LoadLocal(ILGenerator il, int index) - { - if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException("index"); - switch (index) - { - case 0: il.Emit(OpCodes.Ldloc_0); break; - case 1: il.Emit(OpCodes.Ldloc_1); break; - case 2: il.Emit(OpCodes.Ldloc_2); break; - case 3: il.Emit(OpCodes.Ldloc_3); break; - default: - if (index <= 255) - { - il.Emit(OpCodes.Ldloc_S, (byte)index); - } - else - { - il.Emit(OpCodes.Ldloc, (short)index); - } - break; - } - } - private static void StoreLocal(ILGenerator il, int index) - { - if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException("index"); - switch (index) - { - case 0: il.Emit(OpCodes.Stloc_0); break; - case 1: il.Emit(OpCodes.Stloc_1); break; - case 2: il.Emit(OpCodes.Stloc_2); break; - case 3: il.Emit(OpCodes.Stloc_3); break; - default: - if (index <= 255) - { - il.Emit(OpCodes.Stloc_S, (byte)index); - } - else - { - il.Emit(OpCodes.Stloc, (short)index); - } - break; - } - } - private static void LoadLocalAddress(ILGenerator il, int index) - { - if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException("index"); - - if (index <= 255) - { - il.Emit(OpCodes.Ldloca_S, (byte)index); - } - else - { - il.Emit(OpCodes.Ldloca, (short)index); - } - } - /// - /// Throws a data exception, only used internally - /// - [Obsolete("Intended for internal use only")] - public static void ThrowDataException(Exception ex, int index, IDataReader reader, object value) - { - Exception toThrow; - try - { - string name = "(n/a)", formattedValue = "(n/a)"; - if (reader != null && index >= 0 && index < reader.FieldCount) - { - name = reader.GetName(index); - try - { - if (value == null || value is DBNull) - { - formattedValue = ""; - } - else - { - formattedValue = Convert.ToString(value) + " - " + TypeExtensions.GetTypeCode(value.GetType()); - } - } - catch (Exception valEx) - { - formattedValue = valEx.Message; - } - } - toThrow = new DataException(string.Format("Error parsing column {0} ({1}={2})", index, name, formattedValue), ex); - } - catch - { // throw the **original** exception, wrapped as DataException - toThrow = new DataException(ex.Message, ex); - } - throw toThrow; - } - private static void EmitInt32(ILGenerator il, int value) - { - switch (value) - { - case -1: il.Emit(OpCodes.Ldc_I4_M1); break; - case 0: il.Emit(OpCodes.Ldc_I4_0); break; - case 1: il.Emit(OpCodes.Ldc_I4_1); break; - case 2: il.Emit(OpCodes.Ldc_I4_2); break; - case 3: il.Emit(OpCodes.Ldc_I4_3); break; - case 4: il.Emit(OpCodes.Ldc_I4_4); break; - case 5: il.Emit(OpCodes.Ldc_I4_5); break; - case 6: il.Emit(OpCodes.Ldc_I4_6); break; - case 7: il.Emit(OpCodes.Ldc_I4_7); break; - case 8: il.Emit(OpCodes.Ldc_I4_8); break; - default: - if (value >= -128 && value <= 127) - { - il.Emit(OpCodes.Ldc_I4_S, (sbyte)value); - } - else - { - il.Emit(OpCodes.Ldc_I4, value); - } - break; - } - } - - - /// - /// Key used to indicate the type name associated with a DataTable - /// - private const string DataTableTypeNameKey = "dapper:TypeName"; - - /// - /// 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. - /// - public static IEqualityComparer ConnectionStringComparer - { - get { return connectionStringComparer; } - set { connectionStringComparer = value ?? StringComparer.Ordinal; } - } - private static IEqualityComparer connectionStringComparer = StringComparer.Ordinal; - - - /// - /// The grid reader provides interfaces for reading multiple result sets from a Dapper query - /// - public partial class GridReader : IDisposable - { - private IDataReader reader; - private IDbCommand command; - private Identity identity; - private bool addToCache; - - internal GridReader(IDbCommand command, IDataReader reader, Identity identity, SqlMapper.IParameterCallbacks callbacks, bool addToCache) - { - this.command = command; - this.reader = reader; - this.identity = identity; - this.callbacks = callbacks; - this.addToCache = addToCache; - } - -#if !CSHARP30 - - /// - /// 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> - public IEnumerable Read(bool buffered = true) - { - return ReadImpl(typeof(DapperRow), buffered); - } -#endif - -#if CSHARP30 - /// - /// Read the next grid of results - /// - public IEnumerable Read() - { - return Read(true); - } -#endif - /// - /// Read the next grid of results - /// -#if CSHARP30 - public IEnumerable Read(bool buffered) -#else - public IEnumerable Read(bool buffered = true) -#endif - { - return ReadImpl(typeof(T), buffered); - } - - /// - /// Read the next grid of results - /// -#if CSHARP30 - public IEnumerable Read(Type type, bool buffered) -#else - public IEnumerable Read(Type type, bool buffered = true) -#endif - { - if (type == null) throw new ArgumentNullException("type"); - return ReadImpl(type, buffered); - } - - private IEnumerable ReadImpl(Type type, bool buffered) - { - if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); - if (consumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); - var typedIdentity = identity.ForGrid(type, gridIndex); - CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); - var deserializer = cache.Deserializer; - - int hash = GetColumnHash(reader); - if (deserializer.Func == null || deserializer.Hash != hash) - { - deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); - cache.Deserializer = deserializer; - } - consumed = true; - var result = ReadDeferred(gridIndex, deserializer.Func, typedIdentity); - return buffered ? result.ToList() : result; - } - - - private IEnumerable MultiReadInternal(Delegate func, string splitOn) - { - var identity = this.identity.ForGrid(typeof(TReturn), new Type[] { - typeof(TFirst), - typeof(TSecond), - typeof(TThird), - typeof(TFourth), - typeof(TFifth), - typeof(TSixth), - typeof(TSeventh) - }, gridIndex); - try - { - foreach (var r in SqlMapper.MultiMapImpl(null, default(CommandDefinition), func, splitOn, reader, identity, false)) - { - yield return r; - } - } - finally - { - NextResult(); - } - } - -#if CSHARP30 - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn) - { - return Read(func, splitOn, true); - } -#endif - /// - /// Read multiple objects from a single record set on the grid - /// -#if CSHARP30 - public IEnumerable Read(Func func, string splitOn, bool buffered) -#else - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) -#endif - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } - -#if CSHARP30 - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn) - { - return Read(func, splitOn, true); - } -#endif - /// - /// Read multiple objects from a single record set on the grid - /// -#if CSHARP30 - public IEnumerable Read(Func func, string splitOn, bool buffered) -#else - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) -#endif - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } - -#if CSHARP30 - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn) - { - return Read(func, splitOn, true); - } -#endif - - /// - /// Read multiple objects from a single record set on the grid - /// -#if CSHARP30 - public IEnumerable Read(Func func, string splitOn, bool buffered) -#else - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) -#endif - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } - - - -#if !CSHARP30 - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } - /// - /// Read multiple objects from a single record set on the grid - /// - public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) - { - var result = MultiReadInternal(func, splitOn); - return buffered ? result.ToList() : result; - } -#endif - - private IEnumerable ReadDeferred(int index, Func deserializer, Identity typedIdentity) - { - try - { - while (index == gridIndex && reader.Read()) - { - yield return (T)deserializer(reader); - } - } - finally // finally so that First etc progresses things even when multiple rows - { - if (index == gridIndex) - { - NextResult(); - } - } - } - private int gridIndex, readCount; - private bool consumed; - private SqlMapper.IParameterCallbacks callbacks; - - /// - /// Has the underlying reader been consumed? - /// - public bool IsConsumed - { - get - { - return consumed; - } - } - private void NextResult() - { - if (reader.NextResult()) - { - readCount++; - gridIndex++; - consumed = false; - } - else - { - // happy path; close the reader cleanly - no - // need for "Cancel" etc - reader.Dispose(); - reader = null; - if (callbacks != null) callbacks.OnCompleted(); - Dispose(); - } - } - /// - /// Dispose the grid, closing and disposing both the underlying reader and command. - /// - public void Dispose() - { - if (reader != null) - { - if (!reader.IsClosed && command != null) command.Cancel(); - reader.Dispose(); - reader = null; - } - if (command != null) - { - command.Dispose(); - command = null; - } - } - } - - -#if !DNXCORE50 - /// - /// Used to pass a DataTable as a TableValuedParameter - /// - public static ICustomQueryParameter AsTableValuedParameter(this DataTable table, string typeName -#if !CSHARP30 - = null -#endif - ) - { - return new TableValuedParameter(table, typeName); - } - - /// - /// Associate a DataTable with a type name - /// - public static void SetTypeName(this DataTable table, string typeName) - { - if (table != null) - { - if (string.IsNullOrEmpty(typeName)) - table.ExtendedProperties.Remove(DataTableTypeNameKey); - else - table.ExtendedProperties[DataTableTypeNameKey] = typeName; - } - } - - /// - /// Fetch the type name associated with a DataTable - /// - public static string GetTypeName(this DataTable table) - { - return table == null ? null : table.ExtendedProperties[DataTableTypeNameKey] as string; - } -#endif - - // one per thread - [ThreadStatic] - private static StringBuilder perThreadStringBuilderCache; - private static StringBuilder GetStringBuilder() - { - var tmp = perThreadStringBuilderCache; - if (tmp != null) - { - perThreadStringBuilderCache = null; - tmp.Length = 0; - return tmp; - } - return new StringBuilder(); - } - - private static string __ToStringRecycle(this StringBuilder obj) - { - if (obj == null) return ""; - var s = obj.ToString(); - if(perThreadStringBuilderCache == null) - { - perThreadStringBuilderCache = obj; - } - return s; - } - } - - /// - /// A bag of parameters that can be passed to the Dapper Query and Execute methods - /// - partial class DynamicParameters : SqlMapper.IDynamicParameters, SqlMapper.IParameterLookup, SqlMapper.IParameterCallbacks - { - internal const DbType EnumerableMultiParameter = (DbType)(-1); - static Dictionary> paramReaderCache = new Dictionary>(); - - Dictionary parameters = new Dictionary(); - List templates; - - object SqlMapper.IParameterLookup.this[string member] - { - get - { - ParamInfo param; - return parameters.TryGetValue(member, out param) ? param.Value : null; - } - } - - partial class ParamInfo - { - public string Name { get; set; } - public object Value { get; set; } - public ParameterDirection ParameterDirection { get; set; } - public DbType? DbType { get; set; } - public int? Size { get; set; } - public IDbDataParameter AttachedParam { get; set; } - internal Action OutputCallback { get; set; } - internal object OutputTarget { get; set; } - internal bool CameFromTemplate { get; set; } - - public byte? Precision { get; set; } - public byte? Scale { get; set; } - } - - /// - /// construct a dynamic parameter bag - /// - public DynamicParameters() - { - RemoveUnused = true; - } - - /// - /// construct a dynamic parameter bag - /// - /// can be an anonymous type or a DynamicParameters bag - public DynamicParameters(object template) - { - RemoveUnused = true; - AddDynamicParams(template); - } - - /// - /// 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 - /// - /// - public void AddDynamicParams(object param) - { - var obj = param as object; - if (obj != null) - { - var subDynamic = obj as DynamicParameters; - if (subDynamic == null) - { - var dictionary = obj as IEnumerable>; - if (dictionary == null) - { - templates = templates ?? new List(); - templates.Add(obj); - } - else - { - foreach (var kvp in dictionary) - { - Add(kvp.Key, kvp.Value, null, null, null); - } - } - } - else - { - if (subDynamic.parameters != null) - { - foreach (var kvp in subDynamic.parameters) - { - parameters.Add(kvp.Key, kvp.Value); - } - } - - if (subDynamic.templates != null) - { - templates = templates ?? new List(); - foreach (var t in subDynamic.templates) - { - templates.Add(t); - } - } - } - } - } - - /// - /// Add a parameter to this dynamic parameter list - /// - public void Add(string name, object value, DbType? dbType, ParameterDirection? direction, int? size) - { - parameters[Clean(name)] = new ParamInfo() { - Name = name, Value = value, ParameterDirection = direction ?? ParameterDirection.Input, - DbType = dbType, Size = size - }; - } - - /// - /// Add a parameter to this dynamic parameter list - /// - public void Add( -#if CSHARP30 -string name, object value, DbType? dbType, ParameterDirection? direction, int? size, byte? precision, byte? scale -#else -string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null, byte? precision = null, byte? scale = null -#endif -) - { - parameters[Clean(name)] = new ParamInfo() { - Name = name, Value = value, ParameterDirection = direction ?? ParameterDirection.Input, - DbType = dbType, Size = size, - Precision = precision, Scale = scale - }; - } - - static string Clean(string name) - { - if (!string.IsNullOrEmpty(name)) - { - switch (name[0]) - { - case '@': - case ':': - case '?': - return name.Substring(1); - } - } - return name; - } - - void SqlMapper.IDynamicParameters.AddParameters(IDbCommand command, SqlMapper.Identity identity) - { - AddParameters(command, identity); - } - - /// - /// If true, the command-text is inspected and only values that are clearly used are included on the connection - /// - public bool RemoveUnused { get; set; } - - /// - /// Add all the parameters needed to the command just before it executes - /// - /// The raw command prior to execution - /// Information about the query - protected void AddParameters(IDbCommand command, SqlMapper.Identity identity) - { - var literals = SqlMapper.GetLiteralTokens(identity.sql); - - if (templates != null) - { - foreach (var template in templates) - { - var newIdent = identity.ForDynamicParameters(template.GetType()); - Action appender; - - lock (paramReaderCache) - { - if (!paramReaderCache.TryGetValue(newIdent, out appender)) - { - appender = SqlMapper.CreateParamInfoGenerator(newIdent, true, RemoveUnused, literals); - paramReaderCache[newIdent] = appender; - } - } - - appender(command, template); - } - - // The parameters were added to the command, but not the - // DynamicParameters until now. - foreach (IDbDataParameter param in command.Parameters) - { - // If someone makes a DynamicParameters with a template, - // then explicitly adds a parameter of a matching name, - // it will already exist in 'parameters'. - if (!parameters.ContainsKey(param.ParameterName)) - { - parameters.Add(param.ParameterName, new ParamInfo - { - AttachedParam = param, - CameFromTemplate = true, - DbType = param.DbType, - Name = param.ParameterName, - ParameterDirection = param.Direction, - Size = param.Size, - Value = param.Value - }); - } - } - - // Now that the parameters are added to the command, let's place our output callbacks - var tmp = outputCallbacks; - if (tmp != null) - { - foreach (var generator in tmp) - { - generator(); - } - } - } - - foreach (var param in parameters.Values) - { - if (param.CameFromTemplate) continue; - - var dbType = param.DbType; - var val = param.Value; - string name = Clean(param.Name); - var isCustomQueryParameter = val is SqlMapper.ICustomQueryParameter; - - SqlMapper.ITypeHandler handler = null; - if (dbType == null && val != null && !isCustomQueryParameter) dbType = SqlMapper.LookupDbType(val.GetType(), name, true, out handler); - if (dbType == DynamicParameters.EnumerableMultiParameter) - { -#pragma warning disable 612, 618 - SqlMapper.PackListParameters(command, name, val); -#pragma warning restore 612, 618 - } - else if (isCustomQueryParameter) - { - ((SqlMapper.ICustomQueryParameter)val).AddParameter(command, name); - } - else - { - - bool add = !command.Parameters.Contains(name); - IDbDataParameter p; - if (add) - { - p = command.CreateParameter(); - p.ParameterName = name; - } - else - { - p = (IDbDataParameter)command.Parameters[name]; - } - - p.Direction = param.ParameterDirection; - if (handler == null) - { - p.Value = SqlMapper.SanitizeParameterValue(val); - if (dbType != null && p.DbType != dbType) - { - p.DbType = dbType.Value; - } - var s = val as string; - if (s != null) - { - if (s.Length <= DbString.DefaultLength) - { - p.Size = DbString.DefaultLength; - } - } - if (param.Size != null) p.Size = param.Size.Value; - if (param.Precision != null) p.Precision = param.Precision.Value; - if (param.Scale != null) p.Scale = param.Scale.Value; - } - else - { - if (dbType != null) p.DbType = dbType.Value; - if (param.Size != null) p.Size = param.Size.Value; - if (param.Precision != null) p.Precision = param.Precision.Value; - if (param.Scale != null) p.Scale = param.Scale.Value; - handler.SetValue(p, val ?? DBNull.Value); - } - - if (add) - { - command.Parameters.Add(p); - } - param.AttachedParam = p; - } - } - - // note: most non-priveleged implementations would use: this.ReplaceLiterals(command); - if(literals.Count != 0) SqlMapper.ReplaceLiterals(this, command, literals); - } - - /// - /// All the names of the param in the bag, use Get to yank them out - /// - public IEnumerable ParameterNames - { - get - { - return parameters.Select(p => p.Key); - } - } - - - /// - /// Get the value of a parameter - /// - /// - /// - /// The value, note DBNull.Value is not returned, instead the value is returned as null - public T Get(string name) - { - var paramInfo = parameters[Clean(name)]; - var attachedParam = paramInfo.AttachedParam; - object val = attachedParam == null ? paramInfo.Value : attachedParam.Value; - if (val == DBNull.Value) - { - if (default(T) != null) - { - throw new ApplicationException("Attempting to cast a DBNull to a non nullable type! Note that out/return parameters will not have updated values until the data stream completes (after the 'foreach' for Query(..., buffered: false), or after the GridReader has been disposed for QueryMultiple)"); - } - return default(T); - } - return (T)val; - } - - /// - /// 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 -#if CSHARP30 - public DynamicParameters Output(T target, Expression> expression, DbType? dbType, int? size) -#else - public DynamicParameters Output(T target, Expression> expression, DbType? dbType = null, int? size = null) -#endif - { - var failMessage = "Expression must be a property/field chain off of a(n) {0} instance"; - failMessage = string.Format(failMessage, typeof(T).Name); - Action @throw = () => { throw new InvalidOperationException(failMessage); }; - - // Is it even a MemberExpression? - var lastMemberAccess = expression.Body as MemberExpression; - - if (lastMemberAccess == null || - (!(lastMemberAccess.Member is PropertyInfo) && - !(lastMemberAccess.Member is FieldInfo))) - { - if (expression.Body.NodeType == ExpressionType.Convert && - expression.Body.Type == typeof(object) && - ((UnaryExpression)expression.Body).Operand is MemberExpression) - { - // It's got to be unboxed - lastMemberAccess = (MemberExpression)((UnaryExpression)expression.Body).Operand; - } - else @throw(); - } - - // Does the chain consist of MemberExpressions leading to a ParameterExpression of type T? - MemberExpression diving = lastMemberAccess; - ParameterExpression constant = null; - // Retain a list of member names and the member expressions so we can rebuild the chain. - List names = new List(); - List chain = new List(); - - do - { - // Insert the names in the right order so expression - // "Post.Author.Name" becomes parameter "PostAuthorName" - names.Insert(0, diving.Member.Name); - chain.Insert(0, diving); - - constant = diving.Expression as ParameterExpression; - diving = diving.Expression as MemberExpression; - - if (constant != null && - constant.Type == typeof(T)) - { - break; - } - else if (diving == null || - (!(diving.Member is PropertyInfo) && - !(diving.Member is FieldInfo))) - { - @throw(); - } - } - while (diving != null); - - var dynamicParamName = string.Join(string.Empty, names.ToArray()); - - // Before we get all emitty... - var lookup = string.Join("|", names.ToArray()); - - var cache = CachedOutputSetters.Cache; - Action setter; -#if DNXCORE50 - lock (cache) - { - if(!cache.TryGetValue(lookup, out setter)) setter = null; - } -#else - setter = (Action)cache[lookup]; -#endif - if (setter != null) goto MAKECALLBACK; - - // Come on let's build a method, let's build it, let's build it now! - var dm = new DynamicMethod(string.Format("ExpressionParam{0}", Guid.NewGuid()), null, new[] { typeof(object), this.GetType() }, true); - var il = dm.GetILGenerator(); - - il.Emit(OpCodes.Ldarg_0); // [object] - il.Emit(OpCodes.Castclass, typeof(T)); // [T] - - // Count - 1 to skip the last member access - var i = 0; - for (; i < (chain.Count - 1); i++) - { - var member = chain[0].Member; - - if (member is PropertyInfo) - { - var get = ((PropertyInfo)member).GetGetMethod(true); - il.Emit(OpCodes.Callvirt, get); // [Member{i}] - } - else // Else it must be a field! - { - il.Emit(OpCodes.Ldfld, ((FieldInfo)member)); // [Member{i}] - } - } - - var paramGetter = this.GetType().GetMethod("Get", new Type[] { typeof(string) }).MakeGenericMethod(lastMemberAccess.Type); - - il.Emit(OpCodes.Ldarg_1); // [target] [DynamicParameters] - il.Emit(OpCodes.Ldstr, dynamicParamName); // [target] [DynamicParameters] [ParamName] - il.Emit(OpCodes.Callvirt, paramGetter); // [target] [value], it's already typed thanks to generic method - - // GET READY - var lastMember = lastMemberAccess.Member; - if (lastMember is PropertyInfo) - { - var set = ((PropertyInfo)lastMember).GetSetMethod(true); - il.Emit(OpCodes.Callvirt, set); // SET - } - else - { - il.Emit(OpCodes.Stfld, ((FieldInfo)lastMember)); // SET - } - - il.Emit(OpCodes.Ret); // GO - - setter = (Action)dm.CreateDelegate(typeof(Action)); - lock (cache) - { - cache[lookup] = setter; - } - - // Queue the preparation to be fired off when adding parameters to the DbCommand - MAKECALLBACK: - (outputCallbacks ?? (outputCallbacks = new List())).Add(() => - { - // Finally, prep the parameter and attach the callback to it - ParamInfo parameter; - var targetMemberType = lastMemberAccess.Type; - int sizeToSet = (!size.HasValue && targetMemberType == typeof(string)) ? DbString.DefaultLength : size ?? 0; - - if (this.parameters.TryGetValue(dynamicParamName, out parameter)) - { - parameter.ParameterDirection = parameter.AttachedParam.Direction = ParameterDirection.InputOutput; - - if (parameter.AttachedParam.Size == 0) - { - parameter.Size = parameter.AttachedParam.Size = sizeToSet; - } - } - else - { - SqlMapper.ITypeHandler handler; - dbType = (!dbType.HasValue) ? SqlMapper.LookupDbType(targetMemberType, targetMemberType.Name, true, out handler) : dbType; - - // CameFromTemplate property would not apply here because this new param - // Still needs to be added to the command - this.Add(dynamicParamName, expression.Compile().Invoke(target), null, ParameterDirection.InputOutput, sizeToSet); - } - - parameter = this.parameters[dynamicParamName]; - parameter.OutputCallback = setter; - parameter.OutputTarget = target; - }); - - return this; - } - - private List outputCallbacks; - - private readonly Dictionary> cachedOutputSetters = new Dictionary>(); - - internal static class CachedOutputSetters - { -#if DNXCORE50 - public static readonly Dictionary> Cache = new Dictionary>(); -#else - public static readonly Hashtable Cache = new Hashtable(); -#endif - } - - void SqlMapper.IParameterCallbacks.OnCompleted() - { - foreach (var param in (from p in parameters select p.Value)) - { - if (param.OutputCallback != null) param.OutputCallback(param.OutputTarget, this); - } - } - } -#if !DNXCORE50 - sealed class DataTableHandler : Dapper.SqlMapper.ITypeHandler - { - public object Parse(Type destinationType, object value) - { - throw new NotImplementedException(); - } - - public void SetValue(IDbDataParameter parameter, object value) - { - TableValuedParameter.Set(parameter, value as DataTable, null); - } - } - - /// - /// Used to pass a DataTable as a TableValuedParameter - /// - sealed partial class TableValuedParameter : Dapper.SqlMapper.ICustomQueryParameter - { - private readonly DataTable table; - private readonly string typeName; - - /// - /// Create a new instance of TableValuedParameter - /// - public TableValuedParameter(DataTable table) : this(table, null) { } - /// - /// Create a new instance of TableValuedParameter - /// - public TableValuedParameter(DataTable table, string typeName) - { - this.table = table; - this.typeName = typeName; - } - static readonly Action setTypeName; - static TableValuedParameter() - { - var prop = typeof(System.Data.SqlClient.SqlParameter).GetProperty("TypeName", BindingFlags.Instance | BindingFlags.Public); - if(prop != null && prop.PropertyType == typeof(string) && prop.CanWrite) - { - setTypeName = (Action) - Delegate.CreateDelegate(typeof(Action), prop.GetSetMethod()); - } - } - void SqlMapper.ICustomQueryParameter.AddParameter(IDbCommand command, string name) - { - var param = command.CreateParameter(); - param.ParameterName = name; - Set(param, table, typeName); - command.Parameters.Add(param); - } - internal static void Set(IDbDataParameter parameter, DataTable table, string typeName) - { - parameter.Value = SqlMapper.SanitizeParameterValue(table); - if (string.IsNullOrEmpty(typeName) && table != null) - { - typeName = SqlMapper.GetTypeName(table); - } - if (!string.IsNullOrEmpty(typeName)) - { - var sqlParam = parameter as System.Data.SqlClient.SqlParameter; - if (sqlParam != null) - { - if (setTypeName != null) setTypeName(sqlParam, typeName); - sqlParam.SqlDbType = SqlDbType.Structured; - } - } - } - } -#endif - /// - /// 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 - /// - sealed partial class DbString : Dapper.SqlMapper.ICustomQueryParameter - { - /// - /// 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. - /// - public const int DefaultLength = 4000; - - /// - /// Create a new DbString - /// - public DbString() { Length = -1; } - /// - /// Ansi vs Unicode - /// - public bool IsAnsi { get; set; } - /// - /// Fixed length - /// - public bool IsFixedLength { get; set; } - /// - /// Length of the string -1 for max - /// - public int Length { get; set; } - /// - /// The value of the string - /// - public string Value { get; set; } - /// - /// Add the parameter to the command... internal use only - /// - /// - /// - public void AddParameter(IDbCommand command, string name) - { - if (IsFixedLength && Length == -1) - { - throw new InvalidOperationException("If specifying IsFixedLength, a Length must also be specified"); - } - var param = command.CreateParameter(); - param.ParameterName = name; - param.Value = SqlMapper.SanitizeParameterValue(Value); - if (Length == -1 && Value != null && Value.Length <= DefaultLength) - { - param.Size = DefaultLength; - } - else - { - param.Size = Length; - } - param.DbType = IsAnsi ? (IsFixedLength ? DbType.AnsiStringFixedLength : DbType.AnsiString) : (IsFixedLength ? DbType.StringFixedLength : DbType.String); - command.Parameters.Add(param); - } - } - - /// - /// Handles variances in features per DBMS - /// - partial class FeatureSupport - { - private static readonly FeatureSupport - @default = new FeatureSupport(false), - postgres = new FeatureSupport(true); - - /// - /// Gets the feature set based on the passed connection - /// - public static FeatureSupport Get(IDbConnection connection) - { - string name = connection == null ? null : connection.GetType().Name; - if (string.Equals(name, "npgsqlconnection", StringComparison.OrdinalIgnoreCase)) return postgres; - return @default; - } - private FeatureSupport(bool arrays) - { - Arrays = arrays; - } - /// - /// True if the db supports array columns e.g. Postgresql - /// - public bool Arrays { get; private set; } - } - - /// - /// Represents simple member map for one of target parameter or property or field to source DataReader column - /// - sealed partial class SimpleMemberMap : SqlMapper.IMemberMap - { - private readonly string _columnName; - private readonly PropertyInfo _property; - private readonly FieldInfo _field; - private readonly ParameterInfo _parameter; - - /// - /// Creates instance for simple property mapping - /// - /// DataReader column name - /// Target property - public SimpleMemberMap(string columnName, PropertyInfo property) - { - if (columnName == null) - throw new ArgumentNullException("columnName"); - - if (property == null) - throw new ArgumentNullException("property"); - - _columnName = columnName; - _property = property; - } - - /// - /// Creates instance for simple field mapping - /// - /// DataReader column name - /// Target property - public SimpleMemberMap(string columnName, FieldInfo field) - { - if (columnName == null) - throw new ArgumentNullException("columnName"); - - if (field == null) - throw new ArgumentNullException("field"); - - _columnName = columnName; - _field = field; - } - - /// - /// Creates instance for simple constructor parameter mapping - /// - /// DataReader column name - /// Target constructor parameter - public SimpleMemberMap(string columnName, ParameterInfo parameter) - { - if (columnName == null) - throw new ArgumentNullException("columnName"); - - if (parameter == null) - throw new ArgumentNullException("parameter"); - - _columnName = columnName; - _parameter = parameter; - } - - /// - /// DataReader column name - /// - public string ColumnName - { - get { return _columnName; } - } - - /// - /// Target member type - /// - public Type MemberType - { - get - { - if (_field != null) - return _field.FieldType; - - if (_property != null) - return _property.PropertyType; - - if (_parameter != null) - return _parameter.ParameterType; - - return null; - } - } - - /// - /// Target property - /// - public PropertyInfo Property - { - get { return _property; } - } - - /// - /// Target field - /// - public FieldInfo Field - { - get { return _field; } - } - - /// - /// Target constructor parameter - /// - public ParameterInfo Parameter - { - get { return _parameter; } - } - } - - /// - /// Represents default type mapping strategy used by Dapper - /// - sealed partial class DefaultTypeMap : SqlMapper.ITypeMap - { - private readonly List _fields; - private readonly List _properties; - private readonly Type _type; - - /// - /// Creates default type map - /// - /// Entity type - public DefaultTypeMap(Type type) - { - if (type == null) - throw new ArgumentNullException("type"); - - _fields = GetSettableFields(type); - _properties = GetSettableProps(type); - _type = type; - } -#if DNXCORE50 - static bool IsParameterMatch(ParameterInfo[] x, ParameterInfo[] y) - { - if (ReferenceEquals(x, y)) return true; - if (x == null || y == null) return false; - if (x.Length != y.Length) return false; - for (int i = 0; i < x.Length; i++) - if (x[i].ParameterType != y[i].ParameterType) return false; - return true; - } -#endif - internal static MethodInfo GetPropertySetter(PropertyInfo propertyInfo, Type type) - { - if (propertyInfo.DeclaringType == type) return propertyInfo.GetSetMethod(true); -#if DNXCORE50 - return propertyInfo.DeclaringType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) - .Single(x => x.Name == propertyInfo.Name - && x.PropertyType == propertyInfo.PropertyType - && IsParameterMatch(x.GetIndexParameters(), propertyInfo.GetIndexParameters()) - ).GetSetMethod(true); -#else - return propertyInfo.DeclaringType.GetProperty( - propertyInfo.Name, - BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, - Type.DefaultBinder, - propertyInfo.PropertyType, - propertyInfo.GetIndexParameters().Select(p => p.ParameterType).ToArray(), - null).GetSetMethod(true); -#endif - } - - internal static List GetSettableProps(Type t) - { - return t - .GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) - .Where(p => GetPropertySetter(p, t) != null) - .ToList(); - } - - internal static List GetSettableFields(Type t) - { - return t.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).ToList(); - } - - /// - /// Finds best constructor - /// - /// DataReader column names - /// DataReader column types - /// Matching constructor or default one - public ConstructorInfo FindConstructor(string[] names, Type[] types) - { - var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - foreach (ConstructorInfo ctor in constructors.OrderBy(c => c.IsPublic ? 0 : (c.IsPrivate ? 2 : 1)).ThenBy(c => c.GetParameters().Length)) - { - ParameterInfo[] ctorParameters = ctor.GetParameters(); - if (ctorParameters.Length == 0) - return ctor; - - if (ctorParameters.Length != types.Length) - continue; - - int i = 0; - for (; i < ctorParameters.Length; i++) - { - if (!String.Equals(ctorParameters[i].Name, names[i], StringComparison.OrdinalIgnoreCase)) - break; - if (types[i] == typeof(byte[]) && ctorParameters[i].ParameterType.FullName == SqlMapper.LinqBinary) - continue; - var unboxedType = Nullable.GetUnderlyingType(ctorParameters[i].ParameterType) ?? ctorParameters[i].ParameterType; - if (unboxedType != types[i] - && !(unboxedType.IsEnum() && Enum.GetUnderlyingType(unboxedType) == types[i]) - && !(unboxedType == typeof(char) && types[i] == typeof(string)) - && !(unboxedType.IsEnum() && types[i] == typeof(string))) - { - break; - } - } - - if (i == ctorParameters.Length) - return ctor; - } - - return null; - } - - /// - /// Returns the constructor, if any, that has the ExplicitConstructorAttribute on it. - /// - public ConstructorInfo FindExplicitConstructor() - { - var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); -#if DNXCORE50 - var withAttr = constructors.Where(c => c.CustomAttributes.Any(x => x.AttributeType == typeof(ExplicitConstructorAttribute))).ToList(); -#else - var withAttr = constructors.Where(c => c.GetCustomAttributes(typeof(ExplicitConstructorAttribute), true).Length > 0).ToList(); -#endif - - if (withAttr.Count == 1) - { - return withAttr[0]; - } - - return null; - } - - /// - /// Gets mapping for constructor parameter - /// - /// Constructor to resolve - /// DataReader column name - /// Mapping implementation - public SqlMapper.IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName) - { - var parameters = constructor.GetParameters(); - - return new SimpleMemberMap(columnName, parameters.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase))); - } - - /// - /// Gets member mapping for column - /// - /// DataReader column name - /// Mapping implementation - public SqlMapper.IMemberMap GetMember(string columnName) - { - var property = _properties.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.Ordinal)) - ?? _properties.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase)); - - if (property == null && MatchNamesWithUnderscores) - { - property = _properties.FirstOrDefault(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.Ordinal)) - ?? _properties.FirstOrDefault(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.OrdinalIgnoreCase)); - } - - if (property != null) - return new SimpleMemberMap(columnName, property); - - var field = _fields.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.Ordinal)) - ?? _fields.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase)); - - if (field == null && MatchNamesWithUnderscores) - { - field = _fields.FirstOrDefault(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.Ordinal)) - ?? _fields.FirstOrDefault(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.OrdinalIgnoreCase)); - } - - if (field != null) - return new SimpleMemberMap(columnName, field); - - return null; - } - /// - /// Should column names like User_Id be allowed to match properties/fields like UserId ? - /// - public static bool MatchNamesWithUnderscores { get; set; } - } - - - - /// - /// Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping) - /// - sealed partial class CustomPropertyTypeMap : SqlMapper.ITypeMap - { - private readonly Type _type; - private readonly Func _propertySelector; - - /// - /// Creates custom property mapping - /// - /// Target entity type - /// Property selector based on target type and DataReader column name - public CustomPropertyTypeMap(Type type, Func propertySelector) - { - if (type == null) - throw new ArgumentNullException("type"); - - if (propertySelector == null) - throw new ArgumentNullException("propertySelector"); - - _type = type; - _propertySelector = propertySelector; - } - - /// - /// Always returns default constructor - /// - /// DataReader column names - /// DataReader column types - /// Default constructor - public ConstructorInfo FindConstructor(string[] names, Type[] types) - { - return _type.GetConstructor(new Type[0]); - } - - /// - /// Always returns null - /// - /// - public ConstructorInfo FindExplicitConstructor() - { - return null; - } - - /// - /// Not implemented as far as default constructor used for all cases - /// - /// - /// - /// - public SqlMapper.IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName) - { - throw new NotSupportedException(); - } - - /// - /// Returns property based on selector strategy - /// - /// DataReader column name - /// Poperty member map - public SqlMapper.IMemberMap GetMember(string columnName) - { - var prop = _propertySelector(_type, columnName); - return prop != null ? new SimpleMemberMap(columnName, prop) : null; - } - } - -#if DNXCORE50 - internal class WrappedReader : WrappedDataReader - { - private IDbCommand cmd; - private IDataReader reader; - - public override IEnumerator GetEnumerator() - { - return Reader.GetEnumerator(); - } - public WrappedReader(IDbCommand cmd, IDataReader reader) - { - this.cmd = cmd; - this.reader = reader; - } - public override IDataReader Reader - { - get - { - var tmp = reader; - if (tmp == null) throw new ObjectDisposedException(GetType().Name); - return tmp; - } - } - public override IDbCommand Command - { - get - { - var tmp = cmd; - if (tmp == null) throw new ObjectDisposedException(GetType().Name); - return tmp; - } - } - - public override int Depth - { - get { return Reader.Depth; } - } - - public override bool IsClosed - { - get { return reader == null ? true : reader.IsClosed; } - } - public override bool HasRows - { - get - { - return Reader.HasRows; - } - } - public override bool NextResult() - { - return Reader.NextResult(); - } - - public override bool Read() - { - return Reader.Read(); - } - - public override int RecordsAffected - { - get { return Reader.RecordsAffected; } - } - - - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (reader != null) reader.Dispose(); - reader = null; - if (cmd != null) cmd.Dispose(); - cmd = null; - } - base.Dispose(disposing); - } - - public override int FieldCount - { - get { return Reader.FieldCount; } - } - - public override bool GetBoolean(int i) - { - return Reader.GetBoolean(i); - } - - public override byte GetByte(int i) - { - return Reader.GetByte(i); - } - - public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) - { - return Reader.GetBytes(i, fieldOffset, buffer, bufferoffset, length); - } - - public override char GetChar(int i) - { - return Reader.GetChar(i); - } - - public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) - { - return Reader.GetChars(i, fieldoffset, buffer, bufferoffset, length); - } - - protected override IDataReader GetDbDataReader(int ordinal) - { - return Reader.GetData(ordinal); - } - - public override string GetDataTypeName(int i) - { - return Reader.GetDataTypeName(i); - } - - public override DateTime GetDateTime(int i) - { - return Reader.GetDateTime(i); - } - - public override decimal GetDecimal(int i) - { - return Reader.GetDecimal(i); - } - - public override double GetDouble(int i) - { - return Reader.GetDouble(i); - } - - public override Type GetFieldType(int i) - { - return Reader.GetFieldType(i); - } - - public override float GetFloat(int i) - { - return Reader.GetFloat(i); - } - - public override Guid GetGuid(int i) - { - return Reader.GetGuid(i); - } - - public override short GetInt16(int i) - { - return Reader.GetInt16(i); - } - - public override int GetInt32(int i) - { - return Reader.GetInt32(i); - } - - public override long GetInt64(int i) - { - return Reader.GetInt64(i); - } - - public override string GetName(int i) - { - return Reader.GetName(i); - } - - public override int GetOrdinal(string name) - { - return Reader.GetOrdinal(name); - } - - public override string GetString(int i) - { - return Reader.GetString(i); - } - - public override object GetValue(int i) - { - return Reader.GetValue(i); - } - - public override int GetValues(object[] values) - { - return Reader.GetValues(values); - } - - public override bool IsDBNull(int i) - { - return Reader.IsDBNull(i); - } - - public override object this[string name] - { - get { return Reader[name]; } - } - - public override object this[int i] - { - get { return Reader[i]; } - } - } -#else - - internal class WrappedReader : IDataReader, IWrappedDataReader - { - private IDataReader reader; - private IDbCommand cmd; - - public IDataReader Reader - { - get - { - var tmp = reader; - if (tmp == null) throw new ObjectDisposedException(GetType().Name); - return tmp; - } - } - IDbCommand IWrappedDataReader.Command - { - get - { - var tmp = cmd; - if (tmp == null) throw new ObjectDisposedException(GetType().Name); - return tmp; - } - } - public WrappedReader(IDbCommand cmd, IDataReader reader) - { - this.cmd = cmd; - this.reader = reader; - } - - void IDataReader.Close() - { - if(reader != null) reader.Close(); - } - - int IDataReader.Depth - { - get { return Reader.Depth; } - } - - DataTable IDataReader.GetSchemaTable() - { - return Reader.GetSchemaTable(); - } - - bool IDataReader.IsClosed - { - get { return reader == null ? true : reader.IsClosed; } - } - - bool IDataReader.NextResult() - { - return Reader.NextResult(); - } - - bool IDataReader.Read() - { - return Reader.Read(); - } - - int IDataReader.RecordsAffected - { - get { return Reader.RecordsAffected; } - } - - void IDisposable.Dispose() - { - if (reader != null) reader.Close(); - if (reader != null) reader.Dispose(); - reader = null; - if (cmd != null) cmd.Dispose(); - cmd = null; - } - - int IDataRecord.FieldCount - { - get { return Reader.FieldCount; } - } - - bool IDataRecord.GetBoolean(int i) - { - return Reader.GetBoolean(i); - } - - byte IDataRecord.GetByte(int i) - { - return Reader.GetByte(i); - } - - long IDataRecord.GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) - { - return Reader.GetBytes(i, fieldOffset, buffer, bufferoffset, length); - } - - char IDataRecord.GetChar(int i) - { - return Reader.GetChar(i); - } - - long IDataRecord.GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) - { - return Reader.GetChars(i, fieldoffset, buffer, bufferoffset, length); - } - - IDataReader IDataRecord.GetData(int i) - { - return Reader.GetData(i); - } - - string IDataRecord.GetDataTypeName(int i) - { - return Reader.GetDataTypeName(i); - } - - DateTime IDataRecord.GetDateTime(int i) - { - return Reader.GetDateTime(i); - } - - decimal IDataRecord.GetDecimal(int i) - { - return Reader.GetDecimal(i); - } - - double IDataRecord.GetDouble(int i) - { - return Reader.GetDouble(i); - } - - Type IDataRecord.GetFieldType(int i) - { - return Reader.GetFieldType(i); - } - - float IDataRecord.GetFloat(int i) - { - return Reader.GetFloat(i); - } - - Guid IDataRecord.GetGuid(int i) - { - return Reader.GetGuid(i); - } - - short IDataRecord.GetInt16(int i) - { - return Reader.GetInt16(i); - } - - int IDataRecord.GetInt32(int i) - { - return Reader.GetInt32(i); - } - - long IDataRecord.GetInt64(int i) - { - return Reader.GetInt64(i); - } - - string IDataRecord.GetName(int i) - { - return Reader.GetName(i); - } - - int IDataRecord.GetOrdinal(string name) - { - return Reader.GetOrdinal(name); - } - - string IDataRecord.GetString(int i) - { - return Reader.GetString(i); - } - - object IDataRecord.GetValue(int i) - { - return Reader.GetValue(i); - } - - int IDataRecord.GetValues(object[] values) - { - return Reader.GetValues(values); - } - - bool IDataRecord.IsDBNull(int i) - { - return Reader.IsDBNull(i); - } - - object IDataRecord.this[string name] - { - get { return Reader[name]; } - } - - object IDataRecord.this[int i] - { - get { return Reader[i]; } - } - } -#endif - -#if DNXCORE50 - /// - /// Describes a reader that controls the lifetime of both a command and a reader, - /// exposing the downstream command/reader as properties. - /// - public abstract class WrappedDataReader : IDataReader - { - /// - /// Obtain the underlying reader - /// - public abstract IDataReader Reader { get; } - /// - /// Obtain the underlying command - /// - public abstract IDbCommand Command { get; } - } -#else - /// - /// Describes a reader that controls the lifetime of both a command and a reader, - /// exposing the downstream command/reader as properties. - /// - public interface IWrappedDataReader : IDataReader - { - /// - /// Obtain the underlying reader - /// - IDataReader Reader { get; } - /// - /// Obtain the underlying command - /// - IDbCommand Command { get; } - } -#endif - - /// - /// Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters - /// - [AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false)] - public sealed class ExplicitConstructorAttribute : Attribute - { - - } - - // Define DAPPER_MAKE_PRIVATE if you reference Dapper by source - // and you like to make the Dapper types private (in order to avoid - // conflicts with other projects that also reference Dapper by source) -#if !DAPPER_MAKE_PRIVATE - - public partial class SqlMapper - { - } - - public partial class DynamicParameters - { - - } - - public partial class DbString - { - - } - - - public partial class SimpleMemberMap - { - - } - - public partial class DefaultTypeMap - { - - } - - public partial class CustomPropertyTypeMap - { - - } - - public partial class FeatureSupport - { - - } - -#endif - - internal static class TypeExtensions - { - public static bool IsValueType(this Type type) - { -#if DNXCORE50 - return typeof(ValueType).IsAssignableFrom(type) && type != typeof(ValueType); -#else - return type.IsValueType; -#endif - } - public static bool IsEnum(this Type type) - { -#if DNXCORE50 - return typeof(Enum).IsAssignableFrom(type) && type != typeof(Enum); -#else - return type.IsEnum; -#endif - } -#if DNXCORE50 - public static TypeCode GetTypeCode(Type type) - { - if (type == null) return TypeCode.Empty; - TypeCode result; - if (typeCodeLookup.TryGetValue(type, out result)) return result; - - if (type.IsEnum()) - { - type = Enum.GetUnderlyingType(type); - if (typeCodeLookup.TryGetValue(type, out result)) return result; - } - return TypeCode.Object; - } - static readonly Dictionary typeCodeLookup = new Dictionary - { - {typeof(bool), TypeCode.Boolean }, - {typeof(byte), TypeCode.Byte }, - {typeof(char), TypeCode.Char}, - {typeof(DateTime), TypeCode.DateTime}, - {typeof(decimal), TypeCode.Decimal}, - {typeof(double), TypeCode.Double }, - {typeof(short), TypeCode.Int16 }, - {typeof(int), TypeCode.Int32 }, - {typeof(long), TypeCode.Int64 }, - {typeof(object), TypeCode.Object}, - {typeof(sbyte), TypeCode.SByte }, - {typeof(float), TypeCode.Single }, - {typeof(string), TypeCode.String }, - {typeof(ushort), TypeCode.UInt16 }, - {typeof(uint), TypeCode.UInt32 }, - {typeof(ulong), TypeCode.UInt64 }, - }; -#else - public static TypeCode GetTypeCode(Type type) - { - return Type.GetTypeCode(type); - } -#endif - public static MethodInfo GetPublicInstanceMethod(this Type type, string name, Type[] types) - { -#if DNXCORE50 - var method = type.GetMethod(name, types); - return (method != null && method.IsPublic && !method.IsStatic) ? method : null; -#else - return type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public, null, types, null); -#endif - } - - - } -} diff --git a/Dapper NET45 SNK/Dapper NET45 SNK.csproj b/Dapper NET45 SNK/Dapper NET45 SNK.csproj deleted file mode 100644 index cfb8c69e2..000000000 --- a/Dapper NET45 SNK/Dapper NET45 SNK.csproj +++ /dev/null @@ -1,70 +0,0 @@ - - - - - Debug - AnyCPU - {7140725C-8898-4F58-B566-628A80DB4EFA} - Library - Properties - Dapper - Dapper - v4.5 - 512 - - - true - full - false - bin\Debug\ - TRACE;DEBUG;ASYNC - prompt - 4 - true - bin\Debug\Dapper.xml - false - - - pdbonly - true - bin\Release\ - TRACE;ASYNC - prompt - 4 - bin\Release\Dapper.xml - true - false - - - true - - - ..\Dapper.snk - - - - - - - - - - - AssemblyInfo.cs - - - SqlMapper.cs - - - SqlMapperAsync.cs - - - - - \ No newline at end of file diff --git a/Dapper NET45/Dapper NET45.csproj b/Dapper NET45/Dapper NET45.csproj deleted file mode 100644 index b11a73518..000000000 --- a/Dapper NET45/Dapper NET45.csproj +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Debug - AnyCPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507} - Library - Properties - Dapper - Dapper - v4.5 - 512 - - - true - full - false - bin\Debug\ - TRACE;DEBUG;ASYNC - prompt - 4 - true - bin\Debug\Dapper.xml - false - - - pdbonly - true - bin\Release\ - TRACE;ASYNC - prompt - 4 - bin\Release\Dapper.xml - true - false - - - - - - - - - - - AssemblyInfo.cs - - - SqlMapper.cs - - - - - - \ No newline at end of file diff --git a/Dapper NET45/Properties/AssemblyInfo.cs b/Dapper NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index fe789b3aa..000000000 --- a/Dapper NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -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("Dapper NET45")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper NET45")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[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("ec9ad659-1358-4d01-be77-ce45cd40b2f8")] - -// 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/Dapper NET45/SqlMapperAsync.cs b/Dapper NET45/SqlMapperAsync.cs deleted file mode 100644 index 6b85e3bea..000000000 --- a/Dapper NET45/SqlMapperAsync.cs +++ /dev/null @@ -1,846 +0,0 @@ -#if ASYNC -using System; -using System.Collections; -using System.Collections.Generic; -using System.Data; -using System.Data.Common; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -#if DNXCORE50 -using IDbDataParameter = global::System.Data.Common.DbParameter; -using IDataParameter = global::System.Data.Common.DbParameter; -using IDbTransaction = global::System.Data.Common.DbTransaction; -using IDbConnection = global::System.Data.Common.DbConnection; -using IDbCommand = global::System.Data.Common.DbCommand; -using IDataReader = global::System.Data.Common.DbDataReader; -using IDataRecord = global::System.Data.Common.DbDataReader; -using IDataParameterCollection = global::System.Data.Common.DbParameterCollection; -using DataException = global::System.InvalidOperationException; -using ApplicationException = global::System.InvalidOperationException; -#endif - -namespace Dapper -{ - - - public static partial class SqlMapper - { - - /// - /// 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> - public static async Task> QueryAsync(this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - return await QueryAsync(cnn, typeof(DapperRow), new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))).ConfigureAwait(false); - } - - /// - /// 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> - public static async Task> QueryAsync(this IDbConnection cnn, CommandDefinition command) - { - return await QueryAsync(cnn, typeof(DapperRow), command).ConfigureAwait(false); - } - - /// - /// Execute a query asynchronously using .NET 4.5 Task. - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - return QueryAsync(cnn, typeof(T), new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); - } - - /// - /// Execute a query asynchronously using .NET 4.5 Task. - /// - public static Task> QueryAsync(this IDbConnection cnn, Type type, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - if (type == null) throw new ArgumentNullException("type"); - return QueryAsync(cnn, type, new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); - } - - /// - /// Execute a query asynchronously using .NET 4.5 Task. - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command) - { - return QueryAsync(cnn, typeof(T), command); - } - - /// - /// Execute a query asynchronously using .NET 4.5 Task. - /// - public static Task> QueryAsync(this IDbConnection cnn, Type type, CommandDefinition command) - { - return QueryAsync(cnn, type, command); - } - - private static async Task> QueryAsync(this IDbConnection cnn, Type effectiveType, CommandDefinition command) - { - object param = command.Parameters; - var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param == null ? null : param.GetType(), null); - var info = GetCacheInfo(identity, param, command.AddToCache); - bool wasClosed = cnn.State == ConnectionState.Closed; - var cancel = command.CancellationToken; - using (var cmd = (DbCommand)command.SetupCommand(cnn, info.ParamReader)) - { - DbDataReader reader = null; - try - { - if (wasClosed) await ((DbConnection)cnn).OpenAsync(cancel).ConfigureAwait(false); - reader = await cmd.ExecuteReaderAsync(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess, cancel).ConfigureAwait(false); - - var tuple = info.Deserializer; - int hash = GetColumnHash(reader); - if (tuple.Func == null || tuple.Hash != hash) - { - tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); - if (command.AddToCache) SetQueryCache(identity, info); - } - - var func = tuple.Func; - - if (command.Buffered) - { - List buffer = new List(); - while (await reader.ReadAsync(cancel).ConfigureAwait(false)) - { - buffer.Add((T)func(reader)); - } - while (await reader.NextResultAsync().ConfigureAwait(false)) { } - command.OnCompleted(); - return buffer; - } - else - { - // can't use ReadAsync / cancellation; but this will have to do - wasClosed = false; // don't close if handing back an open reader; rely on the command-behavior - var deferred = ExecuteReaderSync(reader, func, command.Parameters); - reader = null; // to prevent it being disposed before the caller gets to see it - return deferred; - } - - } - finally - { - using (reader) { } // dispose if non-null - if (wasClosed) cnn.Close(); - - } - } - } - - /// - /// Execute a command asynchronously using .NET 4.5 Task. - /// - public static Task ExecuteAsync(this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - return ExecuteAsync(cnn, new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); - } - - /// - /// Execute a command asynchronously using .NET 4.5 Task. - /// - public static Task ExecuteAsync(this IDbConnection cnn, CommandDefinition command) - { - object param = command.Parameters; - IEnumerable multiExec = GetMultiExec(param); - if (multiExec != null) - { - return ExecuteMultiImplAsync(cnn, command, multiExec); - } - else - { - return ExecuteImplAsync(cnn, command, param); - } - } - - private struct AsyncExecState - { - public readonly DbCommand Command; - public readonly Task Task; - public AsyncExecState(DbCommand command, Task task) - { - this.Command = command; - this.Task = task; - } - } - private static async Task ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) - { - bool isFirst = true; - int total = 0; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - - CacheInfo info = null; - string masterSql = null; - if ((command.Flags & CommandFlags.Pipelined) != 0) - { - const int MAX_PENDING = 100; - var pending = new Queue(MAX_PENDING); - DbCommand cmd = null; - try - { - foreach (var obj in multiExec) - { - if (isFirst) - { - isFirst = false; - cmd = (DbCommand)command.SetupCommand(cnn, null); - masterSql = cmd.CommandText; - var identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); - info = GetCacheInfo(identity, obj, command.AddToCache); - } else if(pending.Count >= MAX_PENDING) - { - var recycled = pending.Dequeue(); - total += await recycled.Task.ConfigureAwait(false); - cmd = recycled.Command; - cmd.CommandText = masterSql; // because we do magic replaces on "in" etc - cmd.Parameters.Clear(); // current code is Add-tastic - } - else - { - cmd = (DbCommand)command.SetupCommand(cnn, null); - } - info.ParamReader(cmd, obj); - - var task = cmd.ExecuteNonQueryAsync(command.CancellationToken); - pending.Enqueue(new AsyncExecState(cmd, task)); - cmd = null; // note the using in the finally: this avoids a double-dispose - } - while (pending.Count != 0) - { - var pair = pending.Dequeue(); - using (pair.Command) { } // dispose commands - total += await pair.Task.ConfigureAwait(false); - } - } finally - { - // this only has interesting work to do if there are failures - using (cmd) { } // dispose commands - while (pending.Count != 0) - { // dispose tasks even in failure - using (pending.Dequeue().Command) { } // dispose commands - } - } - } - else - { - using (var cmd = (DbCommand)command.SetupCommand(cnn, null)) - { - foreach (var obj in multiExec) - { - if (isFirst) - { - masterSql = cmd.CommandText; - isFirst = false; - var identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); - info = GetCacheInfo(identity, obj, command.AddToCache); - } - else - { - cmd.CommandText = masterSql; // because we do magic replaces on "in" etc - cmd.Parameters.Clear(); // current code is Add-tastic - } - info.ParamReader(cmd, obj); - total += await cmd.ExecuteNonQueryAsync(command.CancellationToken).ConfigureAwait(false); - } - } - } - - command.OnCompleted(); - } - finally - { - if (wasClosed) cnn.Close(); - } - return total; - } - private static async Task ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, object param) - { - var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param == null ? null : param.GetType(), null); - var info = GetCacheInfo(identity, param, command.AddToCache); - bool wasClosed = cnn.State == ConnectionState.Closed; - using (var cmd = (DbCommand)command.SetupCommand(cnn, info.ParamReader)) - { - try - { - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - var result = await cmd.ExecuteNonQueryAsync(command.CancellationToken).ConfigureAwait(false); - command.OnCompleted(); - return result; - } - finally - { - if (wasClosed) cnn.Close(); - } - } - } - - /// - /// 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? - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// 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 - /// - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - /// - /// 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 - /// - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// Maps a query to objects - /// - /// - /// - /// - /// - /// - /// The field we should split and read the second object from (default: id) - /// The command to execute - /// - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - /// - /// Perform a multi mapping query with 4 input parameters - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// 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 - /// - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - /// - /// Perform a multi mapping query with 5 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// Perform a multi mapping query with 5 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - /// - /// Perform a multi mapping query with 6 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// Perform a multi mapping query with 6 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - /// - /// Perform a multi mapping query with 7 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - return MultiMapAsync(cnn, - new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); - } - - /// - /// Perform a multi mapping query with 7 input parameters - /// - public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") - { - return MultiMapAsync(cnn, command, map, splitOn); - } - - private static async Task> MultiMapAsync(this IDbConnection cnn, CommandDefinition command, Delegate map, string splitOn) - { - object param = command.Parameters; - var identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(TFirst), param == null ? null : param.GetType(), new[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }); - var info = GetCacheInfo(identity, param, command.AddToCache); - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - using (var cmd = (DbCommand)command.SetupCommand(cnn, info.ParamReader)) - using (var reader = await cmd.ExecuteReaderAsync(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess, command.CancellationToken).ConfigureAwait(false)) - { - if (!command.Buffered) wasClosed = false; // handing back open reader; rely on command-behavior - var results = MultiMapImpl(null, CommandDefinition.ForCallback(command.Parameters), map, splitOn, reader, identity, true); - return command.Buffered ? results.ToList() : results; - } - } finally - { - if (wasClosed) cnn.Close(); - } - } - - /// - /// 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? - /// - public static Task> QueryAsync(this IDbConnection cnn, string sql, Type[] types, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)); - return MultiMapAsync(cnn, command, types, map, splitOn); - } - - private static async Task> MultiMapAsync(this IDbConnection cnn, CommandDefinition command, Type[] types, Func map, string splitOn) - { - if (types.Length < 1) - { - throw new ArgumentException("you must provide at least one type to deserialize"); - } - - object param = command.Parameters; - var identity = new Identity(command.CommandText, command.CommandType, cnn, types[0], param == null ? null : param.GetType(), types); - var info = GetCacheInfo(identity, param, command.AddToCache); - bool wasClosed = cnn.State == ConnectionState.Closed; - try { - if (wasClosed) await ((DbConnection)cnn).OpenAsync().ConfigureAwait(false); - using (var cmd = (DbCommand)command.SetupCommand(cnn, info.ParamReader)) - using (var reader = await cmd.ExecuteReaderAsync(command.CancellationToken).ConfigureAwait(false)) { - var results = MultiMapImpl(null, default(CommandDefinition), types, map, splitOn, reader, identity, true); - return command.Buffered ? results.ToList() : results; - } - } - finally { - if (wasClosed) cnn.Close(); - } - } - - private static IEnumerable ExecuteReaderSync(IDataReader reader, Func func, object parameters) - { - using (reader) - { - while (reader.Read()) - { - yield return (T)func(reader); - } - while (reader.NextResult()) { } - if (parameters is SqlMapper.IParameterCallbacks) - ((SqlMapper.IParameterCallbacks)parameters).OnCompleted(); - } - } - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static Task QueryMultipleAsync( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else - this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return QueryMultipleAsync(cnn, command); - } - - partial class GridReader - { - CancellationToken cancel; - internal GridReader(IDbCommand command, IDataReader reader, Identity identity, DynamicParameters dynamicParams, bool addToCache, CancellationToken cancel) - : this(command, reader, identity, dynamicParams, addToCache) - { - this.cancel = cancel; - } - - /// - /// 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> - public Task> ReadAsync(bool buffered = true) - { - return ReadAsyncImpl(typeof(DapperRow), buffered); - } - - /// - /// Read the next grid of results - /// - public Task> ReadAsync(Type type, bool buffered = true) - { - if (type == null) throw new ArgumentNullException("type"); - return ReadAsyncImpl(type, buffered); - } - /// - /// Read the next grid of results - /// - public Task> ReadAsync(bool buffered = true) - { - return ReadAsyncImpl(typeof(T), buffered); - } - - private async Task NextResultAsync() - { - if (await ((DbDataReader)reader).NextResultAsync(cancel).ConfigureAwait(false)) - { - readCount++; - gridIndex++; - consumed = false; - } - else - { - // happy path; close the reader cleanly - no - // need for "Cancel" etc - reader.Dispose(); - reader = null; - if (callbacks != null) callbacks.OnCompleted(); - Dispose(); - } - } - - private Task> ReadAsyncImpl(Type type, bool buffered) - { - if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); - if (consumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); - var typedIdentity = identity.ForGrid(type, gridIndex); - CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); - var deserializer = cache.Deserializer; - - int hash = GetColumnHash(reader); - if (deserializer.Func == null || deserializer.Hash != hash) - { - deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); - cache.Deserializer = deserializer; - } - consumed = true; - if (buffered && this.reader is DbDataReader) - { - return ReadBufferedAsync(gridIndex, deserializer.Func, typedIdentity); - } - else - { - var result = ReadDeferred(gridIndex, deserializer.Func, typedIdentity); - if (buffered) result = result.ToList(); // for the "not a DbDataReader" scenario - return Task.FromResult(result); - } - } - - private async Task> ReadBufferedAsync(int index, Func deserializer, Identity typedIdentity) - { - //try - //{ - var reader = (DbDataReader)this.reader; - List buffer = new List(); - while (index == gridIndex && await reader.ReadAsync(cancel).ConfigureAwait(false)) - { - buffer.Add((T)deserializer(reader)); - } - if (index == gridIndex) // need to do this outside of the finally pre-C#6 - { - await NextResultAsync().ConfigureAwait(false); - } - return buffer; - //} - //finally // finally so that First etc progresses things even when multiple rows - //{ - // if (index == gridIndex) - // { - // await NextResultAsync().ConfigureAwait(false); - // } - //} - } - } - - /// - /// Execute a command that returns multiple result sets, and access each in turn - /// - public static async Task QueryMultipleAsync(this IDbConnection cnn, CommandDefinition command) - { - object param = command.Parameters; - Identity identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(GridReader), param == null ? null : param.GetType(), null); - CacheInfo info = GetCacheInfo(identity, param, command.AddToCache); - - DbCommand cmd = null; - IDataReader reader = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - cmd = (DbCommand)command.SetupCommand(cnn, info.ParamReader); - reader = await cmd.ExecuteReaderAsync(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess, command.CancellationToken).ConfigureAwait(false); - - var result = new GridReader(cmd, reader, identity, command.Parameters as DynamicParameters, command.AddToCache, command.CancellationToken); - wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader - // with the CloseConnection flag, so the reader will deal with the connection; we - // still need something in the "finally" to ensure that broken SQL still results - // in the connection closing itself - return result; - } - catch - { - if (reader != null) - { - if (!reader.IsClosed) - try - { cmd.Cancel(); } - catch - { /* don't spoil the existing exception */ } - reader.Dispose(); - } - if (cmd != null) cmd.Dispose(); - if (wasClosed) cnn.Close(); - throw; - } - } - - - /// - /// 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 . - /// - /// - /// - /// - /// - /// - public static Task ExecuteReaderAsync( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteReaderImplAsync(cnn, command); - } - - /// - /// 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 . - /// - public static Task ExecuteReaderAsync(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteReaderImplAsync(cnn, command); - } - - private static async Task ExecuteReaderImplAsync(IDbConnection cnn, CommandDefinition command) - { - Action paramReader = GetParameterReader(cnn, ref command); - - DbCommand cmd = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - try - { - cmd = (DbCommand)command.SetupCommand(cnn, paramReader); - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - var reader = await cmd.ExecuteReaderAsync(wasClosed ? CommandBehavior.CloseConnection | CommandBehavior.SequentialAccess : CommandBehavior.SequentialAccess, command.CancellationToken).ConfigureAwait(false); - wasClosed = false; - return reader; - } - finally - { - if (wasClosed) cnn.Close(); - if (cmd != null) cmd.Dispose(); - } - } - - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static Task ExecuteScalarAsync( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteScalarImplAsync(cnn, command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static Task ExecuteScalarAsync( -#if CSHARP30 -this IDbConnection cnn, string sql, object param, IDbTransaction transaction, int? commandTimeout, CommandType? commandType -#else -this IDbConnection cnn, string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null -#endif -) - { - var command = new CommandDefinition(sql, (object)param, transaction, commandTimeout, commandType, CommandFlags.Buffered); - return ExecuteScalarImplAsync(cnn, command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static Task ExecuteScalarAsync(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteScalarImplAsync(cnn, command); - } - - /// - /// Execute parameterized SQL that selects a single value - /// - /// The first cell selected - public static Task ExecuteScalarAsync(this IDbConnection cnn, CommandDefinition command) - { - return ExecuteScalarImplAsync(cnn, command); - } - private async static Task ExecuteScalarImplAsync(IDbConnection cnn, CommandDefinition command) - { - Action paramReader = null; - object param = command.Parameters; - if (param != null) - { - var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); - paramReader = GetCacheInfo(identity, command.Parameters, command.AddToCache).ParamReader; - } - - DbCommand cmd = null; - bool wasClosed = cnn.State == ConnectionState.Closed; - object result; - try - { - cmd = (DbCommand)command.SetupCommand(cnn, paramReader); - if (wasClosed) await ((DbConnection)cnn).OpenAsync(command.CancellationToken).ConfigureAwait(false); - result = await cmd.ExecuteScalarAsync(command.CancellationToken).ConfigureAwait(false); - command.OnCompleted(); - } - finally - { - if (wasClosed) cnn.Close(); - if (cmd != null) cmd.Dispose(); - } - return Parse(result); - } - } -} -#endif \ No newline at end of file diff --git a/Dapper.Contrib NET45/Dapper.Contrib NET45.csproj b/Dapper.Contrib NET45/Dapper.Contrib NET45.csproj deleted file mode 100644 index d6ceb2e54..000000000 --- a/Dapper.Contrib NET45/Dapper.Contrib NET45.csproj +++ /dev/null @@ -1,69 +0,0 @@ - - - - - Debug - AnyCPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103} - Library - Properties - Dapper.Contrib - Dapper.Contrib - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.Contrib.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.Contrib.XML - - - - - - - - - - - - - AssemblyInfo.cs - - - SqlMapperExtensions.cs - - - - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - - - \ No newline at end of file diff --git a/Dapper.Contrib NET45/SqlMapperExtensions.cs b/Dapper.Contrib NET45/SqlMapperExtensions.cs deleted file mode 100644 index 01f4ddea1..000000000 --- a/Dapper.Contrib NET45/SqlMapperExtensions.cs +++ /dev/null @@ -1,853 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Diagnostics; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Collections.Concurrent; -using System.Reflection.Emit; -using System.Threading; -using System.Threading.Tasks; -using System.Runtime.CompilerServices; -using Dapper; - -#pragma warning disable 1573, 1591 // xml comments - -namespace Dapper.Contrib.Extensions -{ - - public static class SqlMapperExtensions - { - public interface IProxy - { - bool IsDirty { get; set; } - } - - private static readonly ConcurrentDictionary> KeyProperties = new ConcurrentDictionary>(); - private static readonly ConcurrentDictionary> TypeProperties = new ConcurrentDictionary>(); - private static readonly ConcurrentDictionary> ComputedProperties = new ConcurrentDictionary>(); - private static readonly ConcurrentDictionary GetQueries = new ConcurrentDictionary(); - private static readonly ConcurrentDictionary TypeTableName = new ConcurrentDictionary(); - - private static readonly Dictionary AdapterDictionary = new Dictionary() { - {"sqlconnection", new SqlServerAdapter()}, - {"npgsqlconnection", new PostgresAdapter()}, - {"sqliteconnection", new SQLiteAdapter()} - }; - private static IEnumerable ComputedPropertiesCache(Type type) - { - IEnumerable pi; - if (ComputedProperties.TryGetValue(type.TypeHandle, out pi)) - { - return pi; - } - - var computedProperties = TypePropertiesCache(type).Where(p => p.GetCustomAttributes(true).Any(a => a is ComputedAttribute)).ToList(); - - ComputedProperties[type.TypeHandle] = computedProperties; - return computedProperties; - } - private static IEnumerable KeyPropertiesCache(Type type) - { - - IEnumerable pi; - if (KeyProperties.TryGetValue(type.TypeHandle,out pi)) - { - return pi; - } - - var allProperties = TypePropertiesCache(type); - var keyProperties = allProperties.Where(p => p.GetCustomAttributes(true).Any(a => a is KeyAttribute)).ToList(); - - if (keyProperties.Count == 0) - { - var idProp = allProperties.Where(p => p.Name.ToLower() == "id").FirstOrDefault(); - if (idProp != null) - { - keyProperties.Add(idProp); - } - } - - KeyProperties[type.TypeHandle] = keyProperties; - return keyProperties; - } - private static IEnumerable TypePropertiesCache(Type type) - { - IEnumerable pis; - if (TypeProperties.TryGetValue(type.TypeHandle, out pis)) - { - return pis; - } - - var properties = type.GetProperties().Where(IsWriteable).ToArray(); - TypeProperties[type.TypeHandle] = properties; - return properties; - } - - public static bool IsWriteable(PropertyInfo pi) - { - object[] attributes = pi.GetCustomAttributes(typeof (WriteAttribute), false); - if (attributes.Length == 1) - { - WriteAttribute write = (WriteAttribute) attributes[0]; - return write.Write; - } - return true; - } - - /// - /// Returns a single entity by a single id from table "Ts". T must be of interface type. - /// Id must be marked with [Key] attribute. - /// Created entity is tracked/intercepted for changes and used by the Update() extension. - /// - /// Interface type to create and populate - /// Open SqlConnection - /// Id of the entity to get, must be marked with [Key] attribute - /// Entity of T - public static T Get(this IDbConnection connection, dynamic id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - string sql; - if (!GetQueries.TryGetValue(type.TypeHandle, out sql)) - { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (keys.Count() == 0) - throw new DataException("Get only supports en entity with a [Key] property"); - - var onlyKey = keys.First(); - - var name = GetTableName(type); - - // TODO: pluralizer - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface - sql = "select * from " + name + " where " + onlyKey.Name + " = @id"; - GetQueries[type.TypeHandle] = sql; - } - - var dynParms = new DynamicParameters(); - dynParms.Add("@id", id); - - T obj = null; - - if (type.IsInterface) - { - var res = connection.Query(sql, dynParms).FirstOrDefault() as IDictionary; - - if (res == null) - return (T)((object)null); - - obj = ProxyGenerator.GetInterfaceProxy(); - - foreach (var property in TypePropertiesCache(type)) - { - var val = res[property.Name]; - property.SetValue(obj, val, null); - } - - ((IProxy)obj).IsDirty = false; //reset change tracking and return - } - else - { - obj = connection.Query(sql, dynParms, transaction: transaction, commandTimeout: commandTimeout).FirstOrDefault(); - } - return obj; - } - - /// - /// Returns a single entity by a single id from table "Ts" asynchronously using .NET 4.5 Task. T must be of interface type. - /// Id must be marked with [Key] attribute. - /// Created entity is tracked/intercepted for changes and used by the Update() extension. - /// - /// Interface type to create and populate - /// Open SqlConnection - /// Id of the entity to get, must be marked with [Key] attribute - /// Entity of T - public static async Task GetAsync(this IDbConnection connection, dynamic id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - string sql; - if (!GetQueries.TryGetValue(type.TypeHandle, out sql)) - { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (keys.Count() == 0) - throw new DataException("Get only supports en entity with a [Key] property"); - - var onlyKey = keys.First(); - - var name = GetTableName(type); - - // TODO: pluralizer - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface - sql = "select * from " + name + " where " + onlyKey.Name + " = @id"; - GetQueries[type.TypeHandle] = sql; - } - - var dynParms = new DynamicParameters(); - dynParms.Add("@id", id); - - T obj = null; - - if (type.IsInterface) - { - var res = (await connection.QueryAsync(sql, dynParms).ConfigureAwait(false)).FirstOrDefault() as IDictionary; - - if (res == null) - return (T)((object)null); - - obj = ProxyGenerator.GetInterfaceProxy(); - - foreach (var property in TypePropertiesCache(type)) - { - var val = res[property.Name]; - property.SetValue(obj, val, null); - } - - ((IProxy)obj).IsDirty = false; //reset change tracking and return - } - else - { - obj = (await connection.QueryAsync(sql, dynParms, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false)).FirstOrDefault(); - } - return obj; - } - - private static string GetTableName(Type type) - { - string name; - if (!TypeTableName.TryGetValue(type.TypeHandle, out name)) - { - name = type.Name + "s"; - if (type.IsInterface && name.StartsWith("I")) - name = name.Substring(1); - - //NOTE: This as dynamic trick should be able to handle both our own Table-attribute as well as the one in EntityFramework - var tableattr = type.GetCustomAttributes(false).Where(attr => attr.GetType().Name == "TableAttribute").SingleOrDefault() as - dynamic; - if (tableattr != null) - name = tableattr.Name; - TypeTableName[type.TypeHandle] = name; - } - return name; - } - - /// - /// Inserts an entity into table "Ts" and returns identity id. - /// - /// Open SqlConnection - /// Entity to insert - /// Identity of inserted entity - public static long Insert(this IDbConnection connection, T entityToInsert, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - - var type = typeof(T); - - var name = GetTableName(type); - - var sbColumnList = new StringBuilder(null); - - var allProperties = TypePropertiesCache(type); - var keyProperties = KeyPropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var allPropertiesExceptKeyAndComputed = allProperties.Except(keyProperties.Union(computedProperties)); - - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbColumnList.AppendFormat("[{0}]", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbColumnList.Append(", "); - } - - var sbParameterList = new StringBuilder(null); - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbParameterList.AppendFormat("@{0}", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbParameterList.Append(", "); - } - ISqlAdapter adapter = GetFormatter(connection); - int id = adapter.Insert(connection, transaction, commandTimeout, name, sbColumnList.ToString(), sbParameterList.ToString(), keyProperties, entityToInsert); - return id; - } - - /// - /// Inserts an entity into table "Ts" asynchronously using .NET 4.5 Task and returns identity id. - /// - /// Open SqlConnection - /// Entity to insert - /// Identity of inserted entity - public static Task InsertAsync(this IDbConnection connection, T entityToInsert, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - - var type = typeof(T); - - var name = GetTableName(type); - - var sbColumnList = new StringBuilder(null); - - var allProperties = TypePropertiesCache(type); - var keyProperties = KeyPropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var allPropertiesExceptKeyAndComputed = allProperties.Except(keyProperties.Union(computedProperties)); - - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbColumnList.AppendFormat("[{0}]", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbColumnList.Append(", "); - } - - var sbParameterList = new StringBuilder(null); - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbParameterList.AppendFormat("@{0}", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbParameterList.Append(", "); - } - ISqlAdapter adapter = GetFormatter(connection); - return adapter.InsertAsync(connection, transaction, commandTimeout, name, sbColumnList.ToString(), sbParameterList.ToString(), keyProperties, entityToInsert); - } - - /// - /// Updates entity in table "Ts", checks if the entity is modified if the entity is tracked by the Get() extension. - /// - /// Type to be updated - /// Open SqlConnection - /// Entity to be updated - /// true if updated, false if not found or not modified (tracked entities) - public static bool Update(this IDbConnection connection, T entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var proxy = entityToUpdate as IProxy; - if (proxy != null) - { - if (!proxy.IsDirty) return false; - } - - var type = typeof(T); - - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("update {0} set ", name); - - var allProperties = TypePropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var nonIdProps = allProperties.Except(keyProperties.Union(computedProperties)); - - for (var i = 0; i < nonIdProps.Count(); i++) - { - var property = nonIdProps.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < nonIdProps.Count() - 1) - sb.AppendFormat(", "); - } - sb.Append(" where "); - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var updated = connection.Execute(sb.ToString(), entityToUpdate, commandTimeout: commandTimeout, transaction: transaction); - return updated > 0; - } - - /// - /// Updates entity in table "Ts" asynchronously using .NET 4.5 Task, checks if the entity is modified if the entity is tracked by the Get() extension. - /// - /// Type to be updated - /// Open SqlConnection - /// Entity to be updated - /// true if updated, false if not found or not modified (tracked entities) - public static async Task UpdateAsync(this IDbConnection connection, T entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var proxy = entityToUpdate as IProxy; - if (proxy != null) - { - if (!proxy.IsDirty) return false; - } - - var type = typeof(T); - - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("update {0} set ", name); - - var allProperties = TypePropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var nonIdProps = allProperties.Except(keyProperties.Union(computedProperties)); - - for (var i = 0; i < nonIdProps.Count(); i++) - { - var property = nonIdProps.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < nonIdProps.Count() - 1) - sb.AppendFormat(", "); - } - sb.Append(" where "); - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var updated = await connection.ExecuteAsync(sb.ToString(), entityToUpdate, commandTimeout: commandTimeout, transaction: transaction).ConfigureAwait(false); - return updated > 0; - } - - /// - /// Delete entity in table "Ts". - /// - /// Type of entity - /// Open SqlConnection - /// Entity to delete - /// true if deleted, false if not found - public static bool Delete(this IDbConnection connection, T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - if (entityToDelete == null) - throw new ArgumentException("Cannot Delete null Object", "entityToDelete"); - - var type = typeof(T); - - var keyProperties = KeyPropertiesCache(type); - if (keyProperties.Count() == 0) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("delete from {0} where ", name); - - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var deleted = connection.Execute(sb.ToString(), entityToDelete, transaction: transaction, commandTimeout: commandTimeout); - return deleted > 0; - } - - /// - /// Delete entity in table "Ts" asynchronously using .NET 4.5 Task. - /// - /// Type of entity - /// Open SqlConnection - /// Entity to delete - /// true if deleted, false if not found - public static async Task DeleteAsync(this IDbConnection connection, T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - if (entityToDelete == null) - throw new ArgumentException("Cannot Delete null Object", "entityToDelete"); - - var type = typeof(T); - - var keyProperties = KeyPropertiesCache(type); - if (keyProperties.Count() == 0) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("delete from {0} where ", name); - - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var deleted = await connection.ExecuteAsync(sb.ToString(), entityToDelete, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - return deleted > 0; - } - - - /// - /// Delete all entities in the table related to the type T. - /// - /// Type of entity - /// Open SqlConnection - /// true if deleted, false if none found - public static bool DeleteAll(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - var name = GetTableName(type); - var statement = String.Format("delete from {0}", name); - var deleted = connection.Execute(statement, null, transaction: transaction, commandTimeout: commandTimeout); - return deleted > 0; - } - - /// - /// Delete all entities in the table related to the type T asynchronously using .NET 4.5 Task. - /// - /// Type of entity - /// Open SqlConnection - /// true if deleted, false if none found - public static async Task DeleteAllAsync(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - var name = GetTableName(type); - var statement = String.Format("delete from {0}", name); - var deleted = await connection.ExecuteAsync(statement, null, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - return deleted > 0; - } - - - public static ISqlAdapter GetFormatter(IDbConnection connection) - { - string name = connection.GetType().Name.ToLower(); - if (!AdapterDictionary.ContainsKey(name)) - return new SqlServerAdapter(); - return AdapterDictionary[name]; - } - - class ProxyGenerator - { - private static readonly Dictionary TypeCache = new Dictionary(); - - private static AssemblyBuilder GetAsmBuilder(string name) - { - var assemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(new AssemblyName { Name = name }, - AssemblyBuilderAccess.Run); //NOTE: to save, use RunAndSave - - return assemblyBuilder; - } - - public static T GetClassProxy() - { - // A class proxy could be implemented if all properties are virtual - // otherwise there is a pretty dangerous case where internal actions will not update dirty tracking - throw new NotImplementedException(); - } - - - public static T GetInterfaceProxy() - { - Type typeOfT = typeof(T); - - object k; - if (TypeCache.TryGetValue(typeOfT, out k)) - { - return (T)k; - } - var assemblyBuilder = GetAsmBuilder(typeOfT.Name); - - var moduleBuilder = assemblyBuilder.DefineDynamicModule("SqlMapperExtensions." + typeOfT.Name); //NOTE: to save, add "asdasd.dll" parameter - - var interfaceType = typeof(Dapper.Contrib.Extensions.SqlMapperExtensions.IProxy); - var typeBuilder = moduleBuilder.DefineType(typeOfT.Name + "_" + Guid.NewGuid(), - TypeAttributes.Public | TypeAttributes.Class); - typeBuilder.AddInterfaceImplementation(typeOfT); - typeBuilder.AddInterfaceImplementation(interfaceType); - - //create our _isDirty field, which implements IProxy - var setIsDirtyMethod = CreateIsDirtyProperty(typeBuilder); - - // Generate a field for each property, which implements the T - foreach (var property in typeof(T).GetProperties()) - { - var isId = property.GetCustomAttributes(true).Any(a => a is KeyAttribute); - CreateProperty(typeBuilder, property.Name, property.PropertyType, setIsDirtyMethod, isId); - } - - var generatedType = typeBuilder.CreateType(); - - //assemblyBuilder.Save(name + ".dll"); //NOTE: to save, uncomment - - var generatedObject = Activator.CreateInstance(generatedType); - - TypeCache.Add(typeOfT, generatedObject); - return (T)generatedObject; - } - - - private static MethodInfo CreateIsDirtyProperty(TypeBuilder typeBuilder) - { - var propType = typeof(bool); - var field = typeBuilder.DefineField("_" + "IsDirty", propType, FieldAttributes.Private); - var property = typeBuilder.DefineProperty("IsDirty", - System.Reflection.PropertyAttributes.None, - propType, - new Type[] { propType }); - - const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.NewSlot | MethodAttributes.SpecialName | - MethodAttributes.Final | MethodAttributes.Virtual | MethodAttributes.HideBySig; - - // Define the "get" and "set" accessor methods - var currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + "IsDirty", - getSetAttr, - propType, - Type.EmptyTypes); - var currGetIL = currGetPropMthdBldr.GetILGenerator(); - currGetIL.Emit(OpCodes.Ldarg_0); - currGetIL.Emit(OpCodes.Ldfld, field); - currGetIL.Emit(OpCodes.Ret); - var currSetPropMthdBldr = typeBuilder.DefineMethod("set_" + "IsDirty", - getSetAttr, - null, - new Type[] { propType }); - var currSetIL = currSetPropMthdBldr.GetILGenerator(); - currSetIL.Emit(OpCodes.Ldarg_0); - currSetIL.Emit(OpCodes.Ldarg_1); - currSetIL.Emit(OpCodes.Stfld, field); - currSetIL.Emit(OpCodes.Ret); - - property.SetGetMethod(currGetPropMthdBldr); - property.SetSetMethod(currSetPropMthdBldr); - var getMethod = typeof(Dapper.Contrib.Extensions.SqlMapperExtensions.IProxy).GetMethod("get_" + "IsDirty"); - var setMethod = typeof(Dapper.Contrib.Extensions.SqlMapperExtensions.IProxy).GetMethod("set_" + "IsDirty"); - typeBuilder.DefineMethodOverride(currGetPropMthdBldr, getMethod); - typeBuilder.DefineMethodOverride(currSetPropMthdBldr, setMethod); - - return currSetPropMthdBldr; - } - - private static void CreateProperty(TypeBuilder typeBuilder, string propertyName, Type propType, MethodInfo setIsDirtyMethod, bool isIdentity) - { - //Define the field and the property - var field = typeBuilder.DefineField("_" + propertyName, propType, FieldAttributes.Private); - var property = typeBuilder.DefineProperty(propertyName, - System.Reflection.PropertyAttributes.None, - propType, - new Type[] { propType }); - - const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.Virtual | - MethodAttributes.HideBySig; - - // Define the "get" and "set" accessor methods - var currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + propertyName, - getSetAttr, - propType, - Type.EmptyTypes); - - var currGetIL = currGetPropMthdBldr.GetILGenerator(); - currGetIL.Emit(OpCodes.Ldarg_0); - currGetIL.Emit(OpCodes.Ldfld, field); - currGetIL.Emit(OpCodes.Ret); - - var currSetPropMthdBldr = typeBuilder.DefineMethod("set_" + propertyName, - getSetAttr, - null, - new Type[] { propType }); - - //store value in private field and set the isdirty flag - var currSetIL = currSetPropMthdBldr.GetILGenerator(); - currSetIL.Emit(OpCodes.Ldarg_0); - currSetIL.Emit(OpCodes.Ldarg_1); - currSetIL.Emit(OpCodes.Stfld, field); - currSetIL.Emit(OpCodes.Ldarg_0); - currSetIL.Emit(OpCodes.Ldc_I4_1); - currSetIL.Emit(OpCodes.Call, setIsDirtyMethod); - currSetIL.Emit(OpCodes.Ret); - - //TODO: Should copy all attributes defined by the interface? - if (isIdentity) - { - var keyAttribute = typeof(KeyAttribute); - var myConstructorInfo = keyAttribute.GetConstructor(new Type[] { }); - var attributeBuilder = new CustomAttributeBuilder(myConstructorInfo, new object[] { }); - property.SetCustomAttribute(attributeBuilder); - } - - property.SetGetMethod(currGetPropMthdBldr); - property.SetSetMethod(currSetPropMthdBldr); - var getMethod = typeof(T).GetMethod("get_" + propertyName); - var setMethod = typeof(T).GetMethod("set_" + propertyName); - typeBuilder.DefineMethodOverride(currGetPropMthdBldr, getMethod); - typeBuilder.DefineMethodOverride(currSetPropMthdBldr, setMethod); - } - - } - } - - [AttributeUsage(AttributeTargets.Class)] - public class TableAttribute : Attribute - { - public TableAttribute(string tableName) - { - Name = tableName; - } - public string Name { get; private set; } - } - - // do not want to depend on data annotations that is not in client profile - [AttributeUsage(AttributeTargets.Property)] - public class KeyAttribute : Attribute - { - } - - [AttributeUsage(AttributeTargets.Property)] - public class WriteAttribute : Attribute - { - public WriteAttribute(bool write) - { - Write = write; - } - public bool Write { get; private set; } - } - - [AttributeUsage(AttributeTargets.Property)] - public class ComputedAttribute : Attribute - { - } -} - -public interface ISqlAdapter -{ - int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); - Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); -} - -public class SqlServerAdapter : ISqlAdapter -{ - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - string cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - connection.Execute(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout); - - //NOTE: would prefer to use IDENT_CURRENT('tablename') or IDENT_SCOPE but these are not available on SQLCE - var r = connection.Query("select @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout); - int id = (int)r.First().id; - if (keyProperties.Any()) - keyProperties.First().SetValue(entityToInsert, id, null); - return id; - } - - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - string cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - await connection.ExecuteAsync(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - - //NOTE: would prefer to use IDENT_CURRENT('tablename') or IDENT_SCOPE but these are not available on SQLCE - var r = await connection.QueryAsync("select @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - int id = (int)r.First().id; - if (keyProperties.Any()) - keyProperties.First().SetValue(entityToInsert, id, null); - return id; - } -} - -public class PostgresAdapter : ISqlAdapter -{ - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - // If no primary key then safe to assume a join table with not too much data to return - if (!keyProperties.Any()) - sb.Append(" RETURNING *"); - else - { - sb.Append(" RETURNING "); - bool first = true; - foreach (var property in keyProperties) - { - if (!first) - sb.Append(", "); - first = false; - sb.Append(property.Name); - } - } - - var results = connection.Query(sb.ToString(), entityToInsert, transaction: transaction, commandTimeout: commandTimeout); - - // Return the key by assinging the corresponding property in the object - by product is that it supports compound primary keys - int id = 0; - foreach (var p in keyProperties) - { - var value = ((IDictionary)results.First())[p.Name.ToLower()]; - p.SetValue(entityToInsert, value, null); - if (id == 0) - id = Convert.ToInt32(value); - } - return id; - } - - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - // If no primary key then safe to assume a join table with not too much data to return - if (!keyProperties.Any()) - sb.Append(" RETURNING *"); - else - { - sb.Append(" RETURNING "); - bool first = true; - foreach (var property in keyProperties) - { - if (!first) - sb.Append(", "); - first = false; - sb.Append(property.Name); - } - } - - var results = await connection.QueryAsync(sb.ToString(), entityToInsert, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - - // Return the key by assinging the corresponding property in the object - by product is that it supports compound primary keys - int id = 0; - foreach (var p in keyProperties) - { - var value = ((IDictionary)results.First())[p.Name.ToLower()]; - p.SetValue(entityToInsert, value, null); - if (id == 0) - id = Convert.ToInt32(value); - } - return id; - } -} - -public class SQLiteAdapter : ISqlAdapter -{ - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - string cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - connection.Execute(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout); - - var r = connection.Query("select last_insert_rowid() id", transaction: transaction, commandTimeout: commandTimeout); - int id = (int)r.First().id; - if (keyProperties.Any()) - keyProperties.First().SetValue(entityToInsert, id, null); - return id; - } - - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - string cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - await connection.ExecuteAsync(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - - var r = await connection.QueryAsync("select last_insert_rowid() id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - int id = (int)r.First().id; - if (keyProperties.Any()) - keyProperties.First().SetValue(entityToInsert, id, null); - return id; - } -} diff --git a/Dapper.Contrib NET45/SqlMapperExtensionsAsync.cs b/Dapper.Contrib NET45/SqlMapperExtensionsAsync.cs deleted file mode 100644 index 52ecef776..000000000 --- a/Dapper.Contrib NET45/SqlMapperExtensionsAsync.cs +++ /dev/null @@ -1,397 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; - -using Dapper; - -#pragma warning disable 1573, 1591 // xml comments - -namespace Dapper.Contrib.Extensions -{ - - public static partial class SqlMapperExtensions - { - - /// - /// Returns a single entity by a single id from table "Ts" asynchronously using .NET 4.5 Task. T must be of interface type. - /// Id must be marked with [Key] attribute. - /// Created entity is tracked/intercepted for changes and used by the Update() extension. - /// - /// Interface type to create and populate - /// Open SqlConnection - /// Id of the entity to get, must be marked with [Key] attribute - /// Entity of T - public static async Task GetAsync(this IDbConnection connection, dynamic id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - string sql; - if (!GetQueries.TryGetValue(type.TypeHandle, out sql)) - { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (!keys.Any()) - throw new DataException("Get only supports en entity with a [Key] property"); - - var onlyKey = keys.First(); - - var name = GetTableName(type); - - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface - sql = "select * from " + name + " where " + onlyKey.Name + " = @id"; - GetQueries[type.TypeHandle] = sql; - } - - var dynParms = new DynamicParameters(); - dynParms.Add("@id", id); - - - if (!type.IsInterface) - return (await connection.QueryAsync(sql, dynParms, transaction, commandTimeout).ConfigureAwait(false)).FirstOrDefault(); - - var res = (await connection.QueryAsync(sql, dynParms).ConfigureAwait(false)).FirstOrDefault() as IDictionary; - - if (res == null) - return null; - - var obj = ProxyGenerator.GetInterfaceProxy(); - - foreach (var property in TypePropertiesCache(type)) - { - var val = res[property.Name]; - property.SetValue(obj, val, null); - } - - ((IProxy)obj).IsDirty = false; //reset change tracking and return - - return obj; - } - - /// - /// Returns a list of entites from table "Ts". - /// Id of T must be marked with [Key] attribute. - /// Entities created from interfaces are tracked/intercepted for changes and used by the Update() extension - /// for optimal performance. - /// - /// Interface or type to create and populate - /// Open SqlConnection - /// Entity of T - public static async Task> GetAllAsync(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - var cacheType = typeof(List); - - string sql; - if (!GetQueries.TryGetValue(cacheType.TypeHandle, out sql)) - { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (!keys.Any()) - throw new DataException("Get only supports en entity with a [Key] property"); - - var name = GetTableName(type); - - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface - sql = "select * from " + name; - GetQueries[cacheType.TypeHandle] = sql; - } - - if (!type.IsInterface) - { - return await connection.QueryAsync(sql, null, transaction, commandTimeout: commandTimeout); - } - - var result = await connection.QueryAsync(sql); - var list = new List(); - foreach (IDictionary res in result) - { - var obj = ProxyGenerator.GetInterfaceProxy(); - foreach (var property in TypePropertiesCache(type)) - { - var val = res[property.Name]; - property.SetValue(obj, val, null); - } - ((IProxy)obj).IsDirty = false; //reset change tracking and return - list.Add(obj); - } - return list; - } - - - /// - /// Inserts an entity into table "Ts" asynchronously using .NET 4.5 Task and returns identity id. - /// - /// Open SqlConnection - /// Entity to insert - /// Identity of inserted entity - public static async Task InsertAsync(this IDbConnection connection, T entityToInsert, IDbTransaction transaction = null, - int? commandTimeout = null, ISqlAdapter sqlAdapter = null) where T : class - { - var isList = false; - - var type = typeof(T); - - if (type.IsArray || type.IsGenericType) - { - isList = true; - type = type.GetGenericArguments()[0]; - } - - var name = GetTableName(type); - var sbColumnList = new StringBuilder(null); - var allProperties = TypePropertiesCache(type); - var keyProperties = KeyPropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var allPropertiesExceptKeyAndComputed = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); - - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbColumnList.AppendFormat("[{0}]", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbColumnList.Append(", "); - } - - var sbParameterList = new StringBuilder(null); - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) - { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbParameterList.AppendFormat("@{0}", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) - sbParameterList.Append(", "); - } - - if (!isList) //single entity - { - if (sqlAdapter == null) - sqlAdapter = GetFormatter(connection); - return await sqlAdapter.InsertAsync(connection, transaction, commandTimeout, name, sbColumnList.ToString(), - sbParameterList.ToString(), keyProperties, entityToInsert); - } - - //insert list of entities - var cmd = String.Format("insert into {0} ({1}) values ({2})", name, sbColumnList, sbParameterList); - return await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout); - } - - /// - /// Updates entity in table "Ts" asynchronously using .NET 4.5 Task, checks if the entity is modified if the entity is tracked by the Get() extension. - /// - /// Type to be updated - /// Open SqlConnection - /// Entity to be updated - /// true if updated, false if not found or not modified (tracked entities) - public static async Task UpdateAsync(this IDbConnection connection, T entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var proxy = entityToUpdate as IProxy; - if (proxy != null) - { - if (!proxy.IsDirty) return false; - } - - var type = typeof(T); - - if (type.IsArray || type.IsGenericType) - type = type.GetGenericArguments()[0]; - - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("update {0} set ", name); - - var allProperties = TypePropertiesCache(type); - var computedProperties = ComputedPropertiesCache(type); - var nonIdProps = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); - - for (var i = 0; i < nonIdProps.Count(); i++) - { - var property = nonIdProps.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < nonIdProps.Count() - 1) - sb.AppendFormat(", "); - } - sb.Append(" where "); - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var updated = await connection.ExecuteAsync(sb.ToString(), entityToUpdate, commandTimeout: commandTimeout, transaction: transaction).ConfigureAwait(false); - return updated > 0; - } - - /// - /// Delete entity in table "Ts" asynchronously using .NET 4.5 Task. - /// - /// Type of entity - /// Open SqlConnection - /// Entity to delete - /// true if deleted, false if not found - public static async Task DeleteAsync(this IDbConnection connection, T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - if (entityToDelete == null) - throw new ArgumentException("Cannot Delete null Object", "entityToDelete"); - - var type = typeof(T); - - if (type.IsArray || type.IsGenericType) - type = type.GetGenericArguments()[0]; - - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); - - var name = GetTableName(type); - - var sb = new StringBuilder(); - sb.AppendFormat("delete from {0} where ", name); - - for (var i = 0; i < keyProperties.Count(); i++) - { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("{0} = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); - } - var deleted = await connection.ExecuteAsync(sb.ToString(), entityToDelete, transaction, commandTimeout).ConfigureAwait(false); - return deleted > 0; - } - - /// - /// Delete all entities in the table related to the type T asynchronously using .NET 4.5 Task. - /// - /// Type of entity - /// Open SqlConnection - /// true if deleted, false if none found - public static async Task DeleteAllAsync(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class - { - var type = typeof(T); - var name = GetTableName(type); - var statement = String.Format("delete from {0}", name); - var deleted = await connection.ExecuteAsync(statement, null, transaction, commandTimeout).ConfigureAwait(false); - return deleted > 0; - } - } -} - -public partial interface ISqlAdapter -{ - Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); -} - -public partial class SqlServerAdapter -{ - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - - var cmd = String.Format("insert into {0} ({1}) values ({2});select SCOPE_IDENTITY() id", tableName, columnList, parameterList); - var multi = await connection.QueryMultipleAsync(cmd, entityToInsert, transaction, commandTimeout); - - var id = (int)multi.Read().First().id; - var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (!propertyInfos.Any()) return id; - - var idProperty = propertyInfos.First(); - if (idProperty.PropertyType.Name == "Int16") //for short id/key types issue #196 - idProperty.SetValue(entityToInsert, (Int16)id, null); - else - idProperty.SetValue(entityToInsert, id, null); - return id; - - //var cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - //await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); - //var r = await connection.QueryAsync("select SCOPE_IDENTITY() id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - - //var id = (int)r.First().id; - //var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - //if (propertyInfos.Any()) - // propertyInfos.First().SetValue(entityToInsert, id, null); - //return id; - } -} - -public partial class SqlCeServerAdapter -{ - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - var cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); - - var r = await connection.QueryAsync("select @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - var id = (int)r.First().id; - var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (propertyInfos.Any()) - propertyInfos.First().SetValue(entityToInsert, id, null); - return id; - } -} - -public partial class PostgresAdapter -{ - - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - var sb = new StringBuilder(); - sb.AppendFormat("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - // If no primary key then safe to assume a join table with not too much data to return - var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (!propertyInfos.Any()) - sb.Append(" RETURNING *"); - else - { - sb.Append(" RETURNING "); - bool first = true; - foreach (var property in propertyInfos) - { - if (!first) - sb.Append(", "); - first = false; - sb.Append(property.Name); - } - } - - var results = await connection.QueryAsync(sb.ToString(), entityToInsert, transaction, commandTimeout).ConfigureAwait(false); - - // Return the key by assinging the corresponding property in the object - by product is that it supports compound primary keys - var id = 0; - foreach (var p in propertyInfos) - { - var value = ((IDictionary)results.First())[p.Name.ToLower()]; - p.SetValue(entityToInsert, value, null); - if (id == 0) - id = Convert.ToInt32(value); - } - return id; - } -} - -public partial class SQLiteAdapter -{ - - public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) - { - var cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); - - await connection.ExecuteAsync(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - - var r = await connection.QueryAsync("select last_insert_rowid() id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); - var id = (int)r.First().id; - var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (propertyInfos.Any()) - propertyInfos.First().SetValue(entityToInsert, id, null); - return id; - } -} diff --git a/Dapper.Contrib.Tests NET45/App.config b/Dapper.Contrib.Tests NET45/App.config deleted file mode 100644 index fad249e40..000000000 --- a/Dapper.Contrib.Tests NET45/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Dapper.Contrib.Tests NET45/Dapper.Contrib.Tests NET45.csproj b/Dapper.Contrib.Tests NET45/Dapper.Contrib.Tests NET45.csproj deleted file mode 100644 index 0a6e81880..000000000 --- a/Dapper.Contrib.Tests NET45/Dapper.Contrib.Tests NET45.csproj +++ /dev/null @@ -1,81 +0,0 @@ - - - - - Debug - AnyCPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A} - Exe - Properties - Dapper.Contrib.Tests - Dapper.Contrib.Tests - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - Assert.cs - - - Tests.cs - - - - - - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - {302ec82f-a81b-48c5-b653-b5c75d2bd103} - Dapper.Contrib NET45 - - - {bf782ef1-2b0f-42fa-9dd0-928454a94c6d} - Dapper.SqlBuilder - - - - - \ No newline at end of file diff --git a/Dapper.Contrib.Tests NET45/Program.cs b/Dapper.Contrib.Tests NET45/Program.cs deleted file mode 100644 index f7cbecd08..000000000 --- a/Dapper.Contrib.Tests NET45/Program.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Data.SqlServerCe; -using System.IO; -using System.Reflection; -using System.Threading.Tasks; - -namespace Dapper.Contrib.Tests -{ - class Program - { - static void Main(string[] args) - { - Setup(); - RunTests(); - Setup(); - RunAsyncTests(); - Console.WriteLine("Press any key..."); - Console.ReadKey(); - } - - private static void Setup() - { - var projLoc = Assembly.GetAssembly(typeof(Program)).Location; - var projFolder = Path.GetDirectoryName(projLoc); - - if (File.Exists(projFolder + "\\Test.sdf")) - File.Delete(projFolder + "\\Test.sdf"); - var connectionString = "Data Source = " + projFolder + "\\Test.sdf;"; - var engine = new SqlCeEngine(connectionString); - engine.CreateDatabase(); - using (var connection = new SqlCeConnection(connectionString)) - { - connection.Open(); - connection.Execute(@" create table Stuff (TheId int IDENTITY(1,1) not null, Name nvarchar(100) not null, Created DateTime null) "); - connection.Execute(@" create table People (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); - connection.Execute(@" create table Users (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, Age int not null) "); - connection.Execute(@" create table Automobiles (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); - connection.Execute(@" create table Results (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, [Order] int not null) "); - } - Console.WriteLine("Created database"); - } - - private static void RunTests() - { - var tester = new Tests(); - foreach (var method in typeof(Tests).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) - { - Console.Write("Running " + method.Name); - method.Invoke(tester, null); - Console.WriteLine(" - OK!"); - } - } - - private static void RunAsyncTests() - { - var tester = new TestsAsync(); - foreach (var method in typeof(TestsAsync).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) - { - Console.Write("Running " + method.Name); - Task.WaitAll((Task)method.Invoke(tester, null)); - Console.WriteLine(" - OK!"); - } - } - } -} diff --git a/Dapper.Contrib.Tests NET45/Properties/AssemblyInfo.cs b/Dapper.Contrib.Tests NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index 34276d4dc..000000000 --- a/Dapper.Contrib.Tests NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -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("Dapper.Contrib.Tests NET45")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper.Contrib.Tests NET45")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[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("2d6cdd3d-b94b-4cd4-842a-60c6e4c93c5c")] - -// 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/Dapper.Contrib.Tests NET45/TestsAsync.cs b/Dapper.Contrib.Tests NET45/TestsAsync.cs deleted file mode 100644 index 35ffe7897..000000000 --- a/Dapper.Contrib.Tests NET45/TestsAsync.cs +++ /dev/null @@ -1,279 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.SqlServerCe; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; - -using Dapper.Contrib.Extensions; - -namespace Dapper.Contrib.Tests -{ - public class TestsAsync - { - private IDbConnection GetOpenConnection() - { - var projLoc = Assembly.GetAssembly(GetType()).Location; - var projFolder = Path.GetDirectoryName(projLoc); - - var connection = new SqlCeConnection("Data Source = " + projFolder + "\\Test.sdf;"); - connection.Open(); - return connection; - } - - public async Task TableNameAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - // tests against "Automobiles" table (Table attribute) - await connection.InsertAsync(new Car { Name = "Volvo" }); - (await connection.GetAsync(1)).Name.IsEqualTo("Volvo"); - (await connection.UpdateAsync(new Car { Id = 1, Name = "Saab" })).IsEqualTo(true); - (await connection.GetAsync(1)).Name.IsEqualTo("Saab"); - (await connection.DeleteAsync(new Car { Id = 1 })).IsEqualTo(true); - (await connection.GetAsync(1)).IsNull(); - } - } - - public async Task TestSimpleGetAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var id = await connection.InsertAsync(new User { Name = "Adama", Age = 10 }); - var user = await connection.GetAsync(id); - user.Id.IsEqualTo(id); - user.Name.IsEqualTo("Adama"); - await connection.DeleteAsync(user); - } - } - - public async Task InsertGetUpdateAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - (await connection.GetAsync(3)).IsNull(); - - var id = await connection.InsertAsync(new User { Name = "Adam", Age = 10 }); - - //get a user with "isdirty" tracking - var user = await connection.GetAsync(id); - user.Name.IsEqualTo("Adam"); - (await connection.UpdateAsync(user)).IsEqualTo(false); //returns false if not updated, based on tracking - user.Name = "Bob"; - (await connection.UpdateAsync(user)).IsEqualTo(true); //returns true if updated, based on tracking - user = await connection.GetAsync(id); - user.Name.IsEqualTo("Bob"); - - //get a user with no tracking - var notrackedUser = await connection.GetAsync(id); - notrackedUser.Name.IsEqualTo("Bob"); - (await connection.UpdateAsync(notrackedUser)).IsEqualTo(true); - //returns true, even though user was not changed - notrackedUser.Name = "Cecil"; - (await connection.UpdateAsync(notrackedUser)).IsEqualTo(true); - (await connection.GetAsync(id)).Name.IsEqualTo("Cecil"); - - (await connection.QueryAsync("select * from Users")).Count().IsEqualTo(1); - (await connection.DeleteAsync(user)).IsEqualTo(true); - (await connection.QueryAsync("select * from Users")).Count().IsEqualTo(0); - - (await connection.UpdateAsync(notrackedUser)).IsEqualTo(false); //returns false, user not found - - (await connection.InsertAsync(new User { Name = "Adam", Age = 10 }, sqlAdapter: new SqlCeServerAdapter())).IsMoreThan(0); - } - } - - - public async Task InsertCheckKeyAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - (await connection.GetAsync(3)).IsNull(); - var user = new User { Name = "Adamb", Age = 10 }; - var id = await connection.InsertAsync(user); - user.Id.IsEqualTo(id); - } - } - - public async Task BuilderSelectClauseAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var rand = new Random(8675309); - var data = new List(); - for (var i = 0; i < 100; i++) - { - var nU = new User { Age = rand.Next(70), Id = i, Name = Guid.NewGuid().ToString() }; - data.Add(nU); - nU.Id = await connection.InsertAsync(nU); - } - - var builder = new SqlBuilder(); - var justId = builder.AddTemplate("SELECT /**select**/ FROM Users"); - var all = builder.AddTemplate("SELECT Name, /**select**/, Age FROM Users"); - - builder.Select("Id"); - - var ids = await connection.QueryAsync(justId.RawSql, justId.Parameters); - var users = await connection.QueryAsync(all.RawSql, all.Parameters); - - foreach (var u in data) - { - if (!ids.Any(i => u.Id == i)) throw new Exception("Missing ids in select"); - if (!users.Any(a => a.Id == u.Id && a.Name == u.Name && a.Age == u.Age)) - throw new Exception("Missing users in select"); - } - } - } - - public async Task BuilderTemplateWOCompositionAsync() - { - var builder = new SqlBuilder(); - var template = builder.AddTemplate("SELECT COUNT(*) FROM Users WHERE Age = @age", new { age = 5 }); - - if (template.RawSql == null) throw new Exception("RawSql null"); - if (template.Parameters == null) throw new Exception("Parameters null"); - - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - await connection.InsertAsync(new User { Age = 5, Name = "Testy McTestington" }); - - if ((await connection.QueryAsync(template.RawSql, template.Parameters)).Single() != 1) - throw new Exception("Query failed"); - } - } - - public async Task InsertListAsync() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var total = await connection.InsertAsync(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - } - } - - public async Task UpdateList() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var total = await connection.InsertAsync(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - foreach (var user in users) - { - user.Name = user.Name + " updated"; - } - await connection.UpdateAsync(users); - var name = connection.Query("select * from users").First().Name; - name.Contains("updated").IsTrue(); - } - - } - - public async Task DeleteList() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var total = await connection.InsertAsync(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - - var usersToDelete = users.Take(10).ToList(); - await connection.DeleteAsync(usersToDelete); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities - 10); - } - - } - - public async Task GetAllAsync() - { - const int numberOfEntities = 1000; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var total = await connection.InsertAsync(users); - total.IsEqualTo(numberOfEntities); - users = (List)await connection.GetAllAsync(); - users.Count.IsEqualTo(numberOfEntities); - var iusers = await connection.GetAllAsync(); - iusers.ToList().Count.IsEqualTo(numberOfEntities); - } - } - - public async Task InsertFieldWithReservedNameAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - var id = await connection.InsertAsync(new Result { Name = "Adam", Order = 1 }); - - var result = await connection.GetAsync(id); - result.Order.IsEqualTo(1); - } - } - - public async Task DeleteAllAsync() - { - using (var connection = GetOpenConnection()) - { - await connection.DeleteAllAsync(); - - var id1 = await connection.InsertAsync(new User { Name = "Alice", Age = 32 }); - var id2 = await connection.InsertAsync(new User { Name = "Bob", Age = 33 }); - await connection.DeleteAllAsync(); - (await connection.GetAsync(id1)).IsNull(); - (await connection.GetAsync(id2)).IsNull(); - } - } - } -} - diff --git a/Dapper.Contrib.Tests/Assert.cs b/Dapper.Contrib.Tests/Assert.cs deleted file mode 100644 index 3b6b75d10..000000000 --- a/Dapper.Contrib.Tests/Assert.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Dapper.Contrib.Tests -{ - /// - /// Assert extensions borrowed from Sam's code in DapperTests - /// - static class Assert - { - public static void IsEqualTo(this T obj, T other) - { - if (!obj.Equals(other)) - { - throw new ApplicationException(string.Format("{0} should be equals to {1}", obj, other)); - } - } - - public static void IsMoreThan(this int obj, int other) - { - if (obj < other) - { - throw new ApplicationException(string.Format("{0} should be larger than {1}", obj, other)); - } - } - - public static void IsMoreThan(this long obj, int other) - { - if (obj < other) - { - throw new ApplicationException(string.Format("{0} should be larger than {1}", obj, other)); - } - } - - public static void IsSequenceEqualTo(this IEnumerable obj, IEnumerable other) - { - if (!obj.SequenceEqual(other)) - { - throw new ApplicationException(string.Format("{0} should be equals to {1}", obj, other)); - } - } - - public static void IsFalse(this bool b) - { - if (b) - { - throw new ApplicationException("Expected false"); - } - } - - public static void IsTrue(this bool b) - { - if (!b) - { - throw new ApplicationException("Expected true"); - } - } - - public static void IsNull(this object obj) - { - if (obj != null) - { - throw new ApplicationException("Expected null"); - } - } - public static void IsNotNull(this object obj) - { - if (obj == null) - { - throw new ApplicationException("Expected not null"); - } - } - - } -} \ No newline at end of file diff --git a/Dapper.Contrib.Tests/Dapper.Contrib.Tests.csproj b/Dapper.Contrib.Tests/Dapper.Contrib.Tests.csproj deleted file mode 100644 index 90b75d55e..000000000 --- a/Dapper.Contrib.Tests/Dapper.Contrib.Tests.csproj +++ /dev/null @@ -1,83 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5} - Exe - Properties - Dapper.Contrib.Tests - Dapper.Contrib.Tests - v4.0 - Client - 512 - - - - - - - - - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - - - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB} - Dapper.Contrib - - - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D} - Dapper.SqlBuilder - - - - - \ No newline at end of file diff --git a/Dapper.Contrib.Tests/Program.cs b/Dapper.Contrib.Tests/Program.cs deleted file mode 100644 index a910ec5ef..000000000 --- a/Dapper.Contrib.Tests/Program.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Data.SqlServerCe; -using System.IO; -using System.Reflection; - -namespace Dapper.Contrib.Tests -{ - class Program - { - static void Main(string[] args) - { - Setup(); - RunTests(); - Console.WriteLine("Press any key..."); - Console.ReadKey(); - } - - private static void Setup() - { - var projLoc = Assembly.GetAssembly(typeof(Program)).Location; - var projFolder = Path.GetDirectoryName(projLoc); - - if (File.Exists(projFolder + "\\Test.sdf")) - File.Delete(projFolder + "\\Test.sdf"); - var connectionString = "Data Source = " + projFolder + "\\Test.sdf;"; - var engine = new SqlCeEngine(connectionString); - engine.CreateDatabase(); - using (var connection = new SqlCeConnection(connectionString)) - { - connection.Open(); - connection.Execute(@" create table Stuff (TheId int IDENTITY(1,1) not null, Name nvarchar(100) not null, Created DateTime null) "); - connection.Execute(@" create table People (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); - connection.Execute(@" create table Users (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, Age int not null) "); - connection.Execute(@" create table Automobiles (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); - connection.Execute(@" create table Results (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, [Order] int not null) "); - } - Console.WriteLine("Created database"); - } - - private static void RunTests() - { - var tester = new Tests(); - foreach (var method in typeof(Tests).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) - { - Console.Write("Running " + method.Name); - method.Invoke(tester, null); - Console.WriteLine(" - OK!"); - } - } - - } -} diff --git a/Dapper.Contrib.Tests/Properties/AssemblyInfo.cs b/Dapper.Contrib.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index d789c72c9..000000000 --- a/Dapper.Contrib.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Dapper.Contrib.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Dapper.Contrib.Tests")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[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("9d5920b6-d6af-41ca-b851-803ac922d933")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/Dapper.Contrib.Tests/Tests.cs b/Dapper.Contrib.Tests/Tests.cs deleted file mode 100644 index 26821d643..000000000 --- a/Dapper.Contrib.Tests/Tests.cs +++ /dev/null @@ -1,452 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.SqlServerCe; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Transactions; - -using Dapper.Contrib.Extensions; - -namespace Dapper.Contrib.Tests -{ - public interface IUser - { - [Key] - int Id { get; set; } - string Name { get; set; } - int Age { get; set; } - } - - public class User : IUser - { - public int Id { get; set; } - public string Name { get; set; } - public int Age { get; set; } - } - - public class Person - { - public int Id { get; set; } - public string Name { get; set; } - } - - [Table("Stuff")] - public class Stuff - { - [Key] - public short TheId { get; set; } - public string Name { get; set; } - public DateTime? Created { get; set; } - } - - [Table("Automobiles")] - public class Car - { - public int Id { get; set; } - public string Name { get; set; } - [Computed] - public string Computed { get; set; } - } - - [Table("Results")] - public class Result - { - public int Id { get; set; } - public string Name { get; set; } - public int Order { get; set; } - } - - public class Tests - { - private IDbConnection GetOpenConnection() - { - var projLoc = Assembly.GetAssembly(GetType()).Location; - var projFolder = Path.GetDirectoryName(projLoc); - - var connection = new SqlCeConnection("Data Source = " + projFolder + "\\Test.sdf;"); - connection.Open(); - return connection; - } - - private IDbConnection GetConnection() - { - var projLoc = Assembly.GetAssembly(GetType()).Location; - var projFolder = Path.GetDirectoryName(projLoc); - - var connection = new SqlCeConnection("Data Source = " + projFolder + "\\Test.sdf;"); - return connection; - } - - public void ShortIdentity() - { - using (var connection = GetOpenConnection()) - { - var id = connection.Insert(new Stuff() { Name = "First item" }); - id.IsEqualTo(1); - var item = connection.Get(1); - item.TheId.IsEqualTo((short)1); - } - } - - public void NullDateTime() - { - using (var connection = GetOpenConnection()) - { - connection.Insert(new Stuff() { Name = "First item" }); - connection.Insert(new Stuff() { Name = "Second item", Created = DateTime.Now }); - var stuff = connection.Query("select * from stuff").ToList(); - stuff.First().Created.IsNull(); - stuff.Last().Created.IsNotNull(); - - } - } - - public void TableName() - { - using (var connection = GetOpenConnection()) - { - // tests against "Automobiles" table (Table attribute) - connection.Insert(new Car { Name = "Volvo" }).IsEqualTo(1); - connection.Get(1).Name.IsEqualTo("Volvo"); - connection.Update(new Car() { Id = 1, Name = "Saab" }).IsEqualTo(true); - connection.Get(1).Name.IsEqualTo("Saab"); - connection.Delete(new Car() { Id = 1 }).IsEqualTo(true); - connection.Get(1).IsNull(); - } - } - - public void TestSimpleGet() - { - using (var connection = GetOpenConnection()) - { - var id = connection.Insert(new User { Name = "Adama", Age = 10 }); - var user = connection.Get(id); - user.Id.IsEqualTo((int)id); - user.Name.IsEqualTo("Adama"); - connection.Delete(user); - } - } - - public void TestClosedConnection() - { - using (var connection = GetConnection()) - { - connection.Insert(new User { Name = "Adama", Age = 10 }).IsMoreThan(0); - var users = connection.GetAll(); - users.Count().IsMoreThan(0); - } - } - - public void InsertList() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - - var total = connection.Insert(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - } - - } - - public void UpdateList() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - - var total = connection.Insert(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - foreach (var user in users) - { - user.Name = user.Name + " updated"; - } - connection.Update(users); - var name = connection.Query("select * from users").First().Name; - name.Contains("updated").IsTrue(); - } - - } - - public void DeleteList() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - - var total = connection.Insert(users); - total.IsEqualTo(numberOfEntities); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities); - - var usersToDelete = users.Take(10).ToList(); - connection.Delete(usersToDelete); - users = connection.Query("select * from users").ToList(); - users.Count.IsEqualTo(numberOfEntities - 10); - } - - } - - public void InsertGetUpdate() - { - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - connection.Get(3).IsNull(); - - //insert with computed attribute that should be ignored - connection.Insert(new Car { Name = "Volvo", Computed = "this property should be ignored" }); - - var id = connection.Insert(new User { Name = "Adam", Age = 10 }); - - //get a user with "isdirty" tracking - var user = connection.Get(id); - user.Name.IsEqualTo("Adam"); - connection.Update(user).IsEqualTo(false); //returns false if not updated, based on tracking - user.Name = "Bob"; - connection.Update(user).IsEqualTo(true); //returns true if updated, based on tracking - user = connection.Get(id); - user.Name.IsEqualTo("Bob"); - - //get a user with no tracking - var notrackedUser = connection.Get(id); - notrackedUser.Name.IsEqualTo("Bob"); - connection.Update(notrackedUser).IsEqualTo(true); //returns true, even though user was not changed - notrackedUser.Name = "Cecil"; - connection.Update(notrackedUser).IsEqualTo(true); - connection.Get(id).Name.IsEqualTo("Cecil"); - - connection.Query("select * from Users").Count().IsEqualTo(1); - connection.Delete(user).IsEqualTo(true); - connection.Query("select * from Users").Count().IsEqualTo(0); - - connection.Update(notrackedUser).IsEqualTo(false); //returns false, user not found - } - } - - public void InsertWithCustomDbType() - { - SqlMapperExtensions.GetDatabaseType = conn => "SQLiteConnection"; - - bool sqliteCodeCalled = false; - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - connection.Get(3).IsNull(); - try - { - var id = connection.Insert(new User { Name = "Adam", Age = 10 }); - } - catch (SqlCeException ex) - { - sqliteCodeCalled = ex.Message.IndexOf("There was an error parsing the query", StringComparison.InvariantCultureIgnoreCase) >= 0; - } - catch (Exception) - { - } - } - SqlMapperExtensions.GetDatabaseType = null; - - if (!sqliteCodeCalled) - { - throw new Exception("Was expecting sqlite code to be called"); - } - } - - public void InsertWithCustomTableNameMapper() - { - - SqlMapperExtensions.TableNameMapper = (type) => - { - switch (type.Name) - { - case "Person": - return "People"; - default: - var tableattr = type.GetCustomAttributes(false).SingleOrDefault(attr => attr.GetType().Name == "TableAttribute") as dynamic; - if (tableattr != null) - return tableattr.Name; - - var name = type.Name + "s"; - if (type.IsInterface && name.StartsWith("I")) - name = name.Substring(1); - return name; - } - }; - - using (var connection = GetOpenConnection()) - { - var id = connection.Insert(new Person() { Name = "Mr Mapper" }); - id.IsEqualTo(1); - var people = connection.GetAll(); - } - } - - public void GetAll() - { - const int numberOfEntities = 100; - - var users = new List(); - for (var i = 0; i < numberOfEntities; i++) - users.Add(new User { Name = "User " + i, Age = i }); - - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - - var total = connection.Insert(users); - total.IsEqualTo(numberOfEntities); - users = connection.GetAll().ToList(); - users.Count.IsEqualTo(numberOfEntities); - var iusers = connection.GetAll().ToList(); - iusers.Count.IsEqualTo(numberOfEntities); - } - - } - - public void Transactions() - { - using (var connection = GetOpenConnection()) - { - var id = connection.Insert(new Car { Name = "one car" }); //insert outside transaction - - var tran = connection.BeginTransaction(); - var car = connection.Get(id, tran); - var orgName = car.Name; - car.Name = "Another car"; - connection.Update(car, tran); - tran.Rollback(); - - car = connection.Get(id); //updates should have been rolled back - car.Name.IsEqualTo(orgName); - } - } - - public void TransactionScope() - { - using (var connection = GetConnection()) - { - using (var txscope = new TransactionScope()) - { - connection.Open(); //connection MUST be opened inside the transactionscope - - var id = connection.Insert(new Car { Name = "one car" }); //inser car within transaction - - txscope.Dispose(); //rollback - - connection.Get(id).IsNull(); //returns null - car with that id should not exist - } - } - } - - public void InsertCheckKey() - { - using (var connection = GetOpenConnection()) - { - connection.Get(3).IsNull(); - User user = new User { Name = "Adamb", Age = 10 }; - int id = (int)connection.Insert(user); - user.Id.IsEqualTo(id); - } - } - - public void BuilderSelectClause() - { - using (var connection = GetOpenConnection()) - { - var rand = new Random(8675309); - var data = new List(); - for (int i = 0; i < 100; i++) - { - var nU = new User { Age = rand.Next(70), Id = i, Name = Guid.NewGuid().ToString() }; - data.Add(nU); - nU.Id = (int)connection.Insert(nU); - } - - var builder = new SqlBuilder(); - var justId = builder.AddTemplate("SELECT /**select**/ FROM Users"); - var all = builder.AddTemplate("SELECT Name, /**select**/, Age FROM Users"); - - builder.Select("Id"); - - var ids = connection.Query(justId.RawSql, justId.Parameters); - var users = connection.Query(all.RawSql, all.Parameters); - - foreach (var u in data) - { - if (!ids.Any(i => u.Id == i)) throw new Exception("Missing ids in select"); - if (!users.Any(a => a.Id == u.Id && a.Name == u.Name && a.Age == u.Age)) throw new Exception("Missing users in select"); - } - } - } - - public void BuilderTemplateWOComposition() - { - var builder = new SqlBuilder(); - var template = builder.AddTemplate("SELECT COUNT(*) FROM Users WHERE Age = @age", new { age = 5 }); - - if (template.RawSql == null) throw new Exception("RawSql null"); - if (template.Parameters == null) throw new Exception("Parameters null"); - - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - connection.Insert(new User { Age = 5, Name = "Testy McTestington" }); - - if (connection.Query(template.RawSql, template.Parameters).Single() != 1) - throw new Exception("Query failed"); - } - } - - public void InsertFieldWithReservedName() - { - using (var connection = GetOpenConnection()) - { - connection.DeleteAll(); - var id = connection.Insert(new Result() { Name = "Adam", Order = 1 }); - - var result = connection.Get(id); - result.Order.IsEqualTo(1); - } - - } - - public void DeleteAll() - { - using (var connection = GetOpenConnection()) - { - var id1 = connection.Insert(new User() { Name = "Alice", Age = 32 }); - var id2 = connection.Insert(new User() { Name = "Bob", Age = 33 }); - connection.DeleteAll().IsTrue(); - connection.Get(id1).IsNull(); - connection.Get(id2).IsNull(); - } - } - - } -} - diff --git a/Dapper.Contrib.nuspec b/Dapper.Contrib.nuspec deleted file mode 100644 index bc87b4aca..000000000 --- a/Dapper.Contrib.nuspec +++ /dev/null @@ -1,34 +0,0 @@ - - - - Dapper.Contrib - 1.44 - Sam Saffron,Johan Danforth - Johan Danforth, Marc Gravell - http://www.apache.org/licenses/LICENSE-2.0 - https://github.com/StackExchange/dapper-dot-net - false - The official collection of get, insert, update and delete helpers for dapper.net. Also handles lists of entities and optional "dirty" tracking of interface-based entities. - orm sql micro-orm dapper - - * 1.44 - Specific insert adapters for sql/sql ce. Faster inserts for sql server now - * 1.43 - GetDatebaseType delegate for Insert, TableNameMapper, Insert now handles closed connection and supports short/int16 id/key - * 1.42 - InsertAsync() UpdateAsync() and DeleteAsync() now also handles lists of entities (.NET 4.5 only) - * 1.41 - added GetAll(). Insert() Update() and Delete() now handles lists of entities! - * 1.40 - cumulative changes up to dapper 1.40; will track changes more carefully subsequently - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.Contrib/Dapper.Contrib.1.0.nupkg b/Dapper.Contrib/Dapper.Contrib.1.0.nupkg deleted file mode 100644 index 3ff7c017c..000000000 Binary files a/Dapper.Contrib/Dapper.Contrib.1.0.nupkg and /dev/null differ diff --git a/Dapper.Contrib/Dapper.Contrib.csproj b/Dapper.Contrib/Dapper.Contrib.csproj index 88567a652..add00a547 100644 --- a/Dapper.Contrib/Dapper.Contrib.csproj +++ b/Dapper.Contrib/Dapper.Contrib.csproj @@ -1,73 +1,30 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB} - Library - Properties - Dapper.Contrib Dapper.Contrib - v4.0 - 512 - - - - - - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.Contrib.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.Contrib.XML + orm;sql;micro-orm;dapper + Dapper.Contrib + The official collection of get, insert, update and delete helpers for Dapper.net. Also handles lists of entities and optional "dirty" tracking of interface-based entities. + Sam Saffron;Johan Danforth + net451;netstandard1.3;netstandard2.0 + + false - - - - - - - + - - + - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - + + + + + - - + + + + + - - \ No newline at end of file diff --git a/Dapper.Contrib/Properties/AssemblyInfo.cs b/Dapper.Contrib/Properties/AssemblyInfo.cs deleted file mode 100644 index a8a073a32..000000000 --- a/Dapper.Contrib/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Dapper.Contrib")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Dapper.Contrib")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[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("6dde1c15-4e92-45e7-93fc-88778d15ff31")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/Dapper.Contrib/Readme.md b/Dapper.Contrib/Readme.md index 2897a2932..eeeb0838f 100644 --- a/Dapper.Contrib/Readme.md +++ b/Dapper.Contrib/Readme.md @@ -4,7 +4,7 @@ Dapper.Contrib - more extensions for dapper Features -------- Dapper.Contrib contains a number of helper methods for inserting, getting, -updating and deleting files. +updating and deleting records. The full list of extension methods in Dapper.Contrib right now are: @@ -21,15 +21,21 @@ bool DeleteAll(); ``` For these extensions to work, the entity in question _MUST_ have a -key-property, a property named "`id`" or decorated with a `[Key]` attribute. +key property. Dapper will automatically use a property named "`id`" +(case-insensitive) as the key property, if one is present. ```csharp public class Car { - public int Id { get; set; } + public int Id { get; set; } // Works by convention public string Name { get; set; } } +``` + +If the entity doesn't follow this convention, decorate +a specific property with a `[Key]` or `[ExplicitKey]` attribute. +```csharp public class User { [Key] @@ -39,6 +45,9 @@ public class User } ``` +`[Key]` should be used for database-generated keys (e.g. autoincrement columns), +while `[ExplicitKey]` should be used for explicit keys generated in code. + `Get` methods ------- @@ -111,15 +120,35 @@ Dapper.Contrib makes use of some optional attributes: * `[Table("Tablename")]` - use another table name instead of the name of the class - ```csharp + ```csharp [Table ("emps")] public class Employee { - public int Id { get; set; } + public int Id { get; set; } + public string Name { get; set; } + } + ``` +* `[Key]` - this property represents a database-generated identity/key + + ```csharp + public class Employee + { + [Key] + public int EmployeeId { get; set; } + public string Name { get; set; } + } + ``` +* `[ExplicitKey]` - this property represents an explicit identity/key which is + *not* automatically generated by the database + + ```csharp + public class Employee + { + [ExplicitKey] + public Guid EmployeeId { get; set; } public string Name { get; set; } } ``` -* `[Key]` - this property is the identity/key (unless it is named "Id") * `[Write(true/false)]` - this property is (not) writeable * `[Computed]` - this property is computed and should not be part of updates @@ -133,11 +162,11 @@ extension provided by Dapper.Contrib. There are 2 ways to deal with this. 1. Call the `Update` method explicitly from `SqlMapperExtensions` - ```Csharp + ```Csharp SqlMapperExtensions.Update(_conn, new Employee { Id = 1, Name = "Mercedes" }); ``` 2. Make the method signature unique by passing a type parameter to `Update` - ```Csharp + ```Csharp connection.Update(new Car() { Id = 1, Name = "Maruti" }); ``` diff --git a/Dapper.Contrib/SqlMapperExtensions.Async.cs b/Dapper.Contrib/SqlMapperExtensions.Async.cs new file mode 100644 index 000000000..1a8d2eef1 --- /dev/null +++ b/Dapper.Contrib/SqlMapperExtensions.Async.cs @@ -0,0 +1,559 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Dapper; + +namespace Dapper.Contrib.Extensions +{ + public static partial class SqlMapperExtensions + { + /// + /// Returns a single entity by a single id from table "Ts" asynchronously using .NET 4.5 Task. T must be of interface type. + /// Id must be marked with [Key] attribute. + /// Created entity is tracked/intercepted for changes and used by the Update() extension. + /// + /// Interface type to create and populate + /// Open SqlConnection + /// Id of the entity to get, must be marked with [Key] attribute + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// Entity of T + public static async Task GetAsync(this IDbConnection connection, dynamic id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class + { + var type = typeof(T); + if (!GetQueries.TryGetValue(type.TypeHandle, out string sql)) + { + var key = GetSingleKey(nameof(GetAsync)); + var name = GetTableName(type); + + sql = $"SELECT * FROM {name} WHERE {key.Name} = @id"; + GetQueries[type.TypeHandle] = sql; + } + + var dynParms = new DynamicParameters(); + dynParms.Add("@id", id); + + if (!type.IsInterface()) + return (await connection.QueryAsync(sql, dynParms, transaction, commandTimeout).ConfigureAwait(false)).FirstOrDefault(); + + var res = (await connection.QueryAsync(sql, dynParms).ConfigureAwait(false)).FirstOrDefault() as IDictionary; + + if (res == null) + return null; + + var obj = ProxyGenerator.GetInterfaceProxy(); + + foreach (var property in TypePropertiesCache(type)) + { + var val = res[property.Name]; + if (val == null) continue; + if (property.PropertyType.IsGenericType() && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + var genericType = Nullable.GetUnderlyingType(property.PropertyType); + if (genericType != null) property.SetValue(obj, Convert.ChangeType(val, genericType), null); + } + else + { + property.SetValue(obj, Convert.ChangeType(val, property.PropertyType), null); + } + } + + ((IProxy)obj).IsDirty = false; //reset change tracking and return + + return obj; + } + + /// + /// Returns a list of entites from table "Ts". + /// Id of T must be marked with [Key] attribute. + /// Entities created from interfaces are tracked/intercepted for changes and used by the Update() extension + /// for optimal performance. + /// + /// Interface or type to create and populate + /// Open SqlConnection + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// Entity of T + public static Task> GetAllAsync(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class + { + var type = typeof(T); + var cacheType = typeof(List); + + if (!GetQueries.TryGetValue(cacheType.TypeHandle, out string sql)) + { + GetSingleKey(nameof(GetAll)); + var name = GetTableName(type); + + sql = "SELECT * FROM " + name; + GetQueries[cacheType.TypeHandle] = sql; + } + + if (!type.IsInterface()) + { + return connection.QueryAsync(sql, null, transaction, commandTimeout); + } + return GetAllAsyncImpl(connection, transaction, commandTimeout, sql, type); + } + + private static async Task> GetAllAsyncImpl(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string sql, Type type) where T : class + { + var result = await connection.QueryAsync(sql).ConfigureAwait(false); + var list = new List(); + foreach (IDictionary res in result) + { + var obj = ProxyGenerator.GetInterfaceProxy(); + foreach (var property in TypePropertiesCache(type)) + { + var val = res[property.Name]; + if (val == null) continue; + if (property.PropertyType.IsGenericType() && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + var genericType = Nullable.GetUnderlyingType(property.PropertyType); + if (genericType != null) property.SetValue(obj, Convert.ChangeType(val, genericType), null); + } + else + { + property.SetValue(obj, Convert.ChangeType(val, property.PropertyType), null); + } + } + ((IProxy)obj).IsDirty = false; //reset change tracking and return + list.Add(obj); + } + return list; + } + + /// + /// Inserts an entity into table "Ts" asynchronously using .NET 4.5 Task and returns identity id. + /// + /// The type being inserted. + /// Open SqlConnection + /// Entity to insert + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// The specific ISqlAdapter to use, auto-detected based on connection if null + /// Identity of inserted entity + public static Task InsertAsync(this IDbConnection connection, T entityToInsert, IDbTransaction transaction = null, + int? commandTimeout = null, ISqlAdapter sqlAdapter = null) where T : class + { + var type = typeof(T); + sqlAdapter = sqlAdapter ?? GetFormatter(connection); + + var isList = false; + if (type.IsArray) + { + isList = true; + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { + var typeInfo = type.GetTypeInfo(); + bool implementsGenericIEnumerableOrIsGenericIEnumerable = + typeInfo.ImplementedInterfaces.Any(ti => ti.IsGenericType() && ti.GetGenericTypeDefinition() == typeof(IEnumerable<>)) || + typeInfo.GetGenericTypeDefinition() == typeof(IEnumerable<>); + + if (implementsGenericIEnumerableOrIsGenericIEnumerable) + { + isList = true; + type = type.GetGenericArguments()[0]; + } + } + + var name = GetTableName(type); + var sbColumnList = new StringBuilder(null); + var allProperties = TypePropertiesCache(type); + var keyProperties = KeyPropertiesCache(type); + var computedProperties = ComputedPropertiesCache(type); + var allPropertiesExceptKeyAndComputed = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); + + for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++) + { + var property = allPropertiesExceptKeyAndComputed[i]; + sqlAdapter.AppendColumnName(sbColumnList, property.Name); + if (i < allPropertiesExceptKeyAndComputed.Count - 1) + sbColumnList.Append(", "); + } + + var sbParameterList = new StringBuilder(null); + for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++) + { + var property = allPropertiesExceptKeyAndComputed[i]; + sbParameterList.AppendFormat("@{0}", property.Name); + if (i < allPropertiesExceptKeyAndComputed.Count - 1) + sbParameterList.Append(", "); + } + + if (!isList) //single entity + { + return sqlAdapter.InsertAsync(connection, transaction, commandTimeout, name, sbColumnList.ToString(), + sbParameterList.ToString(), keyProperties, entityToInsert); + } + + //insert list of entities + var cmd = $"INSERT INTO {name} ({sbColumnList}) values ({sbParameterList})"; + return connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout); + } + + /// + /// Updates entity in table "Ts" asynchronously using .NET 4.5 Task, checks if the entity is modified if the entity is tracked by the Get() extension. + /// + /// Type to be updated + /// Open SqlConnection + /// Entity to be updated + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// true if updated, false if not found or not modified (tracked entities) + public static async Task UpdateAsync(this IDbConnection connection, T entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null) where T : class + { + if ((entityToUpdate is IProxy proxy) && !proxy.IsDirty) + { + return false; + } + + var type = typeof(T); + + if (type.IsArray) + { + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { + type = type.GetGenericArguments()[0]; + } + + var keyProperties = KeyPropertiesCache(type); + var explicitKeyProperties = ExplicitKeyPropertiesCache(type); + if (keyProperties.Count == 0 && explicitKeyProperties.Count == 0) + throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property"); + + var name = GetTableName(type); + + var sb = new StringBuilder(); + sb.AppendFormat("update {0} set ", name); + + var allProperties = TypePropertiesCache(type); + keyProperties.AddRange(explicitKeyProperties); + var computedProperties = ComputedPropertiesCache(type); + var nonIdProps = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); + + var adapter = GetFormatter(connection); + + for (var i = 0; i < nonIdProps.Count; i++) + { + var property = nonIdProps[i]; + adapter.AppendColumnNameEqualsValue(sb, property.Name); + if (i < nonIdProps.Count - 1) + sb.Append(", "); + } + sb.Append(" where "); + for (var i = 0; i < keyProperties.Count; i++) + { + var property = keyProperties[i]; + adapter.AppendColumnNameEqualsValue(sb, property.Name); + if (i < keyProperties.Count - 1) + sb.Append(" and "); + } + var updated = await connection.ExecuteAsync(sb.ToString(), entityToUpdate, commandTimeout: commandTimeout, transaction: transaction).ConfigureAwait(false); + return updated > 0; + } + + /// + /// Delete entity in table "Ts" asynchronously using .NET 4.5 Task. + /// + /// Type of entity + /// Open SqlConnection + /// Entity to delete + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// true if deleted, false if not found + public static async Task DeleteAsync(this IDbConnection connection, T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null) where T : class + { + if (entityToDelete == null) + throw new ArgumentException("Cannot Delete null Object", nameof(entityToDelete)); + + var type = typeof(T); + + if (type.IsArray) + { + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { + type = type.GetGenericArguments()[0]; + } + + var keyProperties = KeyPropertiesCache(type); + var explicitKeyProperties = ExplicitKeyPropertiesCache(type); + if (keyProperties.Count == 0 && explicitKeyProperties.Count == 0) + throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property"); + + var name = GetTableName(type); + keyProperties.AddRange(explicitKeyProperties); + + var sb = new StringBuilder(); + sb.AppendFormat("DELETE FROM {0} WHERE ", name); + + for (var i = 0; i < keyProperties.Count; i++) + { + var property = keyProperties[i]; + sb.AppendFormat("{0} = @{1}", property.Name, property.Name); + if (i < keyProperties.Count - 1) + sb.Append(" AND "); + } + var deleted = await connection.ExecuteAsync(sb.ToString(), entityToDelete, transaction, commandTimeout).ConfigureAwait(false); + return deleted > 0; + } + + /// + /// Delete all entities in the table related to the type T asynchronously using .NET 4.5 Task. + /// + /// Type of entity + /// Open SqlConnection + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout + /// true if deleted, false if none found + public static async Task DeleteAllAsync(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class + { + var type = typeof(T); + var statement = "DELETE FROM " + GetTableName(type); + var deleted = await connection.ExecuteAsync(statement, null, transaction, commandTimeout).ConfigureAwait(false); + return deleted > 0; + } + } +} + +public partial interface ISqlAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); +} + +public partial class SqlServerAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"INSERT INTO {tableName} ({columnList}) values ({parameterList}); SELECT SCOPE_IDENTITY() id"; + var multi = await connection.QueryMultipleAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + + var first = multi.Read().FirstOrDefault(); + if (first == null || first.id == null) return 0; + + var id = (int)first.id; + var pi = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (pi.Length == 0) return id; + + var idp = pi[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return id; + } +} + +public partial class SqlCeServerAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"INSERT INTO {tableName} ({columnList}) VALUES ({parameterList})"; + await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + var r = (await connection.QueryAsync("SELECT @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false)).ToList(); + + if (r[0] == null || r[0].id == null) return 0; + var id = (int)r[0].id; + + var pi = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (pi.Length == 0) return id; + + var idp = pi[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return id; + } +} + +public partial class MySqlAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, + string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"INSERT INTO {tableName} ({columnList}) VALUES ({parameterList})"; + await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + var r = await connection.QueryAsync("SELECT LAST_INSERT_ID() id", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); + + var id = r.First().id; + if (id == null) return 0; + var pi = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (pi.Length == 0) return Convert.ToInt32(id); + + var idp = pi[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return Convert.ToInt32(id); + } +} + +public partial class PostgresAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var sb = new StringBuilder(); + sb.AppendFormat("INSERT INTO {0} ({1}) VALUES ({2})", tableName, columnList, parameterList); + + // If no primary key then safe to assume a join table with not too much data to return + var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (propertyInfos.Length == 0) + { + sb.Append(" RETURNING *"); + } + else + { + sb.Append(" RETURNING "); + bool first = true; + foreach (var property in propertyInfos) + { + if (!first) + sb.Append(", "); + first = false; + sb.Append(property.Name); + } + } + + var results = await connection.QueryAsync(sb.ToString(), entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + + // Return the key by assinging the corresponding property in the object - by product is that it supports compound primary keys + var id = 0; + foreach (var p in propertyInfos) + { + var value = ((IDictionary)results.First())[p.Name.ToLower()]; + p.SetValue(entityToInsert, value, null); + if (id == 0) + id = Convert.ToInt32(value); + } + return id; + } +} + +public partial class SQLiteAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"INSERT INTO {tableName} ({columnList}) VALUES ({parameterList}); SELECT last_insert_rowid() id"; + var multi = await connection.QueryMultipleAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + + var id = (int)multi.Read().First().id; + var pi = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (pi.Length == 0) return id; + + var idp = pi[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return id; + } +} + +public partial class FbAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public async Task InsertAsync(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"insert into {tableName} ({columnList}) values ({parameterList})"; + await connection.ExecuteAsync(cmd, entityToInsert, transaction, commandTimeout).ConfigureAwait(false); + + var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + var keyName = propertyInfos[0].Name; + var r = await connection.QueryAsync($"SELECT FIRST 1 {keyName} ID FROM {tableName} ORDER BY {keyName} DESC", transaction: transaction, commandTimeout: commandTimeout).ConfigureAwait(false); + + var id = r.First().ID; + if (id == null) return 0; + if (propertyInfos.Length == 0) return Convert.ToInt32(id); + + var idp = propertyInfos[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return Convert.ToInt32(id); + } +} diff --git a/Dapper.Contrib/SqlMapperExtensions.cs b/Dapper.Contrib/SqlMapperExtensions.cs index f0b6d2878..8f111d89f 100644 --- a/Dapper.Contrib/SqlMapperExtensions.cs +++ b/Dapper.Contrib/SqlMapperExtensions.cs @@ -6,48 +6,79 @@ using System.Text; using System.Collections.Concurrent; using System.Reflection.Emit; -using System.Threading; using Dapper; -#pragma warning disable 1573, 1591 // xml comments +#if NETSTANDARD1_3 +using DataException = System.InvalidOperationException; +#else +using System.Threading; +#endif namespace Dapper.Contrib.Extensions { - + /// + /// The Dapper.Contrib extensions for Dapper + /// public static partial class SqlMapperExtensions { - // ReSharper disable once MemberCanBePrivate.Global + /// + /// Defined a proxy object with a possibly dirty state. + /// public interface IProxy //must be kept public { + /// + /// Whether the object has been changed. + /// bool IsDirty { get; set; } } + /// + /// Defines a table name mapper for getting table names from types. + /// public interface ITableNameMapper { + /// + /// Gets a table name from a given . + /// + /// The to get a name from. + /// The table name for the given . string GetTableName(Type type); } + /// + /// The function to get a database type from the given . + /// + /// The connection to get a database type name from. public delegate string GetDatabaseTypeDelegate(IDbConnection connection); + /// + /// The function to get a a table name from a given + /// + /// The to get a table name for. public delegate string TableNameMapperDelegate(Type type); private static readonly ConcurrentDictionary> KeyProperties = new ConcurrentDictionary>(); + private static readonly ConcurrentDictionary> ExplicitKeyProperties = new ConcurrentDictionary>(); private static readonly ConcurrentDictionary> TypeProperties = new ConcurrentDictionary>(); private static readonly ConcurrentDictionary> ComputedProperties = new ConcurrentDictionary>(); private static readonly ConcurrentDictionary GetQueries = new ConcurrentDictionary(); private static readonly ConcurrentDictionary TypeTableName = new ConcurrentDictionary(); - private static readonly Dictionary AdapterDictionary = new Dictionary { - {"sqlconnection", new SqlServerAdapter()}, - {"sqlceconnection", new SqlCeServerAdapter()}, - {"npgsqlconnection", new PostgresAdapter()}, - {"sqliteconnection", new SQLiteAdapter()} - }; - - private static IEnumerable ComputedPropertiesCache(Type type) + private static readonly ISqlAdapter DefaultAdapter = new SqlServerAdapter(); + private static readonly Dictionary AdapterDictionary + = new Dictionary + { + ["sqlconnection"] = new SqlServerAdapter(), + ["sqlceconnection"] = new SqlCeServerAdapter(), + ["npgsqlconnection"] = new PostgresAdapter(), + ["sqliteconnection"] = new SQLiteAdapter(), + ["mysqlconnection"] = new MySqlAdapter(), + ["fbconnection"] = new FbAdapter() + }; + + private static List ComputedPropertiesCache(Type type) { - IEnumerable pi; - if (ComputedProperties.TryGetValue(type.TypeHandle, out pi)) + if (ComputedProperties.TryGetValue(type.TypeHandle, out IEnumerable pi)) { return pi.ToList(); } @@ -58,11 +89,22 @@ private static IEnumerable ComputedPropertiesCache(Type type) return computedProperties; } - private static List KeyPropertiesCache(Type type) + private static List ExplicitKeyPropertiesCache(Type type) { + if (ExplicitKeyProperties.TryGetValue(type.TypeHandle, out IEnumerable pi)) + { + return pi.ToList(); + } + + var explicitKeyProperties = TypePropertiesCache(type).Where(p => p.GetCustomAttributes(true).Any(a => a is ExplicitKeyAttribute)).ToList(); + + ExplicitKeyProperties[type.TypeHandle] = explicitKeyProperties; + return explicitKeyProperties; + } - IEnumerable pi; - if (KeyProperties.TryGetValue(type.TypeHandle, out pi)) + private static List KeyPropertiesCache(Type type) + { + if (KeyProperties.TryGetValue(type.TypeHandle, out IEnumerable pi)) { return pi.ToList(); } @@ -72,8 +114,8 @@ private static List KeyPropertiesCache(Type type) if (keyProperties.Count == 0) { - var idProp = allProperties.FirstOrDefault(p => p.Name.ToLower() == "id"); - if (idProp != null) + var idProp = allProperties.Find(p => string.Equals(p.Name, "id", StringComparison.CurrentCultureIgnoreCase)); + if (idProp != null && !idProp.GetCustomAttributes(true).Any(a => a is ExplicitKeyAttribute)) { keyProperties.Add(idProp); } @@ -85,8 +127,7 @@ private static List KeyPropertiesCache(Type type) private static List TypePropertiesCache(Type type) { - IEnumerable pis; - if (TypeProperties.TryGetValue(type.TypeHandle, out pis)) + if (TypeProperties.TryGetValue(type.TypeHandle, out IEnumerable pis)) { return pis.ToList(); } @@ -98,13 +139,27 @@ private static List TypePropertiesCache(Type type) private static bool IsWriteable(PropertyInfo pi) { - var attributes = pi.GetCustomAttributes(typeof(WriteAttribute), false); - if (attributes.Length != 1) return true; + var attributes = pi.GetCustomAttributes(typeof(WriteAttribute), false).AsList(); + if (attributes.Count != 1) return true; var writeAttribute = (WriteAttribute)attributes[0]; return writeAttribute.Write; } + private static PropertyInfo GetSingleKey(string method) + { + var type = typeof(T); + var keys = KeyPropertiesCache(type); + var explicitKeys = ExplicitKeyPropertiesCache(type); + var keyCount = keys.Count + explicitKeys.Count; + if (keyCount > 1) + throw new DataException($"{method} only supports an entity with a single [Key] or [ExplicitKey] property"); + if (keyCount == 0) + throw new DataException($"{method} only supports an entity with a [Key] or an [ExplicitKey] property"); + + return keys.Count > 0 ? keys[0] : explicitKeys[0]; + } + /// /// Returns a single entity by a single id from table "Ts". /// Id must be marked with [Key] attribute. @@ -114,26 +169,19 @@ private static bool IsWriteable(PropertyInfo pi) /// Interface or type to create and populate /// Open SqlConnection /// Id of the entity to get, must be marked with [Key] attribute + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// Entity of T public static T Get(this IDbConnection connection, dynamic id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { var type = typeof(T); - string sql; - if (!GetQueries.TryGetValue(type.TypeHandle, out sql)) + if (!GetQueries.TryGetValue(type.TypeHandle, out string sql)) { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (!keys.Any()) - throw new DataException("Get only supports en entity with a [Key] property"); - - var onlyKey = keys.First(); - + var key = GetSingleKey(nameof(Get)); var name = GetTableName(type); - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface - sql = "select * from " + name + " where " + onlyKey.Name + " = @id"; + sql = $"select * from {name} where {key.Name} = @id"; GetQueries[type.TypeHandle] = sql; } @@ -142,7 +190,7 @@ public static T Get(this IDbConnection connection, dynamic id, IDbTransaction T obj; - if (type.IsInterface) + if (type.IsInterface()) { var res = connection.Query(sql, dynParms).FirstOrDefault() as IDictionary; @@ -154,7 +202,16 @@ public static T Get(this IDbConnection connection, dynamic id, IDbTransaction foreach (var property in TypePropertiesCache(type)) { var val = res[property.Name]; - property.SetValue(obj, val, null); + if (val == null) continue; + if (property.PropertyType.IsGenericType() && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + var genericType = Nullable.GetUnderlyingType(property.PropertyType); + if (genericType != null) property.SetValue(obj, Convert.ChangeType(val, genericType), null); + } + else + { + property.SetValue(obj, Convert.ChangeType(val, property.PropertyType), null); + } } ((IProxy)obj).IsDirty = false; //reset change tracking and return @@ -174,30 +231,24 @@ public static T Get(this IDbConnection connection, dynamic id, IDbTransaction /// /// Interface or type to create and populate /// Open SqlConnection + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// Entity of T public static IEnumerable GetAll(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { var type = typeof(T); var cacheType = typeof(List); - string sql; - if (!GetQueries.TryGetValue(cacheType.TypeHandle, out sql)) + if (!GetQueries.TryGetValue(cacheType.TypeHandle, out string sql)) { - var keys = KeyPropertiesCache(type); - if (keys.Count() > 1) - throw new DataException("Get only supports an entity with a single [Key] property"); - if (!keys.Any()) - throw new DataException("Get only supports en entity with a [Key] property"); - + GetSingleKey(nameof(GetAll)); var name = GetTableName(type); - // TODO: query information schema and only select fields that are both in information schema and underlying class / interface sql = "select * from " + name; GetQueries[cacheType.TypeHandle] = sql; } - - if (!type.IsInterface) return connection.Query(sql, null, transaction, commandTimeout: commandTimeout); + if (!type.IsInterface()) return connection.Query(sql, null, transaction, commandTimeout: commandTimeout); var result = connection.Query(sql); var list = new List(); @@ -207,7 +258,16 @@ public static IEnumerable GetAll(this IDbConnection connection, IDbTransac foreach (var property in TypePropertiesCache(type)) { var val = res[property.Name]; - property.SetValue(obj, val, null); + if (val == null) continue; + if (property.PropertyType.IsGenericType() && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + var genericType = Nullable.GetUnderlyingType(property.PropertyType); + if (genericType != null) property.SetValue(obj, Convert.ChangeType(val, genericType), null); + } + else + { + property.SetValue(obj, Convert.ChangeType(val, property.PropertyType), null); + } } ((IProxy)obj).IsDirty = false; //reset change tracking and return list.Add(obj); @@ -222,8 +282,7 @@ public static IEnumerable GetAll(this IDbConnection connection, IDbTransac private static string GetTableName(Type type) { - string name; - if (TypeTableName.TryGetValue(type.TypeHandle, out name)) return name; + if (TypeTableName.TryGetValue(type.TypeHandle, out string name)) return name; if (TableNameMapper != null) { @@ -232,13 +291,19 @@ private static string GetTableName(Type type) else { //NOTE: This as dynamic trick should be able to handle both our own Table-attribute as well as the one in EntityFramework - var tableattr = type.GetCustomAttributes(false).SingleOrDefault(attr => attr.GetType().Name == "TableAttribute") as dynamic; - if (tableattr != null) - name = tableattr.Name; + var tableAttr = type +#if NETSTANDARD1_3 + .GetTypeInfo() +#endif + .GetCustomAttributes(false).SingleOrDefault(attr => attr.GetType().Name == "TableAttribute") as dynamic; + if (tableAttr != null) + { + name = tableAttr.Name; + } else { name = type.Name + "s"; - if (type.IsInterface && name.StartsWith("I")) + if (type.IsInterface() && name.StartsWith("I")) name = name.Substring(1); } } @@ -247,12 +312,14 @@ private static string GetTableName(Type type) return name; } - /// - /// Inserts an entity into table "Ts" and returns identity id or number if inserted rows if inserting a list. + /// Inserts an entity into table "Ts" and returns identity id or number of inserted rows if inserting a list. /// + /// The type to insert. /// Open SqlConnection /// Entity to insert, can be list of entities + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// Identity of inserted entity, or number of inserted rows if inserting a list public static long Insert(this IDbConnection connection, T entityToInsert, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { @@ -260,10 +327,23 @@ public static long Insert(this IDbConnection connection, T entityToInsert, ID var type = typeof(T); - if (type.IsArray || type.IsGenericType) + if (type.IsArray) { isList = true; - type = type.GetGenericArguments()[0]; + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { + var typeInfo = type.GetTypeInfo(); + bool implementsGenericIEnumerableOrIsGenericIEnumerable = + typeInfo.ImplementedInterfaces.Any(ti => ti.IsGenericType() && ti.GetGenericTypeDefinition() == typeof(IEnumerable<>)) || + typeInfo.GetGenericTypeDefinition() == typeof(IEnumerable<>); + + if (implementsGenericIEnumerableOrIsGenericIEnumerable) + { + isList = true; + type = type.GetGenericArguments()[0]; + } } var name = GetTableName(type); @@ -273,20 +353,22 @@ public static long Insert(this IDbConnection connection, T entityToInsert, ID var computedProperties = ComputedPropertiesCache(type); var allPropertiesExceptKeyAndComputed = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) + var adapter = GetFormatter(connection); + + for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++) { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); - sbColumnList.AppendFormat("[{0}]", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) + var property = allPropertiesExceptKeyAndComputed[i]; + adapter.AppendColumnName(sbColumnList, property.Name); //fix for issue #336 + if (i < allPropertiesExceptKeyAndComputed.Count - 1) sbColumnList.Append(", "); } var sbParameterList = new StringBuilder(null); - for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count(); i++) + for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++) { - var property = allPropertiesExceptKeyAndComputed.ElementAt(i); + var property = allPropertiesExceptKeyAndComputed[i]; sbParameterList.AppendFormat("@{0}", property.Name); - if (i < allPropertiesExceptKeyAndComputed.Count() - 1) + if (i < allPropertiesExceptKeyAndComputed.Count - 1) sbParameterList.Append(", "); } @@ -296,14 +378,13 @@ public static long Insert(this IDbConnection connection, T entityToInsert, ID if (!isList) //single entity { - var adapter = GetFormatter(connection); returnVal = adapter.Insert(connection, transaction, commandTimeout, name, sbColumnList.ToString(), sbParameterList.ToString(), keyProperties, entityToInsert); } else { //insert list of entities - var cmd = String.Format("insert into {0} ({1}) values ({2})", name, sbColumnList, sbParameterList); + var cmd = $"insert into {name} ({sbColumnList}) values ({sbParameterList})"; returnVal = connection.Execute(cmd, entityToInsert, transaction, commandTimeout); } if (wasClosed) connection.Close(); @@ -316,23 +397,31 @@ public static long Insert(this IDbConnection connection, T entityToInsert, ID /// Type to be updated /// Open SqlConnection /// Entity to be updated + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// true if updated, false if not found or not modified (tracked entities) public static bool Update(this IDbConnection connection, T entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { - var proxy = entityToUpdate as IProxy; - if (proxy != null) + if (entityToUpdate is IProxy proxy && !proxy.IsDirty) { - if (!proxy.IsDirty) return false; + return false; } var type = typeof(T); - if (type.IsArray || type.IsGenericType) + if (type.IsArray) + { + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { type = type.GetGenericArguments()[0]; + } - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); + var keyProperties = KeyPropertiesCache(type).ToList(); //added ToList() due to issue #418, must work on a list copy + var explicitKeyProperties = ExplicitKeyPropertiesCache(type); + if (keyProperties.Count == 0 && explicitKeyProperties.Count == 0) + throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property"); var name = GetTableName(type); @@ -340,23 +429,26 @@ public static bool Update(this IDbConnection connection, T entityToUpdate, ID sb.AppendFormat("update {0} set ", name); var allProperties = TypePropertiesCache(type); + keyProperties.AddRange(explicitKeyProperties); var computedProperties = ComputedPropertiesCache(type); var nonIdProps = allProperties.Except(keyProperties.Union(computedProperties)).ToList(); - for (var i = 0; i < nonIdProps.Count(); i++) + var adapter = GetFormatter(connection); + + for (var i = 0; i < nonIdProps.Count; i++) { - var property = nonIdProps.ElementAt(i); - sb.AppendFormat("[{0}] = @{1}", property.Name, property.Name); - if (i < nonIdProps.Count() - 1) - sb.AppendFormat(", "); + var property = nonIdProps[i]; + adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336 + if (i < nonIdProps.Count - 1) + sb.Append(", "); } sb.Append(" where "); - for (var i = 0; i < keyProperties.Count(); i++) + for (var i = 0; i < keyProperties.Count; i++) { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("[{0}] = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); + var property = keyProperties[i]; + adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336 + if (i < keyProperties.Count - 1) + sb.Append(" and "); } var updated = connection.Execute(sb.ToString(), entityToUpdate, commandTimeout: commandTimeout, transaction: transaction); return updated > 0; @@ -368,32 +460,44 @@ public static bool Update(this IDbConnection connection, T entityToUpdate, ID /// Type of entity /// Open SqlConnection /// Entity to delete + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// true if deleted, false if not found public static bool Delete(this IDbConnection connection, T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { if (entityToDelete == null) - throw new ArgumentException("Cannot Delete null Object", "entityToDelete"); + throw new ArgumentException("Cannot Delete null Object", nameof(entityToDelete)); var type = typeof(T); - if (type.IsArray || type.IsGenericType) + if (type.IsArray) + { + type = type.GetElementType(); + } + else if (type.IsGenericType()) + { type = type.GetGenericArguments()[0]; + } - var keyProperties = KeyPropertiesCache(type); - if (!keyProperties.Any()) - throw new ArgumentException("Entity must have at least one [Key] property"); + var keyProperties = KeyPropertiesCache(type).ToList(); //added ToList() due to issue #418, must work on a list copy + var explicitKeyProperties = ExplicitKeyPropertiesCache(type); + if (keyProperties.Count == 0 && explicitKeyProperties.Count == 0) + throw new ArgumentException("Entity must have at least one [Key] or [ExplicitKey] property"); var name = GetTableName(type); + keyProperties.AddRange(explicitKeyProperties); var sb = new StringBuilder(); sb.AppendFormat("delete from {0} where ", name); - for (var i = 0; i < keyProperties.Count(); i++) + var adapter = GetFormatter(connection); + + for (var i = 0; i < keyProperties.Count; i++) { - var property = keyProperties.ElementAt(i); - sb.AppendFormat("[{0}] = @{1}", property.Name, property.Name); - if (i < keyProperties.Count() - 1) - sb.AppendFormat(" and "); + var property = keyProperties[i]; + adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336 + if (i < keyProperties.Count - 1) + sb.Append(" and "); } var deleted = connection.Execute(sb.ToString(), entityToDelete, transaction, commandTimeout); return deleted > 0; @@ -404,12 +508,14 @@ public static bool Delete(this IDbConnection connection, T entityToDelete, ID /// /// Type of entity /// Open SqlConnection + /// The transaction to run under, null (the default) if none + /// Number of seconds before command execution timeout /// true if deleted, false if none found public static bool DeleteAll(this IDbConnection connection, IDbTransaction transaction = null, int? commandTimeout = null) where T : class { var type = typeof(T); var name = GetTableName(type); - var statement = String.Format("delete from {0}", name); + var statement = $"delete from {name}"; var deleted = connection.Execute(statement, null, transaction, commandTimeout); return deleted > 0; } @@ -420,46 +526,36 @@ public static bool DeleteAll(this IDbConnection connection, IDbTransaction tr /// public static GetDatabaseTypeDelegate GetDatabaseType; - private static ISqlAdapter GetFormatter(IDbConnection connection) { - string name; - if (GetDatabaseType != null) - { - name = GetDatabaseType(connection); - if (name != null) - name = name.ToLower(); - } - else - { - name = connection.GetType().Name.ToLower(); - } + var name = GetDatabaseType?.Invoke(connection).ToLower() + ?? connection.GetType().Name.ToLower(); - return !AdapterDictionary.ContainsKey(name) ? - new SqlServerAdapter() : - AdapterDictionary[name]; + return !AdapterDictionary.ContainsKey(name) + ? DefaultAdapter + : AdapterDictionary[name]; } - static class ProxyGenerator + private static class ProxyGenerator { - private static readonly Dictionary TypeCache = new Dictionary(); + private static readonly Dictionary TypeCache = new Dictionary(); private static AssemblyBuilder GetAsmBuilder(string name) { - var assemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(new AssemblyName { Name = name }, - AssemblyBuilderAccess.Run); //NOTE: to save, use RunAndSave - - return assemblyBuilder; +#if NETSTANDARD1_3 || NETSTANDARD2_0 + return AssemblyBuilder.DefineDynamicAssembly(new AssemblyName { Name = name }, AssemblyBuilderAccess.Run); +#else + return Thread.GetDomain().DefineDynamicAssembly(new AssemblyName { Name = name }, AssemblyBuilderAccess.Run); +#endif } public static T GetInterfaceProxy() { Type typeOfT = typeof(T); - object k; - if (TypeCache.TryGetValue(typeOfT, out k)) + if (TypeCache.TryGetValue(typeOfT, out Type k)) { - return (T)k; + return (T)Activator.CreateInstance(k); } var assemblyBuilder = GetAsmBuilder(typeOfT.Name); @@ -481,31 +577,30 @@ public static T GetInterfaceProxy() CreateProperty(typeBuilder, property.Name, property.PropertyType, setIsDirtyMethod, isId); } +#if NETSTANDARD1_3 || NETSTANDARD2_0 + var generatedType = typeBuilder.CreateTypeInfo().AsType(); +#else var generatedType = typeBuilder.CreateType(); +#endif - //assemblyBuilder.Save(name + ".dll"); //NOTE: to save, uncomment - - var generatedObject = Activator.CreateInstance(generatedType); - - TypeCache.Add(typeOfT, generatedObject); - return (T)generatedObject; + TypeCache.Add(typeOfT, generatedType); + return (T)Activator.CreateInstance(generatedType); } - private static MethodInfo CreateIsDirtyProperty(TypeBuilder typeBuilder) { var propType = typeof(bool); - var field = typeBuilder.DefineField("_" + "IsDirty", propType, FieldAttributes.Private); - var property = typeBuilder.DefineProperty("IsDirty", + var field = typeBuilder.DefineField("_" + nameof(IProxy.IsDirty), propType, FieldAttributes.Private); + var property = typeBuilder.DefineProperty(nameof(IProxy.IsDirty), System.Reflection.PropertyAttributes.None, propType, new[] { propType }); - const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.NewSlot | MethodAttributes.SpecialName | - MethodAttributes.Final | MethodAttributes.Virtual | MethodAttributes.HideBySig; + const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.NewSlot | MethodAttributes.SpecialName + | MethodAttributes.Final | MethodAttributes.Virtual | MethodAttributes.HideBySig; // Define the "get" and "set" accessor methods - var currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + "IsDirty", + var currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + nameof(IProxy.IsDirty), getSetAttr, propType, Type.EmptyTypes); @@ -513,7 +608,7 @@ private static MethodInfo CreateIsDirtyProperty(TypeBuilder typeBuilder) currGetIl.Emit(OpCodes.Ldarg_0); currGetIl.Emit(OpCodes.Ldfld, field); currGetIl.Emit(OpCodes.Ret); - var currSetPropMthdBldr = typeBuilder.DefineMethod("set_" + "IsDirty", + var currSetPropMthdBldr = typeBuilder.DefineMethod("set_" + nameof(IProxy.IsDirty), getSetAttr, null, new[] { propType }); @@ -525,8 +620,8 @@ private static MethodInfo CreateIsDirtyProperty(TypeBuilder typeBuilder) property.SetGetMethod(currGetPropMthdBldr); property.SetSetMethod(currSetPropMthdBldr); - var getMethod = typeof(IProxy).GetMethod("get_" + "IsDirty"); - var setMethod = typeof(IProxy).GetMethod("set_" + "IsDirty"); + var getMethod = typeof(IProxy).GetMethod("get_" + nameof(IProxy.IsDirty)); + var setMethod = typeof(IProxy).GetMethod("set_" + nameof(IProxy.IsDirty)); typeBuilder.DefineMethodOverride(currGetPropMthdBldr, getMethod); typeBuilder.DefineMethodOverride(currSetPropMthdBldr, setMethod); @@ -542,8 +637,9 @@ private static void CreateProperty(TypeBuilder typeBuilder, string propertyNa propType, new[] { propType }); - const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.Virtual | - MethodAttributes.HideBySig; + const MethodAttributes getSetAttr = MethodAttributes.Public + | MethodAttributes.Virtual + | MethodAttributes.HideBySig; // Define the "get" and "set" accessor methods var currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + propertyName, @@ -590,101 +686,302 @@ private static void CreateProperty(TypeBuilder typeBuilder, string propertyNa } } + /// + /// Defines the name of a table to use in Dapper.Contrib commands. + /// [AttributeUsage(AttributeTargets.Class)] public class TableAttribute : Attribute { + /// + /// Creates a table mapping to a specific name for Dapper.Contrib commands + /// + /// The name of this table in the database. public TableAttribute(string tableName) { Name = tableName; } - // ReSharper disable once MemberCanBePrivate.Global - // ReSharper disable once UnusedAutoPropertyAccessor.Global + /// + /// The name of the table in the database + /// public string Name { get; set; } } - // do not want to depend on data annotations that is not in client profile + /// + /// Specifies that this field is a primary key in the database + /// [AttributeUsage(AttributeTargets.Property)] public class KeyAttribute : Attribute { } + /// + /// Specifies that this field is a explicitly set primary key in the database + /// + [AttributeUsage(AttributeTargets.Property)] + public class ExplicitKeyAttribute : Attribute + { + } + + /// + /// Specifies whether a field is writable in the database. + /// [AttributeUsage(AttributeTargets.Property)] public class WriteAttribute : Attribute { + /// + /// Specifies whether a field is writable in the database. + /// + /// Whether a field is writable in the database. public WriteAttribute(bool write) { Write = write; } - public bool Write { get; private set; } + + /// + /// Whether a field is writable in the database. + /// + public bool Write { get; } } + /// + /// Specifies that this is a computed column. + /// [AttributeUsage(AttributeTargets.Property)] public class ComputedAttribute : Attribute { } } +/// +/// The interface for all Dapper.Contrib database operations +/// Implementing this is each provider's model. +/// public partial interface ISqlAdapter { - int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert); + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + void AppendColumnName(StringBuilder sb, string columnName); + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + void AppendColumnNameEqualsValue(StringBuilder sb, string columnName); } +/// +/// The SQL Server database adapter. +/// public partial class SqlServerAdapter : ISqlAdapter { - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) { + var cmd = $"insert into {tableName} ({columnList}) values ({parameterList});select SCOPE_IDENTITY() id"; + var multi = connection.QueryMultiple(cmd, entityToInsert, transaction, commandTimeout); - var cmd = String.Format("insert into {0} ({1}) values ({2});select SCOPE_IDENTITY() id", tableName, columnList, parameterList); - var multi = connection.QueryMultiple(cmd,entityToInsert , transaction, commandTimeout); + var first = multi.Read().FirstOrDefault(); + if (first == null || first.id == null) return 0; - var id = (int)multi.Read().First().id; + var id = (int)first.id; var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (!propertyInfos.Any()) return id; + if (propertyInfos.Length == 0) return id; + + var idProperty = propertyInfos[0]; + idProperty.SetValue(entityToInsert, Convert.ChangeType(id, idProperty.PropertyType), null); - var idProperty = propertyInfos.First(); - if (idProperty.PropertyType.Name == "Int16") //for short id/key types issue #196 - idProperty.SetValue(entityToInsert, (Int16)id, null); - else - idProperty.SetValue(entityToInsert, id, null); return id; } + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("[{0}]", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("[{0}] = @{1}", columnName, columnName); + } } +/// +/// The SQL Server Compact Edition database adapter. +/// public partial class SqlCeServerAdapter : ISqlAdapter { - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) { - var cmd = String.Format("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); + var cmd = $"insert into {tableName} ({columnList}) values ({parameterList})"; connection.Execute(cmd, entityToInsert, transaction, commandTimeout); - var r = connection.Query("select @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout); + var r = connection.Query("select @@IDENTITY id", transaction: transaction, commandTimeout: commandTimeout).ToList(); + + if (r[0].id == null) return 0; + var id = (int)r[0].id; - var id = r.First().id; var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (propertyInfos.Any()) - { - var idProperty = propertyInfos.First(); - if (idProperty.PropertyType.Name == "Int16") //for short id/key types issue #196 - idProperty.SetValue(entityToInsert, (Int16)id, null); - else - idProperty.SetValue(entityToInsert, (int)id, null); - } - return (int)id; + if (propertyInfos.Length == 0) return id; + + var idProperty = propertyInfos[0]; + idProperty.SetValue(entityToInsert, Convert.ChangeType(id, idProperty.PropertyType), null); + + return id; + } + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("[{0}]", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("[{0}] = @{1}", columnName, columnName); } } +/// +/// The MySQL database adapter. +/// +public partial class MySqlAdapter : ISqlAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"insert into {tableName} ({columnList}) values ({parameterList})"; + connection.Execute(cmd, entityToInsert, transaction, commandTimeout); + var r = connection.Query("Select LAST_INSERT_ID() id", transaction: transaction, commandTimeout: commandTimeout); + + var id = r.First().id; + if (id == null) return 0; + var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + if (propertyInfos.Length == 0) return Convert.ToInt32(id); + + var idp = propertyInfos[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return Convert.ToInt32(id); + } + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("`{0}`", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("`{0}` = @{1}", columnName, columnName); + } +} +/// +/// The Postgres database adapter. +/// public partial class PostgresAdapter : ISqlAdapter { - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) { var sb = new StringBuilder(); sb.AppendFormat("insert into {0} ({1}) values ({2})", tableName, columnList, parameterList); // If no primary key then safe to assume a join table with not too much data to return var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (!propertyInfos.Any()) + if (propertyInfos.Length == 0) + { sb.Append(" RETURNING *"); + } else { sb.Append(" RETURNING "); @@ -704,26 +1001,141 @@ public int Insert(IDbConnection connection, IDbTransaction transaction, int? com var id = 0; foreach (var p in propertyInfos) { - var value = ((IDictionary)results.First())[p.Name.ToLower()]; + var value = ((IDictionary)results[0])[p.Name.ToLower()]; p.SetValue(entityToInsert, value, null); if (id == 0) id = Convert.ToInt32(value); } return id; } + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("\"{0}\"", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("\"{0}\" = @{1}", columnName, columnName); + } } +/// +/// The SQLite database adapter. +/// public partial class SQLiteAdapter : ISqlAdapter { - public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, String tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) { - var cmd = String.Format("insert into {0} ({1}) values ({2}); select last_insert_rowid() id", tableName, columnList, parameterList); - var r = connection.Query(cmd, entityToInsert, transaction: transaction, commandTimeout: commandTimeout); - var id = (int)r.First().id; + var cmd = $"INSERT INTO {tableName} ({columnList}) VALUES ({parameterList}); SELECT last_insert_rowid() id"; + var multi = connection.QueryMultiple(cmd, entityToInsert, transaction, commandTimeout); + + var id = (int)multi.Read().First().id; var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); - if (propertyInfos.Any()) - propertyInfos.First().SetValue(entityToInsert, id, null); + if (propertyInfos.Length == 0) return id; + + var idProperty = propertyInfos[0]; + idProperty.SetValue(entityToInsert, Convert.ChangeType(id, idProperty.PropertyType), null); + return id; } + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("\"{0}\"", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("\"{0}\" = @{1}", columnName, columnName); + } +} + +/// +/// The Firebase SQL adapeter. +/// +public partial class FbAdapter : ISqlAdapter +{ + /// + /// Inserts into the database, returning the Id of the row created. + /// + /// The connection to use. + /// The transaction to use. + /// The command timeout to use. + /// The table to insert into. + /// The columns to set with this insert. + /// The parameters to set for this insert. + /// The key columns in this table. + /// The entity to insert. + /// The Id of the row created. + public int Insert(IDbConnection connection, IDbTransaction transaction, int? commandTimeout, string tableName, string columnList, string parameterList, IEnumerable keyProperties, object entityToInsert) + { + var cmd = $"insert into {tableName} ({columnList}) values ({parameterList})"; + connection.Execute(cmd, entityToInsert, transaction, commandTimeout); + + var propertyInfos = keyProperties as PropertyInfo[] ?? keyProperties.ToArray(); + var keyName = propertyInfos[0].Name; + var r = connection.Query($"SELECT FIRST 1 {keyName} ID FROM {tableName} ORDER BY {keyName} DESC", transaction: transaction, commandTimeout: commandTimeout); + + var id = r.First().ID; + if (id == null) return 0; + if (propertyInfos.Length == 0) return Convert.ToInt32(id); + + var idp = propertyInfos[0]; + idp.SetValue(entityToInsert, Convert.ChangeType(id, idp.PropertyType), null); + + return Convert.ToInt32(id); + } + + /// + /// Adds the name of a column. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnName(StringBuilder sb, string columnName) + { + sb.AppendFormat("{0}", columnName); + } + + /// + /// Adds a column equality to a parameter. + /// + /// The string builder to append to. + /// The column name. + public void AppendColumnNameEqualsValue(StringBuilder sb, string columnName) + { + sb.AppendFormat("{0} = @{1}", columnName, columnName); + } } diff --git a/Dapper.DNX.Tests/Dapper.DNX.Tests.xproj b/Dapper.DNX.Tests/Dapper.DNX.Tests.xproj deleted file mode 100644 index 495ddcf12..000000000 --- a/Dapper.DNX.Tests/Dapper.DNX.Tests.xproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - b6eae030-3119-49c0-adb5-39e25ba60c4c - Dapper.DNX.Tests - ..\artifacts\obj\$(MSBuildProjectName) - ..\artifacts\bin\$(MSBuildProjectName)\ - - - Dapper.DNX.Tests - - - 2.0 - - - True - - - \ No newline at end of file diff --git a/Dapper.DNX.Tests/Properties/launchSettings.json b/Dapper.DNX.Tests/Properties/launchSettings.json deleted file mode 100644 index 43e0c99c7..000000000 --- a/Dapper.DNX.Tests/Properties/launchSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "profiles": {} -} \ No newline at end of file diff --git a/Dapper.DNX.Tests/project.json b/Dapper.DNX.Tests/project.json deleted file mode 100644 index ad1ddd1b4..000000000 --- a/Dapper.DNX.Tests/project.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "version": "1.0.0-*", - "dependencies": { - "Dapper": "1.41-*" - }, - "commands": { - "Dapper.DNX.Tests": "Dapper.DNX.Tests" - }, - "compile": [ "../Tests/Tests.cs", "../Tests/Program.cs", "../Tests/Assert.cs", "../DapperTests NET45/Tests.cs" ], - "compilationOptions": { "define": [ "NOEXTERNALS" ] }, - "frameworks": { - "net45": { - "compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true }, - "dependencies": { - "System.Threading.Thread": "4.0.0-beta-22816" - }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0", - "System.Xml": "4.0.0.0" - } - }, - "net40": { - "dependencies": { - }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0", - "System.Xml": "4.0.0.0" - } - }, - "dnx451": { - "compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0", - "System.Xml": "4.0.0.0" - } - - }, - "dnxcore50": { - "compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true }, - "dependencies": { - "System.Console": "4.0.0-beta-*", - "System.Reflection": "4.0.10-beta-*", - "System.Linq": "4.0.0-beta-*", - "System.Data.Common": "4.0.0-beta-*", - "System.Data.SqlClient": "4.0.0-beta-*", - "System.Threading": "4.0.10-beta-*", - "System.Threading.Thread": "4.0.0-beta-*", - "System.Reflection.TypeExtensions": "4.0.0-beta-*" - //"System.Xml": "4.0.10-beta-*" - } - } - } -} diff --git a/Dapper.DNX.Tests/project.lock.json b/Dapper.DNX.Tests/project.lock.json deleted file mode 100644 index b82ee7206..000000000 --- a/Dapper.DNX.Tests/project.lock.json +++ /dev/null @@ -1,1898 +0,0 @@ -{ - "locked": false, - "version": -9998, - "projectFileDependencyGroups": { - "": [ - "Dapper >= 1.41-*" - ], - ".NETFramework,Version=v4.5": [ - "System.Threading.Thread >= 4.0.0-beta-22816", - "framework/System.Data >= 4.0.0.0", - "framework/System.Xml >= 4.0.0.0" - ], - ".NETFramework,Version=v4.0": [ - "framework/System.Data >= 4.0.0.0", - "framework/System.Xml >= 4.0.0.0" - ], - "DNX,Version=v4.5.1": [ - "framework/System.Data >= 4.0.0.0", - "framework/System.Xml >= 4.0.0.0" - ], - "DNXCore,Version=v5.0": [ - "System.Console >= 4.0.0-beta-*", - "System.Reflection >= 4.0.10-beta-*", - "System.Linq >= 4.0.0-beta-*", - "System.Data.Common >= 4.0.0-beta-*", - "System.Data.SqlClient >= 4.0.0-beta-*", - "System.Threading >= 4.0.10-beta-*", - "System.Threading.Thread >= 4.0.0-beta-*", - "System.Reflection.TypeExtensions >= 4.0.0-beta-*" - ] - }, - "libraries": { - "Microsoft.CSharp/4.0.0-beta-22816": { - "serviceable": false, - "sha": "h+75iL9JfUbT0P8xOm9u0XSvk5+8GUD92VVwjbvJHqIcM23DVv2AjYVhVjTm6y923lNLn+qh/h4ViinL9RME2Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/Microsoft.CSharp.dll" - ], - "compileAssemblies": [ - "lib/contract/Microsoft.CSharp.dll" - ] - } - }, - "files": [ - "License.rtf", - "Microsoft.CSharp.4.0.0-beta-22816.nupkg", - "Microsoft.CSharp.4.0.0-beta-22816.nupkg.sha512", - "Microsoft.CSharp.nuspec", - "lib/aspnetcore50/Microsoft.CSharp.dll", - "lib/contract/Microsoft.CSharp.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/Microsoft.CSharp.dll" - ] - }, - "System.Collections/4.0.10-beta-22816": { - "serviceable": false, - "sha": "pFwiLMtcsvAx8ZFsSIDVSuPAXXW2z1gkmE/YqiMELlxPVHKyJGrUZoJCIBfVg1HERxMnd1dyj7ffqj5Nx3mzGQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Collections.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Collections.4.0.10-beta-22816.nupkg", - "System.Collections.4.0.10-beta-22816.nupkg.sha512", - "System.Collections.nuspec", - "lib/aspnetcore50/System.Collections.dll", - "lib/contract/System.Collections.dll", - "lib/net45/System.Collections.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.dll" - ] - }, - "System.Collections.Concurrent/4.0.10-beta-22816": { - "serviceable": false, - "sha": "mI2+5S3DG07KCur+L4sHleKLzFQEnXo8h3t4gS0awNFzyar8nVKNb95OkiECI68PLy/FM3HfVAuqb12qPw3CXg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Collections.Concurrent.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Collections.Concurrent.4.0.10-beta-22816.nupkg", - "System.Collections.Concurrent.4.0.10-beta-22816.nupkg.sha512", - "System.Collections.Concurrent.nuspec", - "lib/aspnetcore50/System.Collections.Concurrent.dll", - "lib/contract/System.Collections.Concurrent.dll", - "lib/net45/System.Collections.Concurrent.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.Concurrent.dll" - ] - }, - "System.Console/4.0.0-beta-22816": { - "serviceable": false, - "sha": "Uq1C1DP7MYuE0qqIaI15k/k3r2IKX6A/suIboAkOCLYoiG4jhFfc0ECJVsiXWJEWf7o5xRA0cz+hi+awB5HugA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Console.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Console.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Console.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Console.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Console.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Console.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Console.4.0.0-beta-22816.nupkg", - "System.Console.4.0.0-beta-22816.nupkg.sha512", - "System.Console.nuspec", - "lib/aspnetcore50/System.Console.dll", - "lib/contract/System.Console.dll", - "lib/net45/System.Console.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Console.dll" - ] - }, - "System.Data.Common/4.0.0-beta-22816": { - "serviceable": false, - "sha": "7cRRCmUPaUbscio/n1MUgnY1IetH7fH19iuLrfahncpWkEkE6cZSMprkWYFp5CsWrky0OXAnbiW8ANsSGhfbFQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.Common.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.Common.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Data.Common.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Data.Common.4.0.0-beta-22816.nupkg", - "System.Data.Common.4.0.0-beta-22816.nupkg.sha512", - "System.Data.Common.nuspec", - "lib/aspnetcore50/System.Data.Common.dll", - "lib/contract/System.Data.Common.dll", - "lib/net45/System.Data.Common.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.Common.dll" - ] - }, - "System.Data.SqlClient/4.0.0-beta-22816": { - "serviceable": false, - "sha": "HyCUhHjJ5iqsO9GtIqoulzPaJL7w9UeYMaazDhMbUQP1Yz2zalNQaFIV3ssFFEPmCVZwjeV+1zagDfoM0KahZQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Data.Common": "4.0.0-beta-22816", - "System.Globalization": "4.0.10-beta-22816", - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816", - "System.Xml.ReaderWriter": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.SqlClient.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.SqlClient.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Data.Common": "4.0.0-beta-22816", - "System.Globalization": "4.0.10-beta-22816", - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816", - "System.Xml.ReaderWriter": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Data.Common": "4.0.0-beta-22816", - "System.Globalization": "4.0.10-beta-22816", - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816", - "System.Xml.ReaderWriter": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.SqlClient.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.SqlClient.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Data.Common": "4.0.0-beta-22816", - "System.Globalization": "4.0.10-beta-22816", - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816", - "System.Xml.ReaderWriter": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Data.SqlClient.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Data.SqlClient.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Data.SqlClient.4.0.0-beta-22816.nupkg", - "System.Data.SqlClient.4.0.0-beta-22816.nupkg.sha512", - "System.Data.SqlClient.nuspec", - "lib/aspnetcore50/System.Data.SqlClient.dll", - "lib/contract/System.Data.SqlClient.dll", - "lib/net45/System.Data.SqlClient.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.SqlClient.dll", - "native/win7/x64/sni.dll", - "native/win7/x86/sni.dll" - ] - }, - "System.Dynamic.Runtime/4.0.10-beta-22816": { - "serviceable": false, - "sha": "xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Dynamic.Runtime.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Dynamic.Runtime.4.0.10-beta-22816.nupkg", - "System.Dynamic.Runtime.4.0.10-beta-22816.nupkg.sha512", - "System.Dynamic.Runtime.nuspec", - "lib/aspnetcore50/System.Dynamic.Runtime.dll", - "lib/contract/System.Dynamic.Runtime.dll", - "lib/net45/System.Dynamic.Runtime.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Dynamic.Runtime.dll" - ] - }, - "System.Globalization/4.0.10-beta-22816": { - "serviceable": false, - "sha": "Bedo0Nd7solBPW1k52EmlA+RKm+yxT2Os8fiu27DK2fyBa68pdFNM9ckjZ1X2DW0E9q49IxRMaWpflTBerMb8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Globalization.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Globalization.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Globalization.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Globalization.4.0.10-beta-22816.nupkg", - "System.Globalization.4.0.10-beta-22816.nupkg.sha512", - "System.Globalization.nuspec", - "lib/aspnetcore50/System.Globalization.dll", - "lib/contract/System.Globalization.dll", - "lib/net45/System.Globalization.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Globalization.dll" - ] - }, - "System.IO/4.0.10-beta-22816": { - "serviceable": false, - "sha": "/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.IO.dll" - ], - "compileAssemblies": [ - "lib/net45/System.IO.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.IO.dll" - ], - "compileAssemblies": [ - "lib/net45/System.IO.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.IO.dll" - ], - "compileAssemblies": [ - "lib/contract/System.IO.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.IO.4.0.10-beta-22816.nupkg", - "System.IO.4.0.10-beta-22816.nupkg.sha512", - "System.IO.nuspec", - "lib/aspnetcore50/System.IO.dll", - "lib/contract/System.IO.dll", - "lib/net45/System.IO.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.IO.dll" - ] - }, - "System.Linq/4.0.0-beta-22816": { - "serviceable": false, - "sha": "QlwRD8FTiYAZ7BxEjB5u9vjKaAHZ6KvuZYm+4tjYduTIWpFI3o34UjowJXCaPlLwc8USRshAXLgnsQ3iaOjv8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Linq.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Linq.4.0.0-beta-22816.nupkg", - "System.Linq.4.0.0-beta-22816.nupkg.sha512", - "System.Linq.nuspec", - "lib/aspnetcore50/System.Linq.dll", - "lib/contract/System.Linq.dll", - "lib/net45/System.Linq.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.dll" - ] - }, - "System.Linq.Expressions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Linq.Expressions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Linq.Expressions.4.0.10-beta-22816.nupkg", - "System.Linq.Expressions.4.0.10-beta-22816.nupkg.sha512", - "System.Linq.Expressions.nuspec", - "lib/aspnetcore50/System.Linq.Expressions.dll", - "lib/contract/System.Linq.Expressions.dll", - "lib/net45/System.Linq.Expressions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.Expressions.dll" - ] - }, - "System.ObjectModel/4.0.10-beta-22816": { - "serviceable": false, - "sha": "Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/contract/System.ObjectModel.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.ObjectModel.4.0.10-beta-22816.nupkg", - "System.ObjectModel.4.0.10-beta-22816.nupkg.sha512", - "System.ObjectModel.nuspec", - "lib/aspnetcore50/System.ObjectModel.dll", - "lib/contract/System.ObjectModel.dll", - "lib/net45/System.ObjectModel.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.ObjectModel.dll" - ] - }, - "System.Reflection/4.0.10-beta-22816": { - "serviceable": false, - "sha": "vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.4.0.10-beta-22816.nupkg", - "System.Reflection.4.0.10-beta-22816.nupkg.sha512", - "System.Reflection.nuspec", - "lib/aspnetcore50/System.Reflection.dll", - "lib/contract/System.Reflection.dll", - "lib/net45/System.Reflection.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.dll" - ] - }, - "System.Reflection.Emit/4.0.0-beta-22816": { - "serviceable": false, - "sha": "vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.dll", - "lib/contract/System.Reflection.Emit.dll", - "lib/net45/System.Reflection.Emit.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.dll" - ] - }, - "System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": { - "serviceable": false, - "sha": "dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.ILGeneration.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.ILGeneration.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll", - "lib/contract/System.Reflection.Emit.ILGeneration.dll", - "lib/net45/System.Reflection.Emit.ILGeneration.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.ILGeneration.dll" - ] - }, - "System.Reflection.Emit.Lightweight/4.0.0-beta-22816": { - "serviceable": false, - "sha": "86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.Lightweight.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.Lightweight.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll", - "lib/contract/System.Reflection.Emit.Lightweight.dll", - "lib/net45/System.Reflection.Emit.Lightweight.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.Lightweight.dll" - ] - }, - "System.Reflection.Primitives/4.0.0-beta-22816": { - "serviceable": false, - "sha": "LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Primitives.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Primitives.4.0.0-beta-22816.nupkg", - "System.Reflection.Primitives.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Primitives.nuspec", - "lib/aspnetcore50/System.Reflection.Primitives.dll", - "lib/contract/System.Reflection.Primitives.dll", - "lib/net45/System.Reflection.Primitives.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Primitives.dll" - ] - }, - "System.Reflection.TypeExtensions/4.0.0-beta-22816": { - "serviceable": false, - "sha": "VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.TypeExtensions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.TypeExtensions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg", - "System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.TypeExtensions.nuspec", - "lib/aspnetcore50/System.Reflection.TypeExtensions.dll", - "lib/contract/System.Reflection.TypeExtensions.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.TypeExtensions.dll" - ] - }, - "System.Runtime/4.0.20-beta-22816": { - "serviceable": false, - "sha": "sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": {}, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.ComponentModel.Composition", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": {}, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": {}, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.ComponentModel.Composition", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": {}, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Runtime.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Runtime.4.0.20-beta-22816.nupkg", - "System.Runtime.4.0.20-beta-22816.nupkg.sha512", - "System.Runtime.nuspec", - "lib/aspnetcore50/System.Runtime.dll", - "lib/contract/System.Runtime.dll", - "lib/net45/System.Runtime.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.dll" - ] - }, - "System.Runtime.Extensions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "b8ymkNB0apTc/FCmyeB/Js1CMg8EBaOlM2biIKA94Dk0sT/yyGd8SyCeuZXiCGCIk6HpSiIsIdX53rXgTWxH0w==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Runtime.Extensions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Runtime.Extensions.4.0.10-beta-22816.nupkg", - "System.Runtime.Extensions.4.0.10-beta-22816.nupkg.sha512", - "System.Runtime.Extensions.nuspec", - "lib/aspnetcore50/System.Runtime.Extensions.dll", - "lib/contract/System.Runtime.Extensions.dll", - "lib/net45/System.Runtime.Extensions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.Extensions.dll" - ] - }, - "System.Text.Encoding/4.0.10-beta-22816": { - "serviceable": false, - "sha": "QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.Encoding.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.Encoding.4.0.10-beta-22816.nupkg", - "System.Text.Encoding.4.0.10-beta-22816.nupkg.sha512", - "System.Text.Encoding.nuspec", - "lib/aspnetcore50/System.Text.Encoding.dll", - "lib/contract/System.Text.Encoding.dll", - "lib/net45/System.Text.Encoding.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.dll" - ] - }, - "System.Text.Encoding.CodePages/4.0.0-beta-22816": { - "serviceable": false, - "sha": "q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.Encoding.CodePages.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.Encoding.CodePages.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg", - "System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg.sha512", - "System.Text.Encoding.CodePages.nuspec", - "lib/aspnetcore50/System.Text.Encoding.CodePages.dll", - "lib/contract/System.Text.Encoding.CodePages.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.CodePages.dll" - ] - }, - "System.Text.RegularExpressions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.RegularExpressions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.RegularExpressions.4.0.10-beta-22816.nupkg", - "System.Text.RegularExpressions.4.0.10-beta-22816.nupkg.sha512", - "System.Text.RegularExpressions.nuspec", - "lib/aspnetcore50/System.Text.RegularExpressions.dll", - "lib/contract/System.Text.RegularExpressions.dll", - "lib/net45/System.Text.RegularExpressions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.RegularExpressions.dll" - ] - }, - "System.Threading/4.0.10-beta-22816": { - "serviceable": false, - "sha": "GO4X3FuGlw4DJH+UbbKDXKnyyWiwlPJIX+Ys0UCzSdAPneBA42dPb2+kRakWy+wo6n6Gcv7ckkfa3j8MSSxbhg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Threading.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Threading.4.0.10-beta-22816.nupkg", - "System.Threading.4.0.10-beta-22816.nupkg.sha512", - "System.Threading.nuspec", - "lib/aspnetcore50/System.Threading.dll", - "lib/contract/System.Threading.dll", - "lib/net45/System.Threading.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.dll" - ] - }, - "System.Threading.Tasks/4.0.10-beta-22816": { - "serviceable": false, - "sha": "e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Threading.Tasks.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Threading.Tasks.4.0.10-beta-22816.nupkg", - "System.Threading.Tasks.4.0.10-beta-22816.nupkg.sha512", - "System.Threading.Tasks.nuspec", - "lib/aspnetcore50/System.Threading.Tasks.dll", - "lib/contract/System.Threading.Tasks.dll", - "lib/net45/System.Threading.Tasks.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Tasks.dll" - ] - }, - "System.Threading.Thread/4.0.0-beta-22816": { - "serviceable": false, - "sha": "hq1pNoES0jEKslftDhBeJnRUBSjEepiya+39oH/7yCvOp4xMnXHlWe9G7ZS/dg2n4k+3VY21AUifisybcFjcCQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Thread.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Thread.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Thread.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Thread.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Threading.Thread.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Threading.Thread.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Threading.Thread.4.0.0-beta-22816.nupkg", - "System.Threading.Thread.4.0.0-beta-22816.nupkg.sha512", - "System.Threading.Thread.nuspec", - "lib/aspnetcore50/System.Threading.Thread.dll", - "lib/contract/System.Threading.Thread.dll", - "lib/net45/System.Threading.Thread.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Thread.dll" - ] - }, - "System.Xml.ReaderWriter/4.0.10-beta-22816": { - "serviceable": false, - "sha": "G0aLPtC/phTfiJPwe0VA3tB3x8YFQ1dHFuE1xaHNr9eQm/AfBp4Pk+fn3s7ABJDus/T89EtIHQ9C+O6VmqXIQQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Xml" - ], - "runtimeAssemblies": [ - "lib/net45/System.Xml.ReaderWriter.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Xml.ReaderWriter.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Xml" - ], - "runtimeAssemblies": [ - "lib/net45/System.Xml.ReaderWriter.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Xml.ReaderWriter.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Xml.ReaderWriter.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Xml.ReaderWriter.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg", - "System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg.sha512", - "System.Xml.ReaderWriter.nuspec", - "lib/aspnetcore50/System.Xml.ReaderWriter.dll", - "lib/contract/System.Xml.ReaderWriter.dll", - "lib/net45/System.Xml.ReaderWriter.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Xml.ReaderWriter.dll" - ] - } - } -} \ No newline at end of file diff --git a/Dapper.DNX.sln b/Dapper.DNX.sln deleted file mode 100644 index a501c3dc2..000000000 --- a/Dapper.DNX.sln +++ /dev/null @@ -1,42 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper", "Dapper\Dapper.xproj", "{088D8CC4-E71E-44B6-9B87-4060B043983D}" -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper.DNX.Tests", "Dapper.DNX.Tests\Dapper.DNX.Tests.xproj", "{B6EAE030-3119-49C0-ADB5-39E25BA60C4C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{03340C6E-4176-4C42-9C76-D5DFC79D1A22}" - ProjectSection(SolutionItems) = preProject - Tests\Assert.cs = Tests\Assert.cs - Tests\Program.cs = Tests\Program.cs - Tests\Tests.cs = Tests\Tests.cs - DapperTests NET45\Tests.cs = DapperTests NET45\Tests.cs - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{ECD7C7BC-176D-49E7-8DB2-FCF248702F87}" - ProjectSection(SolutionItems) = preProject - Dapper NET40\SqlMapper.cs = Dapper NET40\SqlMapper.cs - Dapper NET45\SqlMapperAsync.cs = Dapper NET45\SqlMapperAsync.cs - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {088D8CC4-E71E-44B6-9B87-4060B043983D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {088D8CC4-E71E-44B6-9B87-4060B043983D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {088D8CC4-E71E-44B6-9B87-4060B043983D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {088D8CC4-E71E-44B6-9B87-4060B043983D}.Release|Any CPU.Build.0 = Release|Any CPU - {B6EAE030-3119-49C0-ADB5-39E25BA60C4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6EAE030-3119-49C0-ADB5-39E25BA60C4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6EAE030-3119-49C0-ADB5-39E25BA60C4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6EAE030-3119-49C0-ADB5-39E25BA60C4C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Dapper.EntityFramework NET40 SNK/App.config b/Dapper.EntityFramework NET40 SNK/App.config deleted file mode 100644 index 3aa9e9656..000000000 --- a/Dapper.EntityFramework NET40 SNK/App.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
- - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40 SNK/Dapper.EntityFramework NET40 SNK.csproj b/Dapper.EntityFramework NET40 SNK/Dapper.EntityFramework NET40 SNK.csproj deleted file mode 100644 index 82c32a1f8..000000000 --- a/Dapper.EntityFramework NET40 SNK/Dapper.EntityFramework NET40 SNK.csproj +++ /dev/null @@ -1,119 +0,0 @@ - - - - - Debug - AnyCPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF} - Library - Properties - Dapper.EntityFramework - Dapper.EntityFramework - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.EntityFramework.XML - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.EntityFramework.XML - true - - - true - - - ..\Dapper.snk - - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net40\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net40\EntityFramework.SqlServer.dll - - - True - ..\packages\Microsoft.SqlServer.Types.11.0.2\lib\net20\Microsoft.SqlServer.Types.dll - - - - - - - - - - - - - DbGeographyHandler.cs - - - DbGeometryHandler.cs - - - Handlers.cs - - - AssemblyInfo.cs - - - - - - - - - - - - - {437f12a2-6ab5-43bf-86ba-dd62de17c2a7} - Dapper NET40 SNK - - - - - SqlServerTypes\x64\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x64\SqlServerSpatial110.dll - PreserveNewest - - - SqlServerTypes\x86\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x86\SqlServerSpatial110.dll - PreserveNewest - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40 SNK/SqlServerTypes/Loader.cs b/Dapper.EntityFramework NET40 SNK/SqlServerTypes/Loader.cs deleted file mode 100644 index 891102912..000000000 --- a/Dapper.EntityFramework NET40 SNK/SqlServerTypes/Loader.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace SqlServerTypes -{ - /// - /// Utility methods related to CLR Types for SQL Server - /// - internal class Utilities - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern IntPtr LoadLibrary(string libname); - - /// - /// Loads the required native assemblies for the current architecture (x86 or x64) - /// - /// - /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications - /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. - /// - public static void LoadNativeAssemblies(string rootApplicationPath) - { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); - } - - private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) - { - var path = Path.Combine(nativeBinaryPath, assemblyName); - var ptr = LoadLibrary(path); - if (ptr == IntPtr.Zero) - { - throw new Exception(string.Format( - "Error loading {0} (ErrorCode: {1})", - assemblyName, - Marshal.GetLastWin32Error())); - } - } - } -} \ No newline at end of file diff --git a/Dapper.EntityFramework NET40 SNK/SqlServerTypes/readme.htm b/Dapper.EntityFramework NET40 SNK/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/Dapper.EntityFramework NET40 SNK/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40 SNK/packages.config b/Dapper.EntityFramework NET40 SNK/packages.config deleted file mode 100644 index b791c4892..000000000 --- a/Dapper.EntityFramework NET40 SNK/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40/App.config b/Dapper.EntityFramework NET40/App.config deleted file mode 100644 index 3aa9e9656..000000000 --- a/Dapper.EntityFramework NET40/App.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
- - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40/Dapper.EntityFramework NET40.csproj b/Dapper.EntityFramework NET40/Dapper.EntityFramework NET40.csproj deleted file mode 100644 index 2bbe38499..000000000 --- a/Dapper.EntityFramework NET40/Dapper.EntityFramework NET40.csproj +++ /dev/null @@ -1,113 +0,0 @@ - - - - - Debug - AnyCPU - {2544DFBA-7F64-4003-9C36-D8337F770A36} - Library - Properties - Dapper.EntityFramework - Dapper.EntityFramework - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.EntityFramework.XML - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.EntityFramework.XML - true - - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net40\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net40\EntityFramework.SqlServer.dll - - - True - ..\packages\Microsoft.SqlServer.Types.11.0.2\lib\net20\Microsoft.SqlServer.Types.dll - - - - - - - - - - - - - DbGeographyHandler.cs - - - DbGeometryHandler.cs - - - Handlers.cs - - - AssemblyInfo.cs - - - - - - - - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - - - - - - - - SqlServerTypes\x64\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x64\SqlServerSpatial110.dll - PreserveNewest - - - SqlServerTypes\x86\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x86\SqlServerSpatial110.dll - PreserveNewest - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40/SqlServerTypes/Loader.cs b/Dapper.EntityFramework NET40/SqlServerTypes/Loader.cs deleted file mode 100644 index 891102912..000000000 --- a/Dapper.EntityFramework NET40/SqlServerTypes/Loader.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace SqlServerTypes -{ - /// - /// Utility methods related to CLR Types for SQL Server - /// - internal class Utilities - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern IntPtr LoadLibrary(string libname); - - /// - /// Loads the required native assemblies for the current architecture (x86 or x64) - /// - /// - /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications - /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. - /// - public static void LoadNativeAssemblies(string rootApplicationPath) - { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); - } - - private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) - { - var path = Path.Combine(nativeBinaryPath, assemblyName); - var ptr = LoadLibrary(path); - if (ptr == IntPtr.Zero) - { - throw new Exception(string.Format( - "Error loading {0} (ErrorCode: {1})", - assemblyName, - Marshal.GetLastWin32Error())); - } - } - } -} \ No newline at end of file diff --git a/Dapper.EntityFramework NET40/SqlServerTypes/readme.htm b/Dapper.EntityFramework NET40/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/Dapper.EntityFramework NET40/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/Dapper.EntityFramework NET40/packages.config b/Dapper.EntityFramework NET40/packages.config deleted file mode 100644 index b791c4892..000000000 --- a/Dapper.EntityFramework NET40/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45 SNK/App.config b/Dapper.EntityFramework NET45 SNK/App.config deleted file mode 100644 index 3aa9e9656..000000000 --- a/Dapper.EntityFramework NET45 SNK/App.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
- - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45 SNK/Dapper.EntityFramework NET45 SNK.csproj b/Dapper.EntityFramework NET45 SNK/Dapper.EntityFramework NET45 SNK.csproj deleted file mode 100644 index 717bf3976..000000000 --- a/Dapper.EntityFramework NET45 SNK/Dapper.EntityFramework NET45 SNK.csproj +++ /dev/null @@ -1,117 +0,0 @@ - - - - - Debug - AnyCPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06} - Library - Properties - Dapper.EntityFramework - Dapper.EntityFramework - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.EntityFramework.XML - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.EntityFramework.XML - true - - - true - - - ..\Dapper.snk - - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net45\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net45\EntityFramework.SqlServer.dll - - - True - ..\packages\Microsoft.SqlServer.Types.11.0.2\lib\net20\Microsoft.SqlServer.Types.dll - - - - - - - - - - - DbGeographyHandler.cs - - - DbGeometryHandler.cs - - - Handlers.cs - - - AssemblyInfo.cs - - - - - - - - - - {7140725c-8898-4f58-b566-628a80db4efa} - Dapper NET45 SNK - - - - - - - - SqlServerTypes\x64\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x64\SqlServerSpatial110.dll - PreserveNewest - - - SqlServerTypes\x86\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x86\SqlServerSpatial110.dll - PreserveNewest - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45 SNK/SqlServerTypes/Loader.cs b/Dapper.EntityFramework NET45 SNK/SqlServerTypes/Loader.cs deleted file mode 100644 index 891102912..000000000 --- a/Dapper.EntityFramework NET45 SNK/SqlServerTypes/Loader.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace SqlServerTypes -{ - /// - /// Utility methods related to CLR Types for SQL Server - /// - internal class Utilities - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern IntPtr LoadLibrary(string libname); - - /// - /// Loads the required native assemblies for the current architecture (x86 or x64) - /// - /// - /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications - /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. - /// - public static void LoadNativeAssemblies(string rootApplicationPath) - { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); - } - - private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) - { - var path = Path.Combine(nativeBinaryPath, assemblyName); - var ptr = LoadLibrary(path); - if (ptr == IntPtr.Zero) - { - throw new Exception(string.Format( - "Error loading {0} (ErrorCode: {1})", - assemblyName, - Marshal.GetLastWin32Error())); - } - } - } -} \ No newline at end of file diff --git a/Dapper.EntityFramework NET45 SNK/SqlServerTypes/readme.htm b/Dapper.EntityFramework NET45 SNK/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/Dapper.EntityFramework NET45 SNK/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45 SNK/packages.config b/Dapper.EntityFramework NET45 SNK/packages.config deleted file mode 100644 index b265d5568..000000000 --- a/Dapper.EntityFramework NET45 SNK/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45/App.config b/Dapper.EntityFramework NET45/App.config deleted file mode 100644 index 3aa9e9656..000000000 --- a/Dapper.EntityFramework NET45/App.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
- - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45/Dapper.EntityFramework NET45.csproj b/Dapper.EntityFramework NET45/Dapper.EntityFramework NET45.csproj deleted file mode 100644 index e341927a0..000000000 --- a/Dapper.EntityFramework NET45/Dapper.EntityFramework NET45.csproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - AnyCPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999} - Library - Properties - Dapper.EntityFramework - Dapper.EntityFramework - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Dapper.EntityFramework.XML - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Dapper.EntityFramework.XML - true - - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net45\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.2-beta1\lib\net45\EntityFramework.SqlServer.dll - - - True - ..\packages\Microsoft.SqlServer.Types.11.0.2\lib\net20\Microsoft.SqlServer.Types.dll - - - - - - - - - - - - - - - - - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - - - SqlServerTypes\x64\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x64\SqlServerSpatial110.dll - PreserveNewest - - - SqlServerTypes\x86\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x86\SqlServerSpatial110.dll - PreserveNewest - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45/Properties/AssemblyInfo.cs b/Dapper.EntityFramework NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index 790774b62..000000000 --- a/Dapper.EntityFramework NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Dapper.EntityFramework")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper.EntityFramework")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[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("2400e6b9-a925-45d8-ab5a-07f119b0eedb")] - -// 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.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Dapper.EntityFramework NET45/SqlServerTypes/readme.htm b/Dapper.EntityFramework NET45/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/Dapper.EntityFramework NET45/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/Dapper.EntityFramework NET45/packages.config b/Dapper.EntityFramework NET45/packages.config deleted file mode 100644 index b265d5568..000000000 --- a/Dapper.EntityFramework NET45/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework.StrongName.nuspec b/Dapper.EntityFramework.StrongName.nuspec deleted file mode 100644 index 0f7ca6c66..000000000 --- a/Dapper.EntityFramework.StrongName.nuspec +++ /dev/null @@ -1,37 +0,0 @@ - - - - Dapper.EntityFramework.StrongName - 1.37 - Dapper entity framework type handlers (with a strong name) - Marc Gravell - Marc Gravell - http://www.apache.org/licenses/LICENSE-2.0 - http://code.google.com/p/dapper-dot-net/ - false - Extension handlers for entity framework - Adds support for DbGeography, etc - orm sql micro-orm - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework.StrongName/Dapper.EntityFramework.StrongName.csproj b/Dapper.EntityFramework.StrongName/Dapper.EntityFramework.StrongName.csproj new file mode 100644 index 000000000..fdc7382c0 --- /dev/null +++ b/Dapper.EntityFramework.StrongName/Dapper.EntityFramework.StrongName.csproj @@ -0,0 +1,28 @@ + + + Dapper.EntityFramework.StrongName + Dapper: Entity Framework type handlers (with a strong name) + Extension handlers for entity framework + Marc Gravell;Nick Craver + net451 + ../Dapper.snk + true + true + Dapper.EntityFramework.StrongName + orm;sql;micro-orm + + + + + + + + + + + + + + + + diff --git a/Dapper.EntityFramework.nuspec b/Dapper.EntityFramework.nuspec deleted file mode 100644 index 487361d82..000000000 --- a/Dapper.EntityFramework.nuspec +++ /dev/null @@ -1,37 +0,0 @@ - - - - Dapper.EntityFramework - 1.37 - Dapper entity framework type handlers - Marc Gravell - Marc Gravell - http://www.apache.org/licenses/LICENSE-2.0 - http://code.google.com/p/dapper-dot-net/ - false - Extension handlers for entity framework - Adds support for DbGeography, etc - orm sql micro-orm - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.EntityFramework/Dapper.EntityFramework.csproj b/Dapper.EntityFramework/Dapper.EntityFramework.csproj new file mode 100644 index 000000000..8d2976e78 --- /dev/null +++ b/Dapper.EntityFramework/Dapper.EntityFramework.csproj @@ -0,0 +1,22 @@ + + + Dapper.EntityFramework + Extension handlers for entity framework + Dapper entity framework type handlers + 1.50.2 + Marc Gravell;Nick Craver + net451 + orm;sql;micro-orm + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dapper.EntityFramework NET45/DbGeographyHandler.cs b/Dapper.EntityFramework/DbGeographyHandler.cs similarity index 62% rename from Dapper.EntityFramework NET45/DbGeographyHandler.cs rename to Dapper.EntityFramework/DbGeographyHandler.cs index 746c6c94a..c0355dc91 100644 --- a/Dapper.EntityFramework NET45/DbGeographyHandler.cs +++ b/Dapper.EntityFramework/DbGeographyHandler.cs @@ -8,23 +8,25 @@ namespace Dapper.EntityFramework { /// - /// Type-handler for the DbGeography spatial type + /// Type-handler for the DbGeography spatial type. /// - public class DbGeographyHandler : Dapper.SqlMapper.TypeHandler + public class DbGeographyHandler : SqlMapper.TypeHandler { /// - /// Create a new handler instance + /// Create a new handler instance. /// - protected DbGeographyHandler() { } + protected DbGeographyHandler() { /* create new */ } + /// /// Default handler instance /// public static readonly DbGeographyHandler Default = new DbGeographyHandler(); + /// - /// Assign the value of a parameter before a command executes + /// Assign the value of a parameter before a command executes. /// - /// The parameter to configure - /// Parameter value + /// The parameter to configure. + /// Parameter value. public override void SetValue(IDbDataParameter parameter, DbGeography value) { object parsed = null; @@ -33,22 +35,22 @@ public override void SetValue(IDbDataParameter parameter, DbGeography value) parsed = SqlGeography.STGeomFromWKB(new SqlBytes(value.AsBinary()), value.CoordinateSystemId); } parameter.Value = parsed ?? DBNull.Value; - if (parameter is SqlParameter) + if (parameter is SqlParameter sqlParameter) { - ((SqlParameter)parameter).UdtTypeName = "geography"; + sqlParameter.UdtTypeName = "geography"; } } + /// - /// Parse a database value back to a typed value + /// Parse a database value back to a typed value. /// - /// The value from the database - /// The typed value + /// The value from the database. + /// The typed value. public override DbGeography Parse(object value) { if (value == null || value is DBNull) return null; - if (value is SqlGeography) + if (value is SqlGeography geo) { - var geo = (SqlGeography)value; return DbGeography.FromBinary(geo.STAsBinary().Value); } return DbGeography.FromText(value.ToString()); diff --git a/Dapper.EntityFramework NET45/DbGeometryHandler.cs b/Dapper.EntityFramework/DbGeometryHandler.cs similarity index 66% rename from Dapper.EntityFramework NET45/DbGeometryHandler.cs rename to Dapper.EntityFramework/DbGeometryHandler.cs index c6b44b026..bd8582529 100644 --- a/Dapper.EntityFramework NET45/DbGeometryHandler.cs +++ b/Dapper.EntityFramework/DbGeometryHandler.cs @@ -8,23 +8,25 @@ namespace Dapper.EntityFramework { /// - /// Type-handler for the DbGeometry spatial type + /// Type-handler for the DbGeometry spatial type. /// - public class DbGeometryHandler : Dapper.SqlMapper.TypeHandler + public class DbGeometryHandler : SqlMapper.TypeHandler { /// - /// Create a new handler instance + /// Create a new handler instance. /// - protected DbGeometryHandler() { } + protected DbGeometryHandler() { /* create new */ } + /// - /// Default handler instance + /// Default handler instance. /// public static readonly DbGeometryHandler Default = new DbGeometryHandler(); + /// - /// Assign the value of a parameter before a command executes + /// Assign the value of a parameter before a command executes. /// - /// The parameter to configure - /// Parameter value + /// The parameter to configure. + /// Parameter value. public override void SetValue(IDbDataParameter parameter, DbGeometry value) { object parsed = null; @@ -38,17 +40,17 @@ public override void SetValue(IDbDataParameter parameter, DbGeometry value) ((SqlParameter)parameter).UdtTypeName = "geometry"; } } + /// - /// Parse a database value back to a typed value + /// Parse a database value back to a typed value. /// - /// The value from the database - /// The typed value + /// The value from the database. + /// The typed value. public override DbGeometry Parse(object value) { if (value == null || value is DBNull) return null; - if (value is SqlGeometry) + if (value is SqlGeometry geo) { - var geo = (SqlGeometry)value; return DbGeometry.FromBinary(geo.STAsBinary().Value); } return DbGeometry.FromText(value.ToString()); diff --git a/Dapper.EntityFramework NET45/Handlers.cs b/Dapper.EntityFramework/Handlers.cs similarity index 100% rename from Dapper.EntityFramework NET45/Handlers.cs rename to Dapper.EntityFramework/Handlers.cs diff --git a/Dapper.Rainbow NET45/Dapper.Rainbow NET45.csproj b/Dapper.Rainbow NET45/Dapper.Rainbow NET45.csproj deleted file mode 100644 index 2d55cf97a..000000000 --- a/Dapper.Rainbow NET45/Dapper.Rainbow NET45.csproj +++ /dev/null @@ -1,71 +0,0 @@ - - - - - Debug - AnyCPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613} - Library - Properties - Dapper.Rainbow - Dapper.Rainbow - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE;ASYNC - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE;ASYNC - prompt - 4 - - - - - - - - - - - Database.cs - - - IgnorePropertyAttribute.cs - - - Properties\AssemblyInfo.cs - - - Snapshotter.cs - - - SqlCompactDatabase.cs - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - - - \ No newline at end of file diff --git a/Dapper.Rainbow NET45/DatabaseAsync.cs b/Dapper.Rainbow NET45/DatabaseAsync.cs deleted file mode 100644 index 266ca90e4..000000000 --- a/Dapper.Rainbow NET45/DatabaseAsync.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Data; -using System.Data.Common; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; - -namespace Dapper -{ - public abstract partial class Database : IDisposable where TDatabase : Database, new() - { - public partial class Table - { - /// - /// Insert a row into the db asynchronously - /// - /// Either DynamicParameters or an anonymous type or concrete type - /// - public virtual async Task InsertAsync(dynamic data) - { - var o = (object)data; - List paramNames = GetParamNames(o); - paramNames.Remove("Id"); - - string cols = string.Join(",", paramNames); - string cols_params = string.Join(",", paramNames.Select(p => "@" + p)); - var sql = "set nocount on insert " + TableName + " (" + cols + ") values (" + cols_params + ") select cast(scope_identity() as int)"; - - return (await database.QueryAsync(sql, o).ConfigureAwait(false)).Single(); - } - - /// - /// Update a record in the DB asynchronously - /// - /// - /// - /// - public Task UpdateAsync(TId id, dynamic data) - { - List paramNames = GetParamNames((object)data); - - var builder = new StringBuilder(); - builder.Append("update ").Append(TableName).Append(" set "); - builder.AppendLine(string.Join(",", paramNames.Where(n => n != "Id").Select(p => p + "= @" + p))); - builder.Append("where Id = @Id"); - - DynamicParameters parameters = new DynamicParameters(data); - parameters.Add("Id", id); - - return database.ExecuteAsync(builder.ToString(), parameters); - } - - /// - /// Delete a record for the DB asynchronously - /// - /// - /// - public async Task DeleteAsync(TId id) - { - return (await database.ExecuteAsync("delete from " + TableName + " where Id = @id", new { id }).ConfigureAwait(false)) > 0; - } - - /// - /// Grab a record with a particular Id from the DB asynchronously - /// - /// - /// - public async Task GetAsync(TId id) - { - return (await database.QueryAsync("select * from " + TableName + " where Id = @id", new { id }).ConfigureAwait(false)).FirstOrDefault(); - } - - public virtual async Task FirstAsync() - { - return (await database.QueryAsync("select top 1 * from " + TableName).ConfigureAwait(false)).FirstOrDefault(); - } - - public Task> AllAsync() - { - return database.QueryAsync("select * from " + TableName); - } - } - - public Task ExecuteAsync(string sql, dynamic param = null) - { - return connection.ExecuteAsync(sql, param as object, transaction, this.commandTimeout); - } - - public Task> QueryAsync(string sql, dynamic param = null) - { - return connection.QueryAsync(sql, param as object, transaction, commandTimeout); - } - - public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn); - } - - public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn); - } - - public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn); - } - - public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn); - } - - public Task> QueryAsync(string sql, dynamic param = null) - { - return connection.QueryAsync(sql, param as object, transaction); - } - - public Task QueryMultipleAsync(string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - return SqlMapper.QueryMultipleAsync(connection, sql, param, transaction, commandTimeout, commandType); - } - } -} diff --git a/Dapper.Rainbow.nuspec b/Dapper.Rainbow.nuspec deleted file mode 100644 index d488565e3..000000000 --- a/Dapper.Rainbow.nuspec +++ /dev/null @@ -1,38 +0,0 @@ - - - - Dapper.Rainbow - 0.2.0 - Dapper.Rainbow - Sam Saffron - Sam Saffron - http://www.apache.org/licenses/LICENSE-2.0 - http://code.google.com/p/dapper-dot-net/ - false - - Trivial micro-orm implemented on Dapper, provides with CRUD helpers. - - - A demo is available at https://gist.github.com/1599013 . - The implementation was extracted from http://data.stackexchange.com source at: http://code.google.com/p/stack-exchange-data-explorer/ . - Data explorer uses "Rainbow" exclusively for all database access. - - - * version 0.2: - .Net 4.5 async/await capability added. - * version 0.1: - A demo is available at https://gist.github.com/1599013 . - The implementation was extracted from http://data.stackexchange.com source at: http://code.google.com/p/stack-exchange-data-explorer/ . - Data explorer uses "Rainbow" exclusively for all database access. - - Copyright Sam Saffron 2012 - orm dapper micro-orm - - - - - - - - - \ No newline at end of file diff --git a/Dapper.Rainbow/Dapper.Rainbow.csproj b/Dapper.Rainbow/Dapper.Rainbow.csproj index 0f6e49cab..5712fff9a 100644 --- a/Dapper.Rainbow/Dapper.Rainbow.csproj +++ b/Dapper.Rainbow/Dapper.Rainbow.csproj @@ -1,63 +1,29 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB} - Library - Properties - Dapper.Rainbow Dapper.Rainbow - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + orm;sql;micro-orm + Dapper.Rainbow + Trivial micro-orm implemented on Dapper, provides with CRUD helpers. + Sam Saffron + 2017 Sam Saffron + net451;netstandard1.3 + + false - - - - - - - + - - - - - + - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - + + + + + + + + + - - \ No newline at end of file diff --git a/Dapper.Rainbow/Database.Async.cs b/Dapper.Rainbow/Database.Async.cs new file mode 100644 index 000000000..d247e9e18 --- /dev/null +++ b/Dapper.Rainbow/Database.Async.cs @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dapper +{ + public abstract partial class Database where TDatabase : Database, new() + { + public partial class Table + { + /// + /// Insert a row into the db asynchronously. + /// + /// Either DynamicParameters or an anonymous type or concrete type. + /// The Id of the inserted row. + public virtual async Task InsertAsync(dynamic data) + { + var o = (object)data; + List paramNames = GetParamNames(o); + paramNames.Remove("Id"); + + string cols = string.Join(",", paramNames); + string colsParams = string.Join(",", paramNames.Select(p => "@" + p)); + var sql = "set nocount on insert " + TableName + " (" + cols + ") values (" + colsParams + ") select cast(scope_identity() as int)"; + + return (await database.QueryAsync(sql, o).ConfigureAwait(false)).Single(); + } + + /// + /// Update a record in the DB asynchronously. + /// + /// The Id of the record to update. + /// The new record. + /// The number of affeced rows. + public Task UpdateAsync(TId id, dynamic data) + { + List paramNames = GetParamNames((object)data); + + var builder = new StringBuilder(); + builder.Append("update ").Append(TableName).Append(" set "); + builder.AppendLine(string.Join(",", paramNames.Where(n => n != "Id").Select(p => p + "= @" + p))); + builder.Append("where Id = @Id"); + + var parameters = new DynamicParameters(data); + parameters.Add("Id", id); + + return database.ExecuteAsync(builder.ToString(), parameters); + } + + /// + /// Asynchronously deletes a record for the DB. + /// + /// The Id of the record to delete. + /// The number of rows affected. + public async Task DeleteAsync(TId id) => + (await database.ExecuteAsync("delete from " + TableName + " where Id = @id", new { id }).ConfigureAwait(false)) > 0; + + /// + /// Asynchronously gets a record with a particular Id from the DB. + /// + /// The primary key of the table to fetch. + /// The record with the specified Id. + public Task GetAsync(TId id) => + database.QueryFirstOrDefaultAsync("select * from " + TableName + " where Id = @id", new { id }); + + /// + /// Asynchronously gets the first row from this table (order determined by the database provider). + /// + /// Data from the first table row. + public virtual Task FirstAsync() => + database.QueryFirstOrDefaultAsync("select top 1 * from " + TableName); + + /// + /// Asynchronously gets the all rows from this table. + /// + /// Data from all table rows. + public Task> AllAsync() => + database.QueryAsync("select * from " + TableName); + } + + /// + /// Asynchronously executes SQL against the current database. + /// + /// The SQL to execute. + /// The parameters to use. + /// The number of rows affected. + public Task ExecuteAsync(string sql, dynamic param = null) => + _connection.ExecuteAsync(sql, param as object, _transaction, _commandTimeout); + + /// + /// Asynchronously queries the current database. + /// + /// The type to return. + /// The SQL to execute. + /// The parameters to use. + /// An enumerable of for the rows fetched. + public Task> QueryAsync(string sql, dynamic param = null) => + _connection.QueryAsync(sql, param as object, _transaction, _commandTimeout); + + /// + /// Asynchronously queries the current database for a single record. + /// + /// The type to return. + /// The SQL to execute. + /// The parameters to use. + /// An enumerable of for the rows fetched. + public Task QueryFirstOrDefaultAsync(string sql, dynamic param = null) => + _connection.QueryFirstOrDefaultAsync(sql, param as object, _transaction, _commandTimeout); + + /// + /// Perform a asynchronous multi-mapping query with 2 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a asynchronous multi-mapping query with 3 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a asynchronous multi-mapping query with 4 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a asynchronous multi-mapping query with 5 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public Task> QueryAsync(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.QueryAsync(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The SQL to execute. + /// The parameters to use. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public Task> QueryAsync(string sql, dynamic param = null) => + _connection.QueryAsync(sql, param as object, _transaction); + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + public Task QueryMultipleAsync(string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + SqlMapper.QueryMultipleAsync(_connection, sql, param, transaction, commandTimeout, commandType); + } +} diff --git a/Dapper.Rainbow/Database.cs b/Dapper.Rainbow/Database.cs index 758c35c0d..7bd0f91c4 100644 --- a/Dapper.Rainbow/Database.cs +++ b/Dapper.Rainbow/Database.cs @@ -1,41 +1,46 @@ -/* - License: http://www.apache.org/licenses/LICENSE-2.0 - Home page: http://code.google.com/p/dapper-dot-net/ -*/ - -using System; +using System; using System.Collections.Generic; using System.Linq; -using System.Web; using System.Data; -using Dapper; using System.Collections.Concurrent; using System.Reflection; using System.Text; using System.Data.Common; -using System.Diagnostics; using System.Reflection.Emit; namespace Dapper { /// - /// A container for a database, assumes all the tables have an Id column named Id + /// Represents a database, assumes all the tables have an Id column named Id /// - /// + /// The type of database this represents. public abstract partial class Database : IDisposable where TDatabase : Database, new() { + /// + /// A database table of type and primary key of type . + /// + /// The type of object in this table. + /// The type of the primary key for this table. public partial class Table { internal Database database; internal string tableName; internal string likelyTableName; + /// + /// Creates a table in the specified database with a given name. + /// + /// The database this table belongs in. + /// The name for this table. public Table(Database database, string likelyTableName) { this.database = database; this.likelyTableName = likelyTableName; } + /// + /// The name for this table. + /// public string TableName { get @@ -57,18 +62,18 @@ public string TableName paramNames.Remove("Id"); string cols = string.Join(",", paramNames); - string cols_params = string.Join(",", paramNames.Select(p => "@" + p)); - var sql = "set nocount on insert " + TableName + " (" + cols + ") values (" + cols_params + ") select cast(scope_identity() as int)"; + string colsParams = string.Join(",", paramNames.Select(p => "@" + p)); + var sql = "set nocount on insert " + TableName + " (" + cols + ") values (" + colsParams + ") select cast(scope_identity() as int)"; return database.Query(sql, o).Single(); } /// - /// Update a record in the DB + /// Update a record in the database. /// - /// - /// - /// + /// The primary key of the row to update. + /// The new object data. + /// The number of rows affected. public int Update(TId id, dynamic data) { List paramNames = GetParamNames((object)data); @@ -95,46 +100,53 @@ public bool Delete(TId id) } /// - /// Grab a record with a particular Id from the DB + /// Gets a record with a particular Id from the DB /// - /// - /// + /// The primary key of the table to fetch. + /// The record with the specified Id. public T Get(TId id) { - return database.Query("select * from " + TableName + " where Id = @id", new { id }).FirstOrDefault(); + return database.QueryFirstOrDefault("select * from " + TableName + " where Id = @id", new { id }); } + /// + /// Gets the first row from this table (order determined by the database provider). + /// + /// Data from the first table row. public virtual T First() { - return database.Query("select top 1 * from " + TableName).FirstOrDefault(); + return database.QueryFirstOrDefault("select top 1 * from " + TableName); } + /// + /// Gets the all rows from this table. + /// + /// Data from all table rows. public IEnumerable All() { return database.Query("select * from " + TableName); } - static ConcurrentDictionary> paramNameCache = new ConcurrentDictionary>(); + private static readonly ConcurrentDictionary> paramNameCache = new ConcurrentDictionary>(); internal static List GetParamNames(object o) { - if (o is DynamicParameters) + if (o is DynamicParameters parameters) { - return (o as DynamicParameters).ParameterNames.ToList(); + return parameters.ParameterNames.ToList(); } - List paramNames; - if (!paramNameCache.TryGetValue(o.GetType(), out paramNames)) + if (!paramNameCache.TryGetValue(o.GetType(), out List paramNames)) { paramNames = new List(); - foreach (var prop in o.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public)) + foreach (var prop in o.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.GetGetMethod(false) != null)) { var attribs = prop.GetCustomAttributes(typeof(IgnorePropertyAttribute), true); var attr = attribs.FirstOrDefault() as IgnorePropertyAttribute; - if (attr==null || (attr != null && !attr.Value)) + if (attr == null || (!attr.Value)) { paramNames.Add(prop.Name); - } + } } paramNameCache[o.GetType()] = paramNames; } @@ -142,18 +154,33 @@ internal static List GetParamNames(object o) } } - public class Table : Table { + /// + /// A database table of type and primary key of type . + /// + /// The type of object in this table. + public class Table : Table + { + /// + /// Creates a table in the specified database with a given name. + /// + /// The database this table belongs in. + /// The name for this table. public Table(Database database, string likelyTableName) - : base(database, likelyTableName) - { - } - } - - DbConnection connection; - int commandTimeout; - DbTransaction transaction; + : base(database, likelyTableName) + { + } + } + private DbConnection _connection; + private int _commandTimeout; + private DbTransaction _transaction; + /// + /// Initializes the database. + /// + /// The connection to use. + /// The timeout to use (in seconds). + /// public static TDatabase Init(DbConnection connection, int commandTimeout) { TDatabase db = new TDatabase(); @@ -165,48 +192,70 @@ public static TDatabase Init(DbConnection connection, int commandTimeout) internal void InitDatabase(DbConnection connection, int commandTimeout) { - this.connection = connection; - this.commandTimeout = commandTimeout; - if (tableConstructor == null) - { - tableConstructor = CreateTableConstructorForTable(); - } + _connection = connection; + _commandTimeout = commandTimeout; + tableConstructor = tableConstructor ?? CreateTableConstructorForTable(); tableConstructor(this as TDatabase); } internal virtual Action CreateTableConstructorForTable() { - return CreateTableConstructor(typeof(Table<>)); + return CreateTableConstructor(typeof(Table<>), typeof(Table<,>)); } + /// + /// Begins a transaction in this database. + /// + /// The isolation level to use. public void BeginTransaction(IsolationLevel isolation = IsolationLevel.ReadCommitted) { - transaction = connection.BeginTransaction(isolation); + _transaction = _connection.BeginTransaction(isolation); } + /// + /// Commits the current transaction in this database. + /// public void CommitTransaction() { - transaction.Commit(); - transaction = null; + _transaction.Commit(); + _transaction = null; } + /// + /// Rolls back the current transaction in this database. + /// public void RollbackTransaction() { - transaction.Rollback(); - transaction = null; + _transaction.Rollback(); + _transaction = null; } + /// + /// Gets a table creation function for the specified type. + /// + /// The object type to create a table for. + /// The function to create the table. protected Action CreateTableConstructor(Type tableType) { - var dm = new DynamicMethod("ConstructInstances", null, new Type[] { typeof(TDatabase) }, true); + return CreateTableConstructor(new[] { tableType }); + } + + /// + /// Gets a table creation function for the specified types. + /// + /// The object types to create a table for. + /// The function to create the tables. + protected Action CreateTableConstructor(params Type[] tableTypes) + { + var dm = new DynamicMethod("ConstructInstances", null, new[] { typeof(TDatabase) }, true); var il = dm.GetILGenerator(); var setters = GetType().GetProperties() - .Where(p => p.PropertyType.IsGenericType && p.PropertyType.GetGenericTypeDefinition() == tableType) + .Where(p => p.PropertyType.IsGenericType() && tableTypes.Contains(p.PropertyType.GetGenericTypeDefinition())) .Select(p => Tuple.Create( p.GetSetMethod(true), - p.PropertyType.GetConstructor(new Type[] { typeof(TDatabase), typeof(string) }), + p.PropertyType.GetConstructor(new[] { typeof(TDatabase), typeof(string) }), p.Name, p.DeclaringType )); @@ -243,12 +292,10 @@ protected Action CreateTableConstructor(Type tableType) return (Action)dm.CreateDelegate(typeof(Action)); } - static ConcurrentDictionary tableNameMap = new ConcurrentDictionary(); + private static readonly ConcurrentDictionary tableNameMap = new ConcurrentDictionary(); private string DetermineTableName(string likelyTableName) { - string name; - - if (!tableNameMap.TryGetValue(typeof(T), out name)) + if (!tableNameMap.TryGetValue(typeof(T), out string name)) { name = likelyTableName; if (!TableExists(name)) @@ -268,10 +315,10 @@ private bool TableExists(string name) name = name.Replace("[", ""); name = name.Replace("]", ""); - if(name.Contains(".")) + if (name.Contains(".")) { var parts = name.Split('.'); - if (parts.Count() == 2) + if (parts.Length == 2) { schemaName = parts[0]; name = parts[1]; @@ -279,65 +326,153 @@ private bool TableExists(string name) } var builder = new StringBuilder("select 1 from INFORMATION_SCHEMA.TABLES where "); - if (!String.IsNullOrEmpty(schemaName)) builder.Append("TABLE_SCHEMA = @schemaName AND "); + if (!string.IsNullOrEmpty(schemaName)) builder.Append("TABLE_SCHEMA = @schemaName AND "); builder.Append("TABLE_NAME = @name"); - return connection.Query(builder.ToString(), new { schemaName, name }, transaction: transaction).Count() == 1; + return _connection.Query(builder.ToString(), new { schemaName, name }, _transaction).Count() == 1; } - public int Execute(string sql, dynamic param = null) - { - return SqlMapper.Execute(connection, sql, param as object, transaction, commandTimeout: this.commandTimeout); - } - - public IEnumerable Query(string sql, dynamic param = null, bool buffered = true) - { - return SqlMapper.Query(connection, sql, param as object, transaction, buffered, commandTimeout); - } - - public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return SqlMapper.Query(connection, sql, map, param as object, transaction, buffered, splitOn); - } - - public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return SqlMapper.Query(connection, sql, map, param as object, transaction, buffered, splitOn); - } - - public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return SqlMapper.Query(connection, sql, map, param as object, transaction, buffered, splitOn); - } - - public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) - { - return SqlMapper.Query(connection, sql, map, param as object, transaction, buffered, splitOn); - } - - public IEnumerable Query(string sql, dynamic param = null, bool buffered = true) - { - return SqlMapper.Query(connection, sql, param as object, transaction, buffered); - } - - public Dapper.SqlMapper.GridReader QueryMultiple(string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) - { - return SqlMapper.QueryMultiple(connection, sql, param, transaction, commandTimeout, commandType); - } - - + /// + /// Executes SQL against the current database. + /// + /// The SQL to execute. + /// The parameters to use. + /// The number of rows affected. + public int Execute(string sql, dynamic param = null) => + _connection.Execute(sql, param as object, _transaction, _commandTimeout); + + /// + /// Queries the current database. + /// + /// The type to return. + /// The SQL to execute. + /// The parameters to use. + /// Whether to buffer the results. + /// An enumerable of for the rows fetched. + public IEnumerable Query(string sql, dynamic param = null, bool buffered = true) => + _connection.Query(sql, param as object, _transaction, buffered, _commandTimeout); + + /// + /// Queries the current database for a single record. + /// + /// The type to return. + /// The SQL to execute. + /// The parameters to use. + /// An enumerable of for the rows fetched. + public T QueryFirstOrDefault(string sql, dynamic param = null) => + _connection.QueryFirstOrDefault(sql, param as object, _transaction, _commandTimeout); + + /// + /// Perform a multi-mapping query with 2 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.Query(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a multi-mapping query with 3 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.Query(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a multi-mapping query with 4 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.Query(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Perform a multi-mapping query with 5 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The combined type to return. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// The field we should split and read the second object from (default: "Id"). + /// Number of seconds before command execution timeout. + /// An enumerable of . + public IEnumerable Query(string sql, Func map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null) => + _connection.Query(sql, map, param as object, transaction, buffered, splitOn, commandTimeout); + + /// + /// Return a sequence of dynamic objects with properties matching the columns + /// + /// The SQL to execute. + /// The parameters to use. + /// Whether the results should be buffered in memory. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public IEnumerable Query(string sql, dynamic param = null, bool buffered = true) => + _connection.Query(sql, param as object, _transaction, buffered); + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + public SqlMapper.GridReader QueryMultiple(string sql, dynamic param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + SqlMapper.QueryMultiple(_connection, sql, param, transaction, commandTimeout, commandType); + + /// + /// Disposes the current database, rolling back current transactions. + /// public void Dispose() { - if (connection.State != ConnectionState.Closed) + if (_connection.State != ConnectionState.Closed) { - if (transaction != null) - { - transaction.Rollback(); - } + _transaction?.Rollback(); - connection.Close(); - connection = null; + _connection.Close(); + _connection = null; } } } -} \ No newline at end of file +} diff --git a/Dapper.Rainbow/IgnorePropertyAttribute.cs b/Dapper.Rainbow/IgnorePropertyAttribute.cs index 7b5cd36ba..93b215673 100644 --- a/Dapper.Rainbow/IgnorePropertyAttribute.cs +++ b/Dapper.Rainbow/IgnorePropertyAttribute.cs @@ -2,14 +2,24 @@ namespace Dapper { + /// + /// Specifies whether a property should be ignored for database operations. + /// [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class IgnorePropertyAttribute : Attribute { + /// + /// Specifies whether a property should be ignored for database operations. + /// + /// Whether to ignore this property. public IgnorePropertyAttribute(bool ignore) { Value = ignore; } + /// + /// Whether to ignore this property. + /// public bool Value { get; set; } } } diff --git a/Dapper.Rainbow/Properties/AssemblyInfo.cs b/Dapper.Rainbow/Properties/AssemblyInfo.cs deleted file mode 100644 index 8ea5cd0f6..000000000 --- a/Dapper.Rainbow/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Dapper.Rainbow")] -[assembly: AssemblyDescription("I sample mini ORM implementation using Dapper")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper.Rainbow")] -[assembly: AssemblyCopyright("Sam Saffron Copyright © 2012")] -[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("e763c106-eef4-4654-afcc-c28fded057e5")] - -// 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("0.1.0.0")] -[assembly: AssemblyFileVersion("0.1.0.0")] diff --git a/Dapper.Rainbow/Snapshotter.cs b/Dapper.Rainbow/Snapshotter.cs index c83854280..ef6f8b0d5 100644 --- a/Dapper.Rainbow/Snapshotter.cs +++ b/Dapper.Rainbow/Snapshotter.cs @@ -1,209 +1,226 @@ -/* - License: http://www.apache.org/licenses/LICENSE-2.0 - Home page: http://code.google.com/p/dapper-dot-net/ -*/ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Reflection; -using System.Reflection.Emit; - -namespace Dapper -{ - public static class Snapshotter - { - public static Snapshot Start(T obj) - { - return new Snapshot(obj); - } - - public class Snapshot - { - static Func cloner; - static Func> differ; - T memberWiseClone; - T trackedObject; - - public Snapshot(T original) - { - memberWiseClone = Clone(original); - trackedObject = original; - } - - public class Change - { - public string Name { get; set; } - public object NewValue { get; set; } - } - - public DynamicParameters Diff() - { - return Diff(memberWiseClone, trackedObject); - } - - - private static T Clone(T myObject) - { - cloner = cloner ?? GenerateCloner(); - return cloner(myObject); - } - - private static DynamicParameters Diff(T original, T current) - { - var dm = new DynamicParameters(); - differ = differ ?? GenerateDiffer(); - foreach (var pair in differ(original, current)) - { - dm.Add(pair.Name, pair.NewValue); - } - return dm; - } - - - static List RelevantProperties() - { - return typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public) - .Where(p => - p.GetSetMethod() != null && - p.GetGetMethod() != null && - (p.PropertyType.IsValueType || - p.PropertyType == typeof(string) || - (p.PropertyType.IsGenericType && p.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))) - ).ToList(); - } - - - private static bool AreEqual(U first, U second) - { - if (first == null && second == null) return true; - if (first == null && second != null) return false; - return first.Equals(second); - } - - private static Func> GenerateDiffer() - { - - var dm = new DynamicMethod("DoDiff", typeof(List), new Type[] { typeof(T), typeof(T) }, true); - - var il = dm.GetILGenerator(); - // change list - il.DeclareLocal(typeof(List)); - il.DeclareLocal(typeof(Change)); - il.DeclareLocal(typeof(object)); // boxed change - - il.Emit(OpCodes.Newobj, typeof(List).GetConstructor(Type.EmptyTypes)); - // [list] - il.Emit(OpCodes.Stloc_0); - - foreach (var prop in RelevantProperties()) - { - // [] - il.Emit(OpCodes.Ldarg_0); - // [original] - il.Emit(OpCodes.Callvirt, prop.GetGetMethod()); - // [original prop val] - il.Emit(OpCodes.Ldarg_1); - // [original prop val, current] - il.Emit(OpCodes.Callvirt, prop.GetGetMethod()); - // [original prop val, current prop val] - - il.Emit(OpCodes.Dup); - // [original prop val, current prop val, current prop val] - - if (prop.PropertyType != typeof(string)) - { - il.Emit(OpCodes.Box, prop.PropertyType); - // [original prop val, current prop val, current prop val boxed] - } - - il.Emit(OpCodes.Stloc_2); - // [original prop val, current prop val] - - il.EmitCall(OpCodes.Call, typeof(Snapshot).GetMethod("AreEqual", BindingFlags.NonPublic | BindingFlags.Static).MakeGenericMethod(new Type[] { prop.PropertyType }), null); - // [result] - - Label skip = il.DefineLabel(); - il.Emit(OpCodes.Brtrue_S, skip); - // [] - - il.Emit(OpCodes.Newobj, typeof(Change).GetConstructor(Type.EmptyTypes)); - // [change] - il.Emit(OpCodes.Dup); - // [change,change] - - il.Emit(OpCodes.Stloc_1); - // [change] - - il.Emit(OpCodes.Ldstr, prop.Name); - // [change, name] - il.Emit(OpCodes.Callvirt, typeof(Change).GetMethod("set_Name")); - // [] - - il.Emit(OpCodes.Ldloc_1); - // [change] - - il.Emit(OpCodes.Ldloc_2); - // [change, boxed] - - il.Emit(OpCodes.Callvirt, typeof(Change).GetMethod("set_NewValue")); - // [] - - il.Emit(OpCodes.Ldloc_0); - // [change list] - il.Emit(OpCodes.Ldloc_1); - // [change list, change] - il.Emit(OpCodes.Callvirt, typeof(List).GetMethod("Add")); - // [] - - il.MarkLabel(skip); - } - - il.Emit(OpCodes.Ldloc_0); - // [change list] - il.Emit(OpCodes.Ret); - - return (Func>)dm.CreateDelegate(typeof(Func>)); - } - - - // adapted from http://stackoverflow.com/a/966466/17174 - private static Func GenerateCloner() - { - Delegate myExec = null; - var dm = new DynamicMethod("DoClone", typeof(T), new Type[] { typeof(T) }, true); - var ctor = typeof(T).GetConstructor(new Type[] { }); - - var il = dm.GetILGenerator(); - - il.DeclareLocal(typeof(T)); - - il.Emit(OpCodes.Newobj, ctor); - il.Emit(OpCodes.Stloc_0); - - foreach (var prop in RelevantProperties()) - { - il.Emit(OpCodes.Ldloc_0); - // [clone] - il.Emit(OpCodes.Ldarg_0); - // [clone, source] - il.Emit(OpCodes.Callvirt, prop.GetGetMethod()); - // [clone, source val] - il.Emit(OpCodes.Callvirt, prop.GetSetMethod()); - // [] - } - - // Load new constructed obj on eval stack -> 1 item on stack - il.Emit(OpCodes.Ldloc_0); - // Return constructed object. --> 0 items on stack - il.Emit(OpCodes.Ret); - - myExec = dm.CreateDelegate(typeof(Func)); - - return (Func)myExec; - } - } - } -} - +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Reflection.Emit; + +namespace Dapper +{ + /// + /// Snapshots an object for comparison later. + /// + public static class Snapshotter + { + /// + /// Starts the snapshot of an objec by making a copy of the current state. + /// + /// The type of object to snapshot. + /// The object to snapshot. + /// The snapshot of the object. + public static Snapshot Start(T obj) + { + return new Snapshot(obj); + } + + /// + /// A snapshot of an object's state. + /// + /// + public class Snapshot + { + private static Func cloner; + private static Func> differ; + private readonly T memberWiseClone; + private readonly T trackedObject; + + /// + /// Creates a snapshot from an object. + /// + /// The original object to snapshot. + public Snapshot(T original) + { + memberWiseClone = Clone(original); + trackedObject = original; + } + + /// + /// A holder for listing new values of changes fields and properties. + /// + public class Change + { + /// + /// The name of the field or property that changed. + /// + public string Name { get; set; } + /// + /// The new value of the field or property. + /// + public object NewValue { get; set; } + } + + /// + /// Does a diff between the original object and the current state. + /// + /// The list of the fields changes in the object. + public DynamicParameters Diff() + { + return Diff(memberWiseClone, trackedObject); + } + + private static T Clone(T myObject) + { + cloner = cloner ?? GenerateCloner(); + return cloner(myObject); + } + + private static DynamicParameters Diff(T original, T current) + { + var dm = new DynamicParameters(); + differ = differ ?? GenerateDiffer(); + foreach (var pair in differ(original, current)) + { + dm.Add(pair.Name, pair.NewValue); + } + return dm; + } + + private static List RelevantProperties() + { + return typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + .Where(p => + p.GetSetMethod(true) != null + && p.GetGetMethod(true) != null + && (p.PropertyType == typeof(string) + || p.PropertyType.IsValueType() + || (p.PropertyType.IsGenericType() && p.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))) + ).ToList(); + } + + private static bool AreEqual(U first, U second) + { + if (EqualityComparer.Default.Equals(first, default(U)) && EqualityComparer.Default.Equals(second, default(U))) return true; + if (EqualityComparer.Default.Equals(first, default(U))) return false; + return first.Equals(second); + } + + private static Func> GenerateDiffer() + { + var dm = new DynamicMethod("DoDiff", typeof(List), new[] { typeof(T), typeof(T) }, true); + + var il = dm.GetILGenerator(); + // change list + il.DeclareLocal(typeof(List)); + il.DeclareLocal(typeof(Change)); + il.DeclareLocal(typeof(object)); // boxed change + + il.Emit(OpCodes.Newobj, typeof(List).GetConstructor(Type.EmptyTypes)); + // [list] + il.Emit(OpCodes.Stloc_0); + + foreach (var prop in RelevantProperties()) + { + // [] + il.Emit(OpCodes.Ldarg_0); + // [original] + il.Emit(OpCodes.Callvirt, prop.GetGetMethod(true)); + // [original prop val] + il.Emit(OpCodes.Ldarg_1); + // [original prop val, current] + il.Emit(OpCodes.Callvirt, prop.GetGetMethod(true)); + // [original prop val, current prop val] + + il.Emit(OpCodes.Dup); + // [original prop val, current prop val, current prop val] + + if (prop.PropertyType != typeof(string)) + { + il.Emit(OpCodes.Box, prop.PropertyType); + // [original prop val, current prop val, current prop val boxed] + } + + il.Emit(OpCodes.Stloc_2); + // [original prop val, current prop val] + + il.EmitCall(OpCodes.Call, typeof(Snapshot).GetMethod(nameof(AreEqual), BindingFlags.NonPublic | BindingFlags.Static).MakeGenericMethod(new Type[] { prop.PropertyType }), null); + // [result] + + Label skip = il.DefineLabel(); + il.Emit(OpCodes.Brtrue_S, skip); + // [] + + il.Emit(OpCodes.Newobj, typeof(Change).GetConstructor(Type.EmptyTypes)); + // [change] + il.Emit(OpCodes.Dup); + // [change,change] + + il.Emit(OpCodes.Stloc_1); + // [change] + + il.Emit(OpCodes.Ldstr, prop.Name); + // [change, name] + il.Emit(OpCodes.Callvirt, typeof(Change).GetMethod("set_Name")); + // [] + + il.Emit(OpCodes.Ldloc_1); + // [change] + + il.Emit(OpCodes.Ldloc_2); + // [change, boxed] + + il.Emit(OpCodes.Callvirt, typeof(Change).GetMethod("set_NewValue")); + // [] + + il.Emit(OpCodes.Ldloc_0); + // [change list] + il.Emit(OpCodes.Ldloc_1); + // [change list, change] + il.Emit(OpCodes.Callvirt, typeof(List).GetMethod("Add")); + // [] + + il.MarkLabel(skip); + } + + il.Emit(OpCodes.Ldloc_0); + // [change list] + il.Emit(OpCodes.Ret); + + return (Func>)dm.CreateDelegate(typeof(Func>)); + } + + // adapted from https://stackoverflow.com/a/966466/17174 + private static Func GenerateCloner() + { + var dm = new DynamicMethod("DoClone", typeof(T), new Type[] { typeof(T) }, true); + var ctor = typeof(T).GetConstructor(new Type[] { }); + + var il = dm.GetILGenerator(); + + il.DeclareLocal(typeof(T)); + + il.Emit(OpCodes.Newobj, ctor); + il.Emit(OpCodes.Stloc_0); + + foreach (var prop in RelevantProperties()) + { + il.Emit(OpCodes.Ldloc_0); + // [clone] + il.Emit(OpCodes.Ldarg_0); + // [clone, source] + il.Emit(OpCodes.Callvirt, prop.GetGetMethod(true)); + // [clone, source val] + il.Emit(OpCodes.Callvirt, prop.GetSetMethod(true)); + // [] + } + + // Load new constructed obj on eval stack -> 1 item on stack + il.Emit(OpCodes.Ldloc_0); + // Return constructed object. --> 0 items on stack + il.Emit(OpCodes.Ret); + + var myExec = dm.CreateDelegate(typeof(Func)); + + return (Func)myExec; + } + } + } +} diff --git a/Dapper.Rainbow/SqlCompactDatabase.cs b/Dapper.Rainbow/SqlCompactDatabase.cs index e04633dd0..7698fdbd3 100644 --- a/Dapper.Rainbow/SqlCompactDatabase.cs +++ b/Dapper.Rainbow/SqlCompactDatabase.cs @@ -3,12 +3,25 @@ using System.Data.Common; using System.Linq; -namespace Dapper.Rainbow +namespace Dapper { - public abstract class SqlCompactDatabase : Database, IDisposable where TDatabase : Database, new() + /// + /// A SQL Compact specific implementation. + /// + /// The type of database. + public abstract class SqlCompactDatabase : Database where TDatabase : Database, new() { + /// + /// A SQL Compact specific table, which handles the syntax correctly across operations. + /// + /// The type in the table. public class SqlCompactTable : Table { + /// + /// Creates a table for a SQL Compact database. + /// + /// + /// public SqlCompactTable(Database database, string likelyTableName) : base(database, likelyTableName) { @@ -26,9 +39,9 @@ public SqlCompactTable(Database database, string likelyTableName) paramNames.Remove("Id"); string cols = string.Join(",", paramNames); - string cols_params = string.Join(",", paramNames.Select(p => "@" + p)); + string colsParams = string.Join(",", paramNames.Select(p => "@" + p)); - var sql = "insert " + TableName + " (" + cols + ") values (" + cols_params + ")"; + var sql = "insert " + TableName + " (" + cols + ") values (" + colsParams + ")"; if (database.Execute(sql, o) != 1) { return null; @@ -38,12 +51,17 @@ public SqlCompactTable(Database database, string likelyTableName) } } + /// + /// Initializes the databases. + /// + /// The connection to use. + /// The newly created database. public static TDatabase Init(DbConnection connection) { - TDatabase db = new TDatabase(); + var db = new TDatabase(); db.InitDatabase(connection, 0); return db; - } + } internal override Action CreateTableConstructorForTable() { diff --git a/Dapper.SqlBuilder NET45/Dapper.SqlBuilder NET45.csproj b/Dapper.SqlBuilder NET45/Dapper.SqlBuilder NET45.csproj deleted file mode 100644 index 6f1167dae..000000000 --- a/Dapper.SqlBuilder NET45/Dapper.SqlBuilder NET45.csproj +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Debug - AnyCPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC} - Library - Properties - Dapper.SqlBuilder - Dapper.SqlBuilder - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - SqlBuilder.cs - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - - - \ No newline at end of file diff --git a/Dapper.SqlBuilder NET45/Properties/AssemblyInfo.cs b/Dapper.SqlBuilder NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index 092e88393..000000000 --- a/Dapper.SqlBuilder NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -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("Dapper.SqlBuilder NET45")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper.SqlBuilder NET45")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[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("4db43514-7c62-4c98-a5f3-047110c106bb")] - -// 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/Dapper.SqlBuilder.nuspec b/Dapper.SqlBuilder.nuspec deleted file mode 100644 index 8641d31c4..000000000 --- a/Dapper.SqlBuilder.nuspec +++ /dev/null @@ -1,28 +0,0 @@ - - - - Dapper.SqlBuilder - 1.40.0 - Sam Saffron,Johan Danforth - Sam Saffron,Johan Danforth - http://www.apache.org/licenses/LICENSE-2.0 - http://code.google.com/p/dapper-dot-net/ - false - Dapper SqlBuilder component - The Dapper SqlBuilder component to build SQL queries dynamically. - orm sql micro-orm query sql sql-builder - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj b/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj index ecdc3ce13..173c24d0c 100644 --- a/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj +++ b/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj @@ -1,60 +1,25 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D} - Library - Properties - Dapper.SqlBuilder Dapper.SqlBuilder - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + orm;sql;micro-orm;query;sql-builder + Dapper SqlBuilder component + The Dapper SqlBuilder component, for building SQL queries dynamically. + Sam Saffron, Johan Danforth + net451;netstandard1.3 + + false + false + + + + + - - - - - - - - - - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - + + - - \ No newline at end of file diff --git a/Dapper.SqlBuilder/Properties/AssemblyInfo.cs b/Dapper.SqlBuilder/Properties/AssemblyInfo.cs deleted file mode 100644 index c28c4b0db..000000000 --- a/Dapper.SqlBuilder/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Dapper.SqlBuilder")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dapper.SqlBuilder")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[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("27491c26-c95d-44e5-b907-30559ef11265")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/Dapper.SqlBuilder/SqlBuilder.cs b/Dapper.SqlBuilder/SqlBuilder.cs index f3c256b40..c83097f42 100644 --- a/Dapper.SqlBuilder/SqlBuilder.cs +++ b/Dapper.SqlBuilder/SqlBuilder.cs @@ -1,193 +1,153 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Dapper -{ - public class SqlBuilder - { - Dictionary data = new Dictionary(); - int seq; - - class Clause - { - public string Sql { get; set; } - public object Parameters { get; set; } - public bool IsInclusive { get; set; } - } - - class Clauses : List - { - string joiner; - string prefix; - string postfix; - - public Clauses(string joiner, string prefix = "", string postfix = "") - { - this.joiner = joiner; - this.prefix = prefix; - this.postfix = postfix; - } - - public string ResolveClauses(DynamicParameters p) - { - foreach (var item in this) - { - p.AddDynamicParams(item.Parameters); - } - return this.Any(a => a.IsInclusive) - ? prefix + - string.Join(joiner, - this.Where(a => !a.IsInclusive) - .Select(c => c.Sql) - .Union(new[] - { - " ( " + - string.Join(" OR ", this.Where(a => a.IsInclusive).Select(c => c.Sql).ToArray()) + - " ) " - })) + postfix - : prefix + string.Join(joiner, this.Select(c => c.Sql)) + postfix; - } - } - - public class Template - { - readonly string sql; - readonly SqlBuilder builder; - readonly object initParams; - int dataSeq = -1; // Unresolved - - public Template(SqlBuilder builder, string sql, dynamic parameters) - { - this.initParams = parameters; - this.sql = sql; - this.builder = builder; - } - - static System.Text.RegularExpressions.Regex regex = - new System.Text.RegularExpressions.Regex(@"\/\*\*.+\*\*\/", System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.Multiline); - - void ResolveSql() - { - if (dataSeq != builder.seq) - { - DynamicParameters p = new DynamicParameters(initParams); - - rawSql = sql; - - foreach (var pair in builder.data) - { - rawSql = rawSql.Replace("/**" + pair.Key + "**/", pair.Value.ResolveClauses(p)); - } - parameters = p; - - // replace all that is left with empty - rawSql = regex.Replace(rawSql, ""); - - dataSeq = builder.seq; - } - } - - string rawSql; - object parameters; - - public string RawSql { get { ResolveSql(); return rawSql; } } - public object Parameters { get { ResolveSql(); return parameters; } } - } - - - public SqlBuilder() - { - } - - public Template AddTemplate(string sql, dynamic parameters = null) - { - return new Template(this, sql, parameters); - } - - void AddClause(string name, string sql, object parameters, string joiner, string prefix = "", string postfix = "", bool IsInclusive = false) - { - Clauses clauses; - if (!data.TryGetValue(name, out clauses)) - { - clauses = new Clauses(joiner, prefix, postfix); - data[name] = clauses; - } - clauses.Add(new Clause { Sql = sql, Parameters = parameters, IsInclusive = IsInclusive }); - seq++; - } - - public SqlBuilder Intersect(string sql, dynamic parameters = null) - { - AddClause("intersect", sql, parameters, joiner: "\nINTERSECT\n ", prefix: "\n ", postfix: "\n"); - return this; - } - - public SqlBuilder InnerJoin(string sql, dynamic parameters = null) - { - AddClause("innerjoin", sql, parameters, joiner: "\nINNER JOIN ", prefix: "\nINNER JOIN ", postfix: "\n"); - return this; - } - - public SqlBuilder LeftJoin(string sql, dynamic parameters = null) - { - AddClause("leftjoin", sql, parameters, joiner: "\nLEFT JOIN ", prefix: "\nLEFT JOIN ", postfix: "\n"); - return this; - } - - public SqlBuilder RightJoin(string sql, dynamic parameters = null) - { - AddClause("rightjoin", sql, parameters, joiner: "\nRIGHT JOIN ", prefix: "\nRIGHT JOIN ", postfix: "\n"); - return this; - } - - public SqlBuilder Where(string sql, dynamic parameters = null) - { - AddClause("where", sql, parameters, " AND ", prefix: "WHERE ", postfix: "\n"); - return this; - } - - public SqlBuilder OrWhere(string sql, dynamic parameters = null) - { - AddClause("where", sql, parameters, " AND ", prefix: "WHERE ", postfix: "\n", IsInclusive: true); - return this; - } - - public SqlBuilder OrderBy(string sql, dynamic parameters = null) - { - AddClause("orderby", sql, parameters, " , ", prefix: "ORDER BY ", postfix: "\n"); - return this; - } - - public SqlBuilder Select(string sql, dynamic parameters = null) - { - AddClause("select", sql, parameters, " , ", prefix: "", postfix: "\n"); - return this; - } - - public SqlBuilder AddParameters(dynamic parameters) - { - AddClause("--parameters", "", parameters, ""); - return this; - } - - public SqlBuilder Join(string sql, dynamic parameters = null) - { - AddClause("join", sql, parameters, joiner: "\nJOIN ", prefix: "\nJOIN ", postfix: "\n"); - return this; - } - - public SqlBuilder GroupBy(string sql, dynamic parameters = null) - { - AddClause("groupby", sql, parameters, joiner: " , ", prefix: "\nGROUP BY ", postfix: "\n"); - return this; - } - - public SqlBuilder Having(string sql, dynamic parameters = null) - { - AddClause("having", sql, parameters, joiner: "\nAND ", prefix: "HAVING ", postfix: "\n"); - return this; - } - } -} +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +namespace Dapper +{ + public class SqlBuilder + { + private readonly Dictionary _data = new Dictionary(); + private int _seq; + + private class Clause + { + public string Sql { get; set; } + public object Parameters { get; set; } + public bool IsInclusive { get; set; } + } + + private class Clauses : List + { + private readonly string _joiner, _prefix, _postfix; + + public Clauses(string joiner, string prefix = "", string postfix = "") + { + _joiner = joiner; + _prefix = prefix; + _postfix = postfix; + } + + public string ResolveClauses(DynamicParameters p) + { + foreach (var item in this) + { + p.AddDynamicParams(item.Parameters); + } + return this.Any(a => a.IsInclusive) + ? _prefix + + string.Join(_joiner, + this.Where(a => !a.IsInclusive) + .Select(c => c.Sql) + .Union(new[] + { + " ( " + + string.Join(" OR ", this.Where(a => a.IsInclusive).Select(c => c.Sql).ToArray()) + + " ) " + }).ToArray()) + _postfix + : _prefix + string.Join(_joiner, this.Select(c => c.Sql).ToArray()) + _postfix; + } + } + + public class Template + { + private readonly string _sql; + private readonly SqlBuilder _builder; + private readonly object _initParams; + private int _dataSeq = -1; // Unresolved + + public Template(SqlBuilder builder, string sql, dynamic parameters) + { + _initParams = parameters; + _sql = sql; + _builder = builder; + } + + private static readonly Regex _regex = new Regex(@"\/\*\*.+?\*\*\/", RegexOptions.Compiled | RegexOptions.Multiline); + + private void ResolveSql() + { + if (_dataSeq != _builder._seq) + { + var p = new DynamicParameters(_initParams); + + rawSql = _sql; + + foreach (var pair in _builder._data) + { + rawSql = rawSql.Replace("/**" + pair.Key + "**/", pair.Value.ResolveClauses(p)); + } + parameters = p; + + // replace all that is left with empty + rawSql = _regex.Replace(rawSql, ""); + + _dataSeq = _builder._seq; + } + } + + private string rawSql; + private object parameters; + + public string RawSql + { + get { ResolveSql(); return rawSql; } + } + + public object Parameters + { + get { ResolveSql(); return parameters; } + } + } + + public Template AddTemplate(string sql, dynamic parameters = null) => + new Template(this, sql, parameters); + + protected SqlBuilder AddClause(string name, string sql, object parameters, string joiner, string prefix = "", string postfix = "", bool isInclusive = false) + { + if (!_data.TryGetValue(name, out Clauses clauses)) + { + clauses = new Clauses(joiner, prefix, postfix); + _data[name] = clauses; + } + clauses.Add(new Clause { Sql = sql, Parameters = parameters, IsInclusive = isInclusive }); + _seq++; + return this; + } + + public SqlBuilder Intersect(string sql, dynamic parameters = null) => + AddClause("intersect", sql, parameters, "\nINTERSECT\n ", "\n ", "\n", false); + + public SqlBuilder InnerJoin(string sql, dynamic parameters = null) => + AddClause("innerjoin", sql, parameters, "\nINNER JOIN ", "\nINNER JOIN ", "\n", false); + + public SqlBuilder LeftJoin(string sql, dynamic parameters = null) => + AddClause("leftjoin", sql, parameters, "\nLEFT JOIN ", "\nLEFT JOIN ", "\n", false); + + public SqlBuilder RightJoin(string sql, dynamic parameters = null) => + AddClause("rightjoin", sql, parameters, "\nRIGHT JOIN ", "\nRIGHT JOIN ", "\n", false); + + public SqlBuilder Where(string sql, dynamic parameters = null) => + AddClause("where", sql, parameters, " AND ", "WHERE ", "\n", false); + + public SqlBuilder OrWhere(string sql, dynamic parameters = null) => + AddClause("where", sql, parameters, " OR ", "WHERE ", "\n", true); + + public SqlBuilder OrderBy(string sql, dynamic parameters = null) => + AddClause("orderby", sql, parameters, " , ", "ORDER BY ", "\n", false); + + public SqlBuilder Select(string sql, dynamic parameters = null) => + AddClause("select", sql, parameters, " , ", "", "\n", false); + + public SqlBuilder AddParameters(dynamic parameters) => + AddClause("--parameters", "", parameters, "", "", "", false); + + public SqlBuilder Join(string sql, dynamic parameters = null) => + AddClause("join", sql, parameters, "\nJOIN ", "\nJOIN ", "\n", false); + + public SqlBuilder GroupBy(string sql, dynamic parameters = null) => + AddClause("groupby", sql, parameters, " , ", "\nGROUP BY ", "\n", false); + + public SqlBuilder Having(string sql, dynamic parameters = null) => + AddClause("having", sql, parameters, "\nAND ", "HAVING ", "\n", false); + } +} diff --git a/Dapper.StrongName.nuspec b/Dapper.StrongName.nuspec deleted file mode 100644 index 6fb1cc85a..000000000 --- a/Dapper.StrongName.nuspec +++ /dev/null @@ -1,36 +0,0 @@ - - - - Dapper.StrongName - 1.40 - Dapper dot net (strong named) - Sam Saffron,Marc Gravell - Sam Saffron,Marc Gravell - http://www.apache.org/licenses/LICENSE-2.0 - https://github.com/StackExchange/dapper-dot-net - false - A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc..; but with a strong name - A high performance Micro-ORM; this is Dapper, but with a strong name - orm sql micro-orm - - - - - - - Please refer to Dapper (not Dapper.StrongName) for release notes - - - - - - - - - - - - - - - diff --git a/Dapper.StrongName/Dapper.StrongName.csproj b/Dapper.StrongName/Dapper.StrongName.csproj new file mode 100644 index 000000000..22d0a419e --- /dev/null +++ b/Dapper.StrongName/Dapper.StrongName.csproj @@ -0,0 +1,35 @@ + + + Dapper.StrongName + orm;sql;micro-orm + Dapper (Strong Named) + A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc.. + Sam Saffron;Marc Gravell;Nick Craver + net451;netstandard1.3;netstandard2.0 + true + true + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dapper.Tests.Contrib/Dapper.Tests.Contrib.csproj b/Dapper.Tests.Contrib/Dapper.Tests.Contrib.csproj new file mode 100644 index 000000000..ea2efb865 --- /dev/null +++ b/Dapper.Tests.Contrib/Dapper.Tests.Contrib.csproj @@ -0,0 +1,30 @@ + + + Dapper.Tests.Contrib + Dapper.Tests.Contrib + Dapper Contrib Test Suite + portable + Exe + false + netcoreapp1.0;netcoreapp2.0 + + + + + + + + + + + + + + + + + + + + + diff --git a/Dapper.Tests.Contrib/TestSuite.Async.cs b/Dapper.Tests.Contrib/TestSuite.Async.cs new file mode 100644 index 000000000..6ab99a0ec --- /dev/null +++ b/Dapper.Tests.Contrib/TestSuite.Async.cs @@ -0,0 +1,416 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +using Dapper.Contrib.Extensions; +using FactAttribute = Dapper.Tests.Contrib.SkippableFactAttribute; +using Xunit; + +namespace Dapper.Tests.Contrib +{ + public abstract partial class TestSuite + { + [Fact] + public async Task TypeWithGenericParameterCanBeInsertedAsync() + { + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync>(); + var objectToInsert = new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "something" + }; + await connection.InsertAsync(objectToInsert); + + Assert.Single(connection.GetAll>()); + + var objectsToInsert = new List> + { + new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "1", + }, + new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "2", + } + }; + + await connection.InsertAsync(objectsToInsert); + var list = connection.GetAll>(); + Assert.Equal(3, list.Count()); + } + } + + /// + /// Tests for issue #351 + /// + [Fact] + public async Task InsertGetUpdateDeleteWithExplicitKeyAsync() + { + using (var connection = GetOpenConnection()) + { + var guid = Guid.NewGuid().ToString(); + var o1 = new ObjectX { ObjectXId = guid, Name = "Foo" }; + var originalxCount = (await connection.QueryAsync("Select Count(*) From ObjectX").ConfigureAwait(false)).First(); + await connection.InsertAsync(o1).ConfigureAwait(false); + var list1 = (await connection.QueryAsync("select * from ObjectX").ConfigureAwait(false)).ToList(); + Assert.Equal(list1.Count, originalxCount + 1); + o1 = await connection.GetAsync(guid).ConfigureAwait(false); + Assert.Equal(o1.ObjectXId, guid); + o1.Name = "Bar"; + await connection.UpdateAsync(o1).ConfigureAwait(false); + o1 = await connection.GetAsync(guid).ConfigureAwait(false); + Assert.Equal("Bar", o1.Name); + await connection.DeleteAsync(o1).ConfigureAwait(false); + o1 = await connection.GetAsync(guid).ConfigureAwait(false); + Assert.Null(o1); + + const int id = 42; + var o2 = new ObjectY { ObjectYId = id, Name = "Foo" }; + var originalyCount = connection.Query("Select Count(*) From ObjectY").First(); + await connection.InsertAsync(o2).ConfigureAwait(false); + var list2 = (await connection.QueryAsync("select * from ObjectY").ConfigureAwait(false)).ToList(); + Assert.Equal(list2.Count, originalyCount + 1); + o2 = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal(o2.ObjectYId, id); + o2.Name = "Bar"; + await connection.UpdateAsync(o2).ConfigureAwait(false); + o2 = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal("Bar", o2.Name); + await connection.DeleteAsync(o2).ConfigureAwait(false); + o2 = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Null(o2); + } + } + + [Fact] + public async Task TableNameAsync() + { + using (var connection = GetOpenConnection()) + { + // tests against "Automobiles" table (Table attribute) + var id = await connection.InsertAsync(new Car { Name = "VolvoAsync" }).ConfigureAwait(false); + var car = await connection.GetAsync(id).ConfigureAwait(false); + Assert.NotNull(car); + Assert.Equal("VolvoAsync", car.Name); + Assert.True(await connection.UpdateAsync(new Car { Id = id, Name = "SaabAsync" }).ConfigureAwait(false)); + Assert.Equal("SaabAsync", (await connection.GetAsync(id).ConfigureAwait(false)).Name); + Assert.True(await connection.DeleteAsync(new Car { Id = id }).ConfigureAwait(false)); + Assert.Null(await connection.GetAsync(id).ConfigureAwait(false)); + } + } + + [Fact] + public async Task TestSimpleGetAsync() + { + using (var connection = GetOpenConnection()) + { + var id = await connection.InsertAsync(new User { Name = "Adama", Age = 10 }).ConfigureAwait(false); + var user = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal(id, user.Id); + Assert.Equal("Adama", user.Name); + await connection.DeleteAsync(user).ConfigureAwait(false); + } + } + + [Fact] + public async Task InsertGetUpdateAsync() + { + using (var connection = GetOpenConnection()) + { + Assert.Null(await connection.GetAsync(30).ConfigureAwait(false)); + + var originalCount = (await connection.QueryAsync("select Count(*) from Users").ConfigureAwait(false)).First(); + + var id = await connection.InsertAsync(new User { Name = "Adam", Age = 10 }).ConfigureAwait(false); + + //get a user with "isdirty" tracking + var user = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal("Adam", user.Name); + Assert.False(await connection.UpdateAsync(user).ConfigureAwait(false)); //returns false if not updated, based on tracking + user.Name = "Bob"; + Assert.True(await connection.UpdateAsync(user).ConfigureAwait(false)); //returns true if updated, based on tracking + user = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal("Bob", user.Name); + + //get a user with no tracking + var notrackedUser = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal("Bob", notrackedUser.Name); + Assert.True(await connection.UpdateAsync(notrackedUser).ConfigureAwait(false)); + //returns true, even though user was not changed + notrackedUser.Name = "Cecil"; + Assert.True(await connection.UpdateAsync(notrackedUser).ConfigureAwait(false)); + Assert.Equal("Cecil", (await connection.GetAsync(id).ConfigureAwait(false)).Name); + + Assert.Equal((await connection.QueryAsync("select * from Users").ConfigureAwait(false)).Count(), originalCount + 1); + Assert.True(await connection.DeleteAsync(user).ConfigureAwait(false)); + Assert.Equal((await connection.QueryAsync("select * from Users").ConfigureAwait(false)).Count(), originalCount); + + Assert.False(await connection.UpdateAsync(notrackedUser).ConfigureAwait(false)); //returns false, user not found + + Assert.True(await connection.InsertAsync(new User { Name = "Adam", Age = 10 }).ConfigureAwait(false) > originalCount + 1); + } + } + + [Fact] + public async Task InsertCheckKeyAsync() + { + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + Assert.Null(await connection.GetAsync(3).ConfigureAwait(false)); + var user = new User { Name = "Adamb", Age = 10 }; + var id = await connection.InsertAsync(user).ConfigureAwait(false); + Assert.Equal(user.Id, id); + } + } + + [Fact] + public async Task BuilderSelectClauseAsync() + { + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var rand = new Random(8675309); + var data = new List(); + for (var i = 0; i < 100; i++) + { + var nU = new User { Age = rand.Next(70), Id = i, Name = Guid.NewGuid().ToString() }; + data.Add(nU); + nU.Id = await connection.InsertAsync(nU).ConfigureAwait(false); + } + + var builder = new SqlBuilder(); + var justId = builder.AddTemplate("SELECT /**select**/ FROM Users"); + var all = builder.AddTemplate("SELECT Name, /**select**/, Age FROM Users"); + + builder.Select("Id"); + + var ids = await connection.QueryAsync(justId.RawSql, justId.Parameters).ConfigureAwait(false); + var users = await connection.QueryAsync(all.RawSql, all.Parameters).ConfigureAwait(false); + + foreach (var u in data) + { + if (!ids.Any(i => u.Id == i)) throw new Exception("Missing ids in select"); + if (!users.Any(a => a.Id == u.Id && a.Name == u.Name && a.Age == u.Age)) + throw new Exception("Missing users in select"); + } + } + } + + [Fact] + public async Task BuilderTemplateWithoutCompositionAsync() + { + var builder = new SqlBuilder(); + var template = builder.AddTemplate("SELECT COUNT(*) FROM Users WHERE Age = @age", new { age = 5 }); + + if (template.RawSql == null) throw new Exception("RawSql null"); + if (template.Parameters == null) throw new Exception("Parameters null"); + + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + await connection.InsertAsync(new User { Age = 5, Name = "Testy McTestington" }).ConfigureAwait(false); + + if ((await connection.QueryAsync(template.RawSql, template.Parameters).ConfigureAwait(false)).Single() != 1) + throw new Exception("Query failed"); + } + } + + [Fact] + public async Task InsertEnumerableAsync() + { + await InsertHelperAsync(src => src.AsEnumerable()).ConfigureAwait(false); + } + + [Fact] + public async Task InsertArrayAsync() + { + await InsertHelperAsync(src => src.ToArray()).ConfigureAwait(false); + } + + [Fact] + public async Task InsertListAsync() + { + await InsertHelperAsync(src => src.ToList()).ConfigureAwait(false); + } + + private async Task InsertHelperAsync(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var total = await connection.InsertAsync(helper(users)).ConfigureAwait(false); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + } + } + + [Fact] + public async Task UpdateArrayAsync() + { + await UpdateHelperAsync(src => src.ToArray()).ConfigureAwait(false); + } + + [Fact] + public async Task UpdateListAsync() + { + await UpdateHelperAsync(src => src.ToList()).ConfigureAwait(false); + } + + private async Task UpdateHelperAsync(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var total = await connection.InsertAsync(helper(users)).ConfigureAwait(false); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + foreach (var user in users) + { + user.Name += " updated"; + } + await connection.UpdateAsync(helper(users)).ConfigureAwait(false); + var name = connection.Query("select * from Users").First().Name; + Assert.Contains("updated", name); + } + } + + [Fact] + public async Task DeleteArrayAsync() + { + await DeleteHelperAsync(src => src.ToArray()).ConfigureAwait(false); + } + + [Fact] + public async Task DeleteListAsync() + { + await DeleteHelperAsync(src => src.ToList()).ConfigureAwait(false); + } + + private async Task DeleteHelperAsync(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var total = await connection.InsertAsync(helper(users)).ConfigureAwait(false); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + + var usersToDelete = users.Take(10).ToList(); + await connection.DeleteAsync(helper(usersToDelete)).ConfigureAwait(false); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities - 10); + } + } + + [Fact] + public async Task GetAllAsync() + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var total = await connection.InsertAsync(users).ConfigureAwait(false); + Assert.Equal(total, numberOfEntities); + users = (List)await connection.GetAllAsync().ConfigureAwait(false); + Assert.Equal(users.Count, numberOfEntities); + var iusers = await connection.GetAllAsync().ConfigureAwait(false); + Assert.Equal(iusers.ToList().Count, numberOfEntities); + } + } + + /// + /// Test for issue #933 + /// + [Fact] + public async void GetAsyncAndGetAllAsyncWithNullableValues() + { + using (var connection = GetOpenConnection()) + { + var id1 = connection.Insert(new NullableDate { DateValue = new DateTime(2011, 07, 14) }); + var id2 = connection.Insert(new NullableDate { DateValue = null }); + + var value1 = await connection.GetAsync(id1).ConfigureAwait(false); + Assert.Equal(new DateTime(2011, 07, 14), value1.DateValue.Value); + + var value2 = await connection.GetAsync(id2).ConfigureAwait(false); + Assert.True(value2.DateValue == null); + + var value3 = await connection.GetAllAsync().ConfigureAwait(false); + var valuesList = value3.ToList(); + Assert.Equal(new DateTime(2011, 07, 14), valuesList[0].DateValue.Value); + Assert.True(valuesList[1].DateValue == null); + } + } + + [Fact] + public async Task InsertFieldWithReservedNameAsync() + { + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + var id = await connection.InsertAsync(new Result { Name = "Adam", Order = 1 }).ConfigureAwait(false); + + var result = await connection.GetAsync(id).ConfigureAwait(false); + Assert.Equal(1, result.Order); + } + } + + [Fact] + public async Task DeleteAllAsync() + { + using (var connection = GetOpenConnection()) + { + await connection.DeleteAllAsync().ConfigureAwait(false); + + var id1 = await connection.InsertAsync(new User { Name = "Alice", Age = 32 }).ConfigureAwait(false); + var id2 = await connection.InsertAsync(new User { Name = "Bob", Age = 33 }).ConfigureAwait(false); + await connection.DeleteAllAsync().ConfigureAwait(false); + Assert.Null(await connection.GetAsync(id1).ConfigureAwait(false)); + Assert.Null(await connection.GetAsync(id2).ConfigureAwait(false)); + } + } + } +} diff --git a/Dapper.Tests.Contrib/TestSuite.cs b/Dapper.Tests.Contrib/TestSuite.cs new file mode 100644 index 000000000..caeafccdd --- /dev/null +++ b/Dapper.Tests.Contrib/TestSuite.cs @@ -0,0 +1,713 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; + +using Dapper.Contrib.Extensions; +using Xunit; + +#if !NETCOREAPP1_0 && !NETCOREAPP2_0 +using System.Transactions; +using System.Data.SqlServerCe; +#endif +using FactAttribute = Dapper.Tests.Contrib.SkippableFactAttribute; + +namespace Dapper.Tests.Contrib +{ + [Table("ObjectX")] + public class ObjectX + { + [ExplicitKey] + public string ObjectXId { get; set; } + public string Name { get; set; } + } + + [Table("ObjectY")] + public class ObjectY + { + [ExplicitKey] + public int ObjectYId { get; set; } + public string Name { get; set; } + } + + [Table("ObjectZ")] + public class ObjectZ + { + [ExplicitKey] + public int Id { get; set; } + public string Name { get; set; } + } + + public interface IUser + { + [Key] + int Id { get; set; } + string Name { get; set; } + int Age { get; set; } + } + + public class User : IUser + { + public int Id { get; set; } + public string Name { get; set; } + public int Age { get; set; } + } + + public interface INullableDate + { + [Key] + int Id { get; set; } + DateTime? DateValue { get; set; } + } + + public class NullableDate : INullableDate + { + public int Id { get; set; } + public DateTime? DateValue { get; set; } + } + + public class Person + { + public int Id { get; set; } + public string Name { get; set; } + } + + [Table("Stuff")] + public class Stuff + { + [Key] + public short TheId { get; set; } + public string Name { get; set; } + public DateTime? Created { get; set; } + } + + [Table("Automobiles")] + public class Car + { + public int Id { get; set; } + public string Name { get; set; } + [Computed] + public string Computed { get; set; } + } + + [Table("Results")] + public class Result + { + public int Id { get; set; } + public string Name { get; set; } + public int Order { get; set; } + } + + [Table("GenericType")] + public class GenericType + { + [ExplicitKey] + public string Id { get; set; } + public string Name { get; set; } + } + + public abstract partial class TestSuite + { + protected static readonly bool IsAppVeyor = Environment.GetEnvironmentVariable("Appveyor")?.ToUpperInvariant() == "TRUE"; + + public abstract IDbConnection GetConnection(); + + private IDbConnection GetOpenConnection() + { + var connection = GetConnection(); + connection.Open(); + return connection; + } + + [Fact] + public void TypeWithGenericParameterCanBeInserted() + { + using (var connection = GetOpenConnection()) + { + connection.DeleteAll>(); + var objectToInsert = new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "something" + }; + connection.Insert(objectToInsert); + + Assert.Single(connection.GetAll>()); + + var objectsToInsert = new List> + { + new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "1", + }, + new GenericType + { + Id = Guid.NewGuid().ToString(), + Name = "2", + } + }; + + connection.Insert(objectsToInsert); + var list = connection.GetAll>(); + Assert.Equal(3, list.Count()); + } + } + + [Fact] + public void Issue418() + { + using (var connection = GetOpenConnection()) + { + //update first (will fail) then insert + //added for bug #418 + var updateObject = new ObjectX + { + ObjectXId = Guid.NewGuid().ToString(), + Name = "Someone" + }; + var updates = connection.Update(updateObject); + Assert.False(updates); + + connection.DeleteAll(); + + var objectXId = Guid.NewGuid().ToString(); + var insertObject = new ObjectX + { + ObjectXId = objectXId, + Name = "Someone else" + }; + connection.Insert(insertObject); + var list = connection.GetAll(); + Assert.Single(list); + } + } + + /// + /// Tests for issue #351 + /// + [Fact] + public void InsertGetUpdateDeleteWithExplicitKey() + { + using (var connection = GetOpenConnection()) + { + var guid = Guid.NewGuid().ToString(); + var o1 = new ObjectX { ObjectXId = guid, Name = "Foo" }; + var originalxCount = connection.Query("Select Count(*) From ObjectX").First(); + connection.Insert(o1); + var list1 = connection.Query("select * from ObjectX").ToList(); + Assert.Equal(list1.Count, originalxCount + 1); + o1 = connection.Get(guid); + Assert.Equal(o1.ObjectXId, guid); + o1.Name = "Bar"; + connection.Update(o1); + o1 = connection.Get(guid); + Assert.Equal("Bar", o1.Name); + connection.Delete(o1); + o1 = connection.Get(guid); + Assert.Null(o1); + + const int id = 42; + var o2 = new ObjectY { ObjectYId = id, Name = "Foo" }; + var originalyCount = connection.Query("Select Count(*) From ObjectY").First(); + connection.Insert(o2); + var list2 = connection.Query("select * from ObjectY").ToList(); + Assert.Equal(list2.Count, originalyCount + 1); + o2 = connection.Get(id); + Assert.Equal(o2.ObjectYId, id); + o2.Name = "Bar"; + connection.Update(o2); + o2 = connection.Get(id); + Assert.Equal("Bar", o2.Name); + connection.Delete(o2); + o2 = connection.Get(id); + Assert.Null(o2); + } + } + + [Fact] + public void GetAllWithExplicitKey() + { + using (var connection = GetOpenConnection()) + { + var guid = Guid.NewGuid().ToString(); + var o1 = new ObjectX { ObjectXId = guid, Name = "Foo" }; + connection.Insert(o1); + + var objectXs = connection.GetAll().ToList(); + Assert.True(objectXs.Count > 0); + Assert.Equal(1, objectXs.Count(x => x.ObjectXId == guid)); + } + } + + [Fact] + public void InsertGetUpdateDeleteWithExplicitKeyNamedId() + { + using (var connection = GetOpenConnection()) + { + const int id = 42; + var o2 = new ObjectZ { Id = id, Name = "Foo" }; + connection.Insert(o2); + var list2 = connection.Query("select * from ObjectZ").ToList(); + Assert.Single(list2); + o2 = connection.Get(id); + Assert.Equal(o2.Id, id); + } + } + + [Fact] + public void ShortIdentity() + { + using (var connection = GetOpenConnection()) + { + const string name = "First item"; + var id = connection.Insert(new Stuff { Name = name }); + Assert.True(id > 0); // 1-n are valid here, due to parallel tests + var item = connection.Get(id); + Assert.Equal(item.TheId, (short)id); + Assert.Equal(item.Name, name); + } + } + + [Fact] + public void NullDateTime() + { + using (var connection = GetOpenConnection()) + { + connection.Insert(new Stuff { Name = "First item" }); + connection.Insert(new Stuff { Name = "Second item", Created = DateTime.Now }); + var stuff = connection.Query("select * from Stuff").ToList(); + Assert.Null(stuff[0].Created); + Assert.NotNull(stuff.Last().Created); + } + } + + [Fact] + public void TableName() + { + using (var connection = GetOpenConnection()) + { + // tests against "Automobiles" table (Table attribute) + var id = connection.Insert(new Car { Name = "Volvo" }); + var car = connection.Get(id); + Assert.NotNull(car); + Assert.Equal("Volvo", car.Name); + Assert.Equal("Volvo", connection.Get(id).Name); + Assert.True(connection.Update(new Car { Id = (int)id, Name = "Saab" })); + Assert.Equal("Saab", connection.Get(id).Name); + Assert.True(connection.Delete(new Car { Id = (int)id })); + Assert.Null(connection.Get(id)); + } + } + + [Fact] + public void TestSimpleGet() + { + using (var connection = GetOpenConnection()) + { + var id = connection.Insert(new User { Name = "Adama", Age = 10 }); + var user = connection.Get(id); + Assert.Equal(user.Id, (int)id); + Assert.Equal("Adama", user.Name); + connection.Delete(user); + } + } + + [Fact] + public void TestClosedConnection() + { + using (var connection = GetConnection()) + { + Assert.True(connection.Insert(new User { Name = "Adama", Age = 10 }) > 0); + var users = connection.GetAll(); + Assert.NotEmpty(users); + } + } + + [Fact] + public void InsertEnumerable() + { + InsertHelper(src => src.AsEnumerable()); + } + + [Fact] + public void InsertArray() + { + InsertHelper(src => src.ToArray()); + } + + [Fact] + public void InsertList() + { + InsertHelper(src => src.ToList()); + } + + private void InsertHelper(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + + var total = connection.Insert(helper(users)); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + } + } + + [Fact] + public void UpdateArray() + { + UpdateHelper(src => src.ToArray()); + } + + [Fact] + public void UpdateList() + { + UpdateHelper(src => src.ToList()); + } + + private void UpdateHelper(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + + var total = connection.Insert(helper(users)); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + foreach (var user in users) + { + user.Name += " updated"; + } + connection.Update(helper(users)); + var name = connection.Query("select * from Users").First().Name; + Assert.Contains("updated", name); + } + } + + [Fact] + public void DeleteArray() + { + DeleteHelper(src => src.ToArray()); + } + + [Fact] + public void DeleteList() + { + DeleteHelper(src => src.ToList()); + } + + private void DeleteHelper(Func, T> helper) + where T : class + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + + var total = connection.Insert(helper(users)); + Assert.Equal(total, numberOfEntities); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities); + + var usersToDelete = users.Take(10).ToList(); + connection.Delete(helper(usersToDelete)); + users = connection.Query("select * from Users").ToList(); + Assert.Equal(users.Count, numberOfEntities - 10); + } + } + + [Fact] + public void InsertGetUpdate() + { + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + Assert.Null(connection.Get(3)); + + //insert with computed attribute that should be ignored + connection.Insert(new Car { Name = "Volvo", Computed = "this property should be ignored" }); + + var id = connection.Insert(new User { Name = "Adam", Age = 10 }); + + //get a user with "isdirty" tracking + var user = connection.Get(id); + Assert.Equal("Adam", user.Name); + Assert.False(connection.Update(user)); //returns false if not updated, based on tracking + user.Name = "Bob"; + Assert.True(connection.Update(user)); //returns true if updated, based on tracking + user = connection.Get(id); + Assert.Equal("Bob", user.Name); + + //get a user with no tracking + var notrackedUser = connection.Get(id); + Assert.Equal("Bob", notrackedUser.Name); + Assert.True(connection.Update(notrackedUser)); //returns true, even though user was not changed + notrackedUser.Name = "Cecil"; + Assert.True(connection.Update(notrackedUser)); + Assert.Equal("Cecil", connection.Get(id).Name); + + Assert.Single(connection.Query("select * from Users")); + Assert.True(connection.Delete(user)); + Assert.Empty(connection.Query("select * from Users")); + + Assert.False(connection.Update(notrackedUser)); //returns false, user not found + } + } + +#if !NETCOREAPP1_0 && !NETCOREAPP2_0 + [Fact(Skip = "Not parallel friendly - thinking about how to test this")] + public void InsertWithCustomDbType() + { + SqlMapperExtensions.GetDatabaseType = conn => "SQLiteConnection"; + + bool sqliteCodeCalled = false; + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + Assert.IsNull(connection.Get(3)); + try + { + connection.Insert(new User { Name = "Adam", Age = 10 }); + } + catch (SqlCeException ex) + { + sqliteCodeCalled = ex.Message.IndexOf("There was an error parsing the query", StringComparison.OrdinalIgnoreCase) >= 0; + } + // ReSharper disable once EmptyGeneralCatchClause + catch (Exception) + { + } + } + SqlMapperExtensions.GetDatabaseType = null; + + if (!sqliteCodeCalled) + { + throw new Exception("Was expecting sqlite code to be called"); + } + } +#endif + + [Fact] + public void InsertWithCustomTableNameMapper() + { + SqlMapperExtensions.TableNameMapper = type => + { + switch (type.Name()) + { + case "Person": + return "People"; + default: + var tableattr = type.GetCustomAttributes(false).SingleOrDefault(attr => attr.GetType().Name == "TableAttribute") as dynamic; + if (tableattr != null) + return tableattr.Name; + + var name = type.Name + "s"; + if (type.IsInterface() && name.StartsWith("I")) + return name.Substring(1); + return name; + } + }; + + using (var connection = GetOpenConnection()) + { + var id = connection.Insert(new Person { Name = "Mr Mapper" }); + Assert.Equal(1, id); + connection.GetAll(); + } + } + + [Fact] + public void GetAll() + { + const int numberOfEntities = 10; + + var users = new List(); + for (var i = 0; i < numberOfEntities; i++) + users.Add(new User { Name = "User " + i, Age = i }); + + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + + var total = connection.Insert(users); + Assert.Equal(total, numberOfEntities); + users = connection.GetAll().ToList(); + Assert.Equal(users.Count, numberOfEntities); + var iusers = connection.GetAll().ToList(); + Assert.Equal(iusers.Count, numberOfEntities); + for (var i = 0; i < numberOfEntities; i++) + Assert.Equal(iusers[i].Age, i); + } + } + + /// + /// Test for issue #933 + /// + [Fact] + public void GetAndGetAllWithNullableValues() + { + using (var connection = GetOpenConnection()) + { + var id1 = connection.Insert(new NullableDate { DateValue = new DateTime(2011, 07, 14) }); + var id2 = connection.Insert(new NullableDate { DateValue = null }); + + var value1 = connection.Get(id1); + Assert.Equal(new DateTime(2011, 07, 14), value1.DateValue.Value); + + var value2 = connection.Get(id2); + Assert.True(value2.DateValue == null); + + var value3 = connection.GetAll().ToList(); + Assert.Equal(new DateTime(2011, 07, 14), value3[0].DateValue.Value); + Assert.True(value3[1].DateValue == null); + } + } + + [Fact] + public void Transactions() + { + using (var connection = GetOpenConnection()) + { + var id = connection.Insert(new Car { Name = "one car" }); //insert outside transaction + + var tran = connection.BeginTransaction(); + var car = connection.Get(id, tran); + var orgName = car.Name; + car.Name = "Another car"; + connection.Update(car, tran); + tran.Rollback(); + + car = connection.Get(id); //updates should have been rolled back + Assert.Equal(car.Name, orgName); + } + } + +#if !NETCOREAPP1_0 && !NETCOREAPP2_0 + [Fact] + public void TransactionScope() + { + using (var txscope = new TransactionScope()) + { + using (var connection = GetOpenConnection()) + { + var id = connection.Insert(new Car { Name = "one car" }); //inser car within transaction + + txscope.Dispose(); //rollback + + Assert.IsNull(connection.Get(id)); //returns null - car with that id should not exist + } + } + } +#endif + + [Fact] + public void InsertCheckKey() + { + using (var connection = GetOpenConnection()) + { + Assert.Null(connection.Get(3)); + User user = new User { Name = "Adamb", Age = 10 }; + int id = (int)connection.Insert(user); + Assert.Equal(user.Id, id); + } + } + + [Fact] + public void BuilderSelectClause() + { + using (var connection = GetOpenConnection()) + { + var rand = new Random(8675309); + var data = new List(); + for (int i = 0; i < 100; i++) + { + var nU = new User { Age = rand.Next(70), Id = i, Name = Guid.NewGuid().ToString() }; + data.Add(nU); + nU.Id = (int)connection.Insert(nU); + } + + var builder = new SqlBuilder(); + var justId = builder.AddTemplate("SELECT /**select**/ FROM Users"); + var all = builder.AddTemplate("SELECT Name, /**select**/, Age FROM Users"); + + builder.Select("Id"); + + var ids = connection.Query(justId.RawSql, justId.Parameters); + var users = connection.Query(all.RawSql, all.Parameters); + + foreach (var u in data) + { + if (!ids.Any(i => u.Id == i)) throw new Exception("Missing ids in select"); + if (!users.Any(a => a.Id == u.Id && a.Name == u.Name && a.Age == u.Age)) throw new Exception("Missing users in select"); + } + } + } + + [Fact] + public void BuilderTemplateWithoutComposition() + { + var builder = new SqlBuilder(); + var template = builder.AddTemplate("SELECT COUNT(*) FROM Users WHERE Age = @age", new { age = 5 }); + + if (template.RawSql == null) throw new Exception("RawSql null"); + if (template.Parameters == null) throw new Exception("Parameters null"); + + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + connection.Insert(new User { Age = 5, Name = "Testy McTestington" }); + + if (connection.Query(template.RawSql, template.Parameters).Single() != 1) + throw new Exception("Query failed"); + } + } + + [Fact] + public void InsertFieldWithReservedName() + { + using (var connection = GetOpenConnection()) + { + connection.DeleteAll(); + var id = connection.Insert(new Result() { Name = "Adam", Order = 1 }); + + var result = connection.Get(id); + Assert.Equal(1, result.Order); + } + } + + [Fact] + public void DeleteAll() + { + using (var connection = GetOpenConnection()) + { + var id1 = connection.Insert(new User { Name = "Alice", Age = 32 }); + var id2 = connection.Insert(new User { Name = "Bob", Age = 33 }); + Assert.True(connection.DeleteAll()); + Assert.Null(connection.Get(id1)); + Assert.Null(connection.Get(id2)); + } + } + } +} diff --git a/Dapper.Tests.Contrib/TestSuites.cs b/Dapper.Tests.Contrib/TestSuites.cs new file mode 100644 index 000000000..88cafecef --- /dev/null +++ b/Dapper.Tests.Contrib/TestSuites.cs @@ -0,0 +1,187 @@ +using Microsoft.Data.Sqlite; +using MySql.Data.MySqlClient; +using System; +using System.Data; +using System.Data.SqlClient; +using System.IO; +using Xunit; +using Xunit.Sdk; + +#if !NETCOREAPP1_0 && !NETCOREAPP2_0 +using System.Data.SqlServerCe; +#endif + +namespace Dapper.Tests.Contrib +{ + // The test suites here implement TestSuiteBase so that each provider runs + // the entire set of tests without declarations per method + // If we want to support a new provider, they need only be added here - not in multiple places + + [XunitTestCaseDiscoverer("Dapper.Tests.SkippableFactDiscoverer", "Dapper.Tests.Contrib")] + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class SkippableFactAttribute : FactAttribute + { + } + + public class SqlServerTestSuite : TestSuite + { + private const string DbName = "tempdb"; + public static string ConnectionString => + IsAppVeyor + ? @"Server=(local)\SQL2016;Database=tempdb;User ID=sa;Password=Password12!" + : $"Data Source=.;Initial Catalog={DbName};Integrated Security=True"; + public override IDbConnection GetConnection() => new SqlConnection(ConnectionString); + + static SqlServerTestSuite() + { + using (var connection = new SqlConnection(ConnectionString)) + { + // ReSharper disable once AccessToDisposedClosure + Action dropTable = name => connection.Execute($"IF OBJECT_ID('{name}', 'U') IS NOT NULL DROP TABLE [{name}]; "); + connection.Open(); + dropTable("Stuff"); + connection.Execute("CREATE TABLE Stuff (TheId int IDENTITY(1,1) not null, Name nvarchar(100) not null, Created DateTime null);"); + dropTable("People"); + connection.Execute("CREATE TABLE People (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null);"); + dropTable("Users"); + connection.Execute("CREATE TABLE Users (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, Age int not null);"); + dropTable("Automobiles"); + connection.Execute("CREATE TABLE Automobiles (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null);"); + dropTable("Results"); + connection.Execute("CREATE TABLE Results (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, [Order] int not null);"); + dropTable("ObjectX"); + connection.Execute("CREATE TABLE ObjectX (ObjectXId nvarchar(100) not null, Name nvarchar(100) not null);"); + dropTable("ObjectY"); + connection.Execute("CREATE TABLE ObjectY (ObjectYId int not null, Name nvarchar(100) not null);"); + dropTable("ObjectZ"); + connection.Execute("CREATE TABLE ObjectZ (Id int not null, Name nvarchar(100) not null);"); + dropTable("GenericType"); + connection.Execute("CREATE TABLE GenericType (Id nvarchar(100) not null, Name nvarchar(100) not null);"); + dropTable("NullableDates"); + connection.Execute("CREATE TABLE NullableDates (Id int IDENTITY(1,1) not null, DateValue DateTime null);"); + } + } + } + + public class MySqlServerTestSuite : TestSuite + { + private const string DbName = "DapperContribTests"; + + public static string ConnectionString { get; } = + IsAppVeyor + ? "Server=localhost;Uid=root;Pwd=Password12!;" + : "Server=localhost;Uid=test;Pwd=pass;"; + + public override IDbConnection GetConnection() + { + if (_skip) throw new SkipTestException("Skipping MySQL Tests - no server."); + return new MySqlConnection(ConnectionString); + } + + private static readonly bool _skip; + + static MySqlServerTestSuite() + { + try + { + using (var connection = new MySqlConnection(ConnectionString)) + { + // ReSharper disable once AccessToDisposedClosure + Action dropTable = name => connection.Execute($"DROP TABLE IF EXISTS `{name}`;"); + connection.Open(); + connection.Execute($"DROP DATABASE IF EXISTS {DbName}; CREATE DATABASE {DbName}; USE {DbName};"); + dropTable("Stuff"); + connection.Execute("CREATE TABLE Stuff (TheId int not null AUTO_INCREMENT PRIMARY KEY, Name nvarchar(100) not null, Created DateTime null);"); + dropTable("People"); + connection.Execute("CREATE TABLE People (Id int not null AUTO_INCREMENT PRIMARY KEY, Name nvarchar(100) not null);"); + dropTable("Users"); + connection.Execute("CREATE TABLE Users (Id int not null AUTO_INCREMENT PRIMARY KEY, Name nvarchar(100) not null, Age int not null);"); + dropTable("Automobiles"); + connection.Execute("CREATE TABLE Automobiles (Id int not null AUTO_INCREMENT PRIMARY KEY, Name nvarchar(100) not null);"); + dropTable("Results"); + connection.Execute("CREATE TABLE Results (Id int not null AUTO_INCREMENT PRIMARY KEY, Name nvarchar(100) not null, `Order` int not null);"); + dropTable("ObjectX"); + connection.Execute("CREATE TABLE ObjectX (ObjectXId nvarchar(100) not null, Name nvarchar(100) not null);"); + dropTable("ObjectY"); + connection.Execute("CREATE TABLE ObjectY (ObjectYId int not null, Name nvarchar(100) not null);"); + dropTable("ObjectZ"); + connection.Execute("CREATE TABLE ObjectZ (Id int not null, Name nvarchar(100) not null);"); + dropTable("GenericType"); + connection.Execute("CREATE TABLE GenericType (Id nvarchar(100) not null, Name nvarchar(100) not null);"); + dropTable("NullableDates"); + connection.Execute("CREATE TABLE NullableDates (Id int not null AUTO_INCREMENT PRIMARY KEY, DateValue DateTime);"); + } + } + catch (MySqlException e) + { + if (e.Message.Contains("Unable to connect")) + _skip = true; + else + throw; + } + } + } + + public class SQLiteTestSuite : TestSuite + { + private const string FileName = "Test.DB.sqlite"; + public static string ConnectionString => $"Filename=./{FileName};Mode=ReadWriteCreate;"; + public override IDbConnection GetConnection() => new SqliteConnection(ConnectionString); + + static SQLiteTestSuite() + { + if (File.Exists(FileName)) + { + File.Delete(FileName); + } + using (var connection = new SqliteConnection(ConnectionString)) + { + connection.Open(); + connection.Execute("CREATE TABLE Stuff (TheId integer primary key autoincrement not null, Name nvarchar(100) not null, Created DateTime null) "); + connection.Execute("CREATE TABLE People (Id integer primary key autoincrement not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE Users (Id integer primary key autoincrement not null, Name nvarchar(100) not null, Age int not null) "); + connection.Execute("CREATE TABLE Automobiles (Id integer primary key autoincrement not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE Results (Id integer primary key autoincrement not null, Name nvarchar(100) not null, [Order] int not null) "); + connection.Execute("CREATE TABLE ObjectX (ObjectXId nvarchar(100) not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE ObjectY (ObjectYId integer not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE ObjectZ (Id integer not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE GenericType (Id nvarchar(100) not null, Name nvarchar(100) not null) "); + connection.Execute("CREATE TABLE NullableDates (Id integer primary key autoincrement not null, DateValue DateTime) "); + } + } + } + +#if !NETCOREAPP1_0 && !NETCOREAPP2_0 + public class SqlCETestSuite : TestSuite + { + const string FileName = "Test.DB.sdf"; + public static string ConnectionString => $"Data Source={FileName};"; + public override IDbConnection GetConnection() => new SqlCeConnection(ConnectionString); + + static SqlCETestSuite() + { + if (File.Exists(FileName)) + { + File.Delete(FileName); + } + var engine = new SqlCeEngine(ConnectionString); + engine.CreateDatabase(); + using (var connection = new SqlCeConnection(ConnectionString)) + { + connection.Open(); + connection.Execute(@"CREATE TABLE Stuff (TheId int IDENTITY(1,1) not null, Name nvarchar(100) not null, Created DateTime null) "); + connection.Execute(@"CREATE TABLE People (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE Users (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, Age int not null) "); + connection.Execute(@"CREATE TABLE Automobiles (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE Results (Id int IDENTITY(1,1) not null, Name nvarchar(100) not null, [Order] int not null) "); + connection.Execute(@"CREATE TABLE ObjectX (ObjectXId nvarchar(100) not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE ObjectY (ObjectYId int not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE ObjectZ (Id int not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE GenericType (Id nvarchar(100) not null, Name nvarchar(100) not null) "); + connection.Execute(@"CREATE TABLE NullableDates (Id int IDENTITY(1,1) not null, DateValue DateTime null) "); + } + Console.WriteLine("Created database"); + } + } +#endif +} diff --git a/Dapper.Tests.Performance/Benchmarks.Belgrade.cs b/Dapper.Tests.Performance/Benchmarks.Belgrade.cs new file mode 100644 index 000000000..8813912e9 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Belgrade.cs @@ -0,0 +1,44 @@ +using BenchmarkDotNet.Attributes; +using Belgrade.SqlClient.SqlDb; +using System.Threading.Tasks; + +namespace Dapper.Tests.Performance +{ + public class BelgradeBenchmarks : BenchmarkBase + { + private QueryMapper _mapper; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _mapper = new QueryMapper(ConnectionString); + } + + [Benchmark(Description = "ExecuteReader")] + public async Task ExecuteReader() + { + Step(); + // TODO: How do you get a Post out of this thing? + await _mapper.ExecuteReader("SELECT TOP 1 * FROM Posts WHERE Id = " + i, + reader => + { + var post = new Post(); + post.Id = reader.GetInt32(0); + post.Text = reader.GetString(1); + post.CreationDate = reader.GetDateTime(2); + post.LastChangeDate = reader.GetDateTime(3); + + post.Counter1 = reader.IsDBNull(4) ? null : (int?)reader.GetInt32(4); + post.Counter2 = reader.IsDBNull(5) ? null : (int?)reader.GetInt32(5); + post.Counter3 = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6); + post.Counter4 = reader.IsDBNull(7) ? null : (int?)reader.GetInt32(7); + post.Counter5 = reader.IsDBNull(8) ? null : (int?)reader.GetInt32(8); + post.Counter6 = reader.IsDBNull(9) ? null : (int?)reader.GetInt32(9); + post.Counter7 = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10); + post.Counter8 = reader.IsDBNull(11) ? null : (int?)reader.GetInt32(11); + post.Counter9 = reader.IsDBNull(12) ? null : (int?)reader.GetInt32(12); + }); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.Dapper.cs b/Dapper.Tests.Performance/Benchmarks.Dapper.cs new file mode 100644 index 000000000..a8593b931 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Dapper.cs @@ -0,0 +1,64 @@ +using BenchmarkDotNet.Attributes; +using Dapper.Contrib.Extensions; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class DapperBenchmarks : BenchmarkBase + { + [GlobalSetup] + public void Setup() + { + BaseSetup(); + } + + [Benchmark(Description = "Query (buffered)")] + public Post QueryBuffered() + { + Step(); + return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First(); + } + + [Benchmark(Description = "Query (buffered)")] + public dynamic QueryBufferedDynamic() + { + Step(); + return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First(); + } + + [Benchmark(Description = "Query (unbuffered)")] + public Post QueryUnbuffered() + { + Step(); + return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First(); + } + + [Benchmark(Description = "Query (unbuffered)")] + public dynamic QueryUnbufferedDynamic() + { + Step(); + return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First(); + } + + [Benchmark(Description = "QueryFirstOrDefault")] + public Post QueryFirstOrDefault() + { + Step(); + return _connection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = i }); + } + + [Benchmark(Description = "QueryFirstOrDefault")] + public dynamic QueryFirstOrDefaultDynamic() + { + Step(); + return _connection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = i }).First(); + } + + [Benchmark(Description = "Contrib Get")] + public Post ContribGet() + { + Step(); + return _connection.Get(i); + } + } +} diff --git a/Dapper.Tests.Performance/Benchmarks.EntityFramework.cs b/Dapper.Tests.Performance/Benchmarks.EntityFramework.cs new file mode 100644 index 000000000..f145a24d1 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.EntityFramework.cs @@ -0,0 +1,38 @@ +using BenchmarkDotNet.Attributes; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class EF6Benchmarks : BenchmarkBase + { + private EntityFramework.EFContext Context; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + Context = new EntityFramework.EFContext(_connection); + } + + [Benchmark(Description = "Normal")] + public Post Normal() + { + Step(); + return Context.Posts.First(p => p.Id == i); + } + + [Benchmark(Description = "SqlQuery")] + public Post SqlQuery() + { + Step(); + return Context.Database.SqlQuery("select * from Posts where Id = {0}", i).First(); + } + + [Benchmark(Description = "No Tracking")] + public Post NoTracking() + { + Step(); + return Context.Posts.AsNoTracking().First(p => p.Id == i); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.EntityFrameworkCore.cs b/Dapper.Tests.Performance/Benchmarks.EntityFrameworkCore.cs new file mode 100644 index 000000000..1425493c3 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.EntityFrameworkCore.cs @@ -0,0 +1,44 @@ +using BenchmarkDotNet.Attributes; +using Dapper.Tests.Performance.Linq2Sql; +using Microsoft.EntityFrameworkCore; +using System; +using System.Data.Linq; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class EFCoreBenchmarks : BenchmarkBase + { + private EntityFrameworkCore.EFCoreContext Context; + private static readonly Func compiledQuery = + CompiledQuery.Compile((DataClassesDataContext ctx, int id) => ctx.Posts.First(p => p.Id == id)); + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + Context = new EntityFrameworkCore.EFCoreContext(_connection.ConnectionString); + } + + [Benchmark(Description = "Normal")] + public Post Normal() + { + Step(); + return Context.Posts.First(p => p.Id == i); + } + + [Benchmark(Description = "SqlQuery")] + public Post SqlQuery() + { + Step(); + return Context.Posts.FromSql("select * from Posts where Id = {0}", i).First(); + } + + [Benchmark(Description = "No Tracking")] + public Post NoTracking() + { + Step(); + return Context.Posts.AsNoTracking().First(p => p.Id == i); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.HandCoded.cs b/Dapper.Tests.Performance/Benchmarks.HandCoded.cs new file mode 100644 index 000000000..e100b32f8 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.HandCoded.cs @@ -0,0 +1,93 @@ +using BenchmarkDotNet.Attributes; +using System; +using System.Data; +using System.Data.SqlClient; + +namespace Dapper.Tests.Performance +{ + public class HandCodedBenchmarks : BenchmarkBase + { + private SqlCommand _postCommand; + private SqlParameter _idParam; +#if !NETCOREAPP1_0 + private DataTable _table; +#endif + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _postCommand = new SqlCommand() + { + Connection = _connection, + CommandText = @"select Id, [Text], [CreationDate], LastChangeDate, + Counter1,Counter2,Counter3,Counter4,Counter5,Counter6,Counter7,Counter8,Counter9 from Posts where Id = @Id" + }; + _idParam = _postCommand.Parameters.Add("@Id", SqlDbType.Int); +#if !NETCOREAPP1_0 + _table = new DataTable + { + Columns = + { + {"Id", typeof (int)}, + {"Text", typeof (string)}, + {"CreationDate", typeof (DateTime)}, + {"LastChangeDate", typeof (DateTime)}, + {"Counter1", typeof (int)}, + {"Counter2", typeof (int)}, + {"Counter3", typeof (int)}, + {"Counter4", typeof (int)}, + {"Counter5", typeof (int)}, + {"Counter6", typeof (int)}, + {"Counter7", typeof (int)}, + {"Counter8", typeof (int)}, + {"Counter9", typeof (int)}, + } + }; +#endif + } + + [Benchmark(Description = "SqlCommand", Baseline = true)] + public Post SqlCommand() + { + Step(); + _idParam.Value = i; + + using (var reader = _postCommand.ExecuteReader()) + { + reader.Read(); + var post = new Post(); + post.Id = reader.GetInt32(0); + post.Text = reader.GetNullableString(1); + post.CreationDate = reader.GetDateTime(2); + post.LastChangeDate = reader.GetDateTime(3); + + post.Counter1 = reader.GetNullableValue(4); + post.Counter2 = reader.GetNullableValue(5); + post.Counter3 = reader.GetNullableValue(6); + post.Counter4 = reader.GetNullableValue(7); + post.Counter5 = reader.GetNullableValue(8); + post.Counter6 = reader.GetNullableValue(9); + post.Counter7 = reader.GetNullableValue(10); + post.Counter8 = reader.GetNullableValue(11); + post.Counter9 = reader.GetNullableValue(12); + return post; + } + } + + [Benchmark(Description = "DataTable")] + public dynamic DataTableDynamic() + { + Step(); + _idParam.Value = i; + var values = new object[13]; + using (var reader = _postCommand.ExecuteReader()) + { + reader.Read(); + reader.GetValues(values); + _table.Rows.Add(values); + return _table.Rows[_table.Rows.Count - 1]; + } + } + } +} diff --git a/Dapper.Tests.Performance/Benchmarks.Linq2Sql.cs b/Dapper.Tests.Performance/Benchmarks.Linq2Sql.cs new file mode 100644 index 000000000..64889f1e1 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Linq2Sql.cs @@ -0,0 +1,43 @@ +using BenchmarkDotNet.Attributes; +using Dapper.Tests.Performance.Linq2Sql; +using System; +using System.Data.Linq; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class Linq2SqlBenchmarks : BenchmarkBase + { + private DataClassesDataContext Linq2SqlContext; + private static readonly Func compiledQuery = + CompiledQuery.Compile((DataClassesDataContext ctx, int id) => ctx.Posts.First(p => p.Id == id)); + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + Linq2SqlContext = new DataClassesDataContext(_connection); + } + + [Benchmark(Description = "Normal")] + public Linq2Sql.Post Normal() + { + Step(); + return Linq2SqlContext.Posts.First(p => p.Id == i); + } + + [Benchmark(Description = "Compiled")] + public Linq2Sql.Post Compiled() + { + Step(); + return compiledQuery(Linq2SqlContext, i); + } + + [Benchmark(Description = "ExecuteQuery")] + public Post ExecuteQuery() + { + Step(); + return Linq2SqlContext.ExecuteQuery("select * from Posts where Id = {0}", i).First(); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.Massive.cs b/Dapper.Tests.Performance/Benchmarks.Massive.cs new file mode 100644 index 000000000..ac680ed90 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Massive.cs @@ -0,0 +1,25 @@ +using BenchmarkDotNet.Attributes; +using Massive; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class MassiveBenchmarks : BenchmarkBase + { + private DynamicModel _model; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _model = new DynamicModel(ConnectionString); + } + + [Benchmark(Description = "Query (dynamic)")] + public dynamic QueryDynamic() + { + Step(); + return _model.Query("select * from Posts where Id = @0", _connection, i).First(); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.NHibernate.cs b/Dapper.Tests.Performance/Benchmarks.NHibernate.cs new file mode 100644 index 000000000..c648c9583 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.NHibernate.cs @@ -0,0 +1,69 @@ +using BenchmarkDotNet.Attributes; +using Dapper.Tests.Performance.NHibernate; +using NHibernate; +using NHibernate.Criterion; +using NHibernate.Linq; +using NHibernate.Transform; +using NHibernate.Util; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class NHibernateBenchmarks : BenchmarkBase + { + private IStatelessSession _sql, _hql, _criteria, _linq, _get; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _sql = NHibernateHelper.OpenSession(); + _hql = NHibernateHelper.OpenSession(); + _criteria = NHibernateHelper.OpenSession(); + _linq = NHibernateHelper.OpenSession(); + _get = NHibernateHelper.OpenSession(); + } + + [Benchmark(Description = "SQL")] + public Post SQL() + { + Step(); + return _sql.CreateSQLQuery("select * from Posts where Id = :id") + .SetInt32("id", i) + .SetResultTransformer(Transformers.AliasToBean()) + .List()[0]; + } + + [Benchmark(Description = "HQL")] + public Post HQL() + { + Step(); + return _hql.CreateQuery("from Post as p where p.Id = :id") + .SetInt32("id", i) + .List()[0]; + } + + [Benchmark(Description = "Criteria")] + public Post Criteria() + { + Step(); + return _criteria.CreateCriteria() + .Add(Restrictions.IdEq(i)) + .List()[0]; + } + + [Benchmark(Description = "LINQ")] + public Post LINQ() + { + Step(); + return _linq.Query().First(p => p.Id == i); + } + + [Benchmark(Description = "Get")] + public Post Get() + { + Step(); + return _get.Get(i); + } + } +} diff --git a/Dapper.Tests.Performance/Benchmarks.PetaPoco.cs b/Dapper.Tests.Performance/Benchmarks.PetaPoco.cs new file mode 100644 index 000000000..1a86b67ed --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.PetaPoco.cs @@ -0,0 +1,38 @@ +using BenchmarkDotNet.Attributes; +using PetaPoco; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class PetaPocoBenchmarks : BenchmarkBase + { + private Database _db, _dbFast; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _db = new Database(ConnectionString, "System.Data.SqlClient"); + _db.OpenSharedConnection(); + _dbFast = new Database(ConnectionString, "System.Data.SqlClient"); + _dbFast.OpenSharedConnection(); + _dbFast.EnableAutoSelect = false; + _dbFast.EnableNamedParams = false; + _dbFast.ForceDateTimesToUtc = false; + } + + [Benchmark(Description = "Fetch")] + public Post Fetch() + { + Step(); + return _db.Fetch("SELECT * from Posts where Id=@0", i).First(); + } + + [Benchmark(Description = "Fetch (Fast)")] + public Post FetchFast() + { + Step(); + return _dbFast.Fetch("SELECT * from Posts where Id=@0", i).First(); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.ServiceStack.cs b/Dapper.Tests.Performance/Benchmarks.ServiceStack.cs new file mode 100644 index 000000000..41426e64b --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.ServiceStack.cs @@ -0,0 +1,26 @@ +using BenchmarkDotNet.Attributes; +using ServiceStack.OrmLite; +using System.Data; + +namespace Dapper.Tests.Performance +{ + public class ServiceStackBenchmarks : BenchmarkBase + { + private IDbConnection _db; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + var dbFactory = new OrmLiteConnectionFactory(ConnectionString, SqlServerDialect.Provider); + _db = dbFactory.Open(); + } + + [Benchmark(Description = "SingleById")] + public Post Query() + { + Step(); + return _db.SingleById(i); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.Soma.cs b/Dapper.Tests.Performance/Benchmarks.Soma.cs new file mode 100644 index 000000000..ae7db5c9b --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Soma.cs @@ -0,0 +1,23 @@ +using BenchmarkDotNet.Attributes; + +namespace Dapper.Tests.Performance +{ + public class SomaBenchmarks : BenchmarkBase + { + private dynamic _sdb; + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _sdb = Simple.Data.Database.OpenConnection(ConnectionString); + } + + [Benchmark(Description = "FindById")] + public dynamic QueryDynamic() + { + Step(); + return _sdb.Posts.FindById(i).FirstOrDefault(); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.Susanoo.cs b/Dapper.Tests.Performance/Benchmarks.Susanoo.cs new file mode 100644 index 000000000..934d3b644 --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.Susanoo.cs @@ -0,0 +1,62 @@ +using BenchmarkDotNet.Attributes; +using Susanoo; +using Susanoo.Processing; +using System.Data; +using System.Linq; + +namespace Dapper.Tests.Performance +{ + public class SusanooBenchmarks : BenchmarkBase + { + private DatabaseManager _db; + private static readonly ISingleResultSetCommandProcessor _cmd = + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize(); + private static readonly ISingleResultSetCommandProcessor _cmdDynamic = + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize(); + + [GlobalSetup] + public void Setup() + { + BaseSetup(); + _db = new DatabaseManager(_connection); + } + + [Benchmark(Description = "Mapping Cache")] + public Post MappingCache() + { + Step(); + return CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize() + .Execute(_db, new { Id = i }).First(); + } + + [Benchmark(Description = "Mapping Cache (dynamic)")] + public dynamic MappingCacheDynamic() + { + Step(); + return CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize() + .Execute(_db, new { Id = i }).First(); + } + + [Benchmark(Description = "Mapping Static")] + public Post MappingStatic() + { + Step(); + return _cmd.Execute(_db, new { Id = i }).First(); + } + + [Benchmark(Description = "Mapping Static (dynamic)")] + public dynamic MappingStaticDynamic() + { + Step(); + return _cmdDynamic.Execute(_db, new { Id = i }).First(); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Benchmarks.cs b/Dapper.Tests.Performance/Benchmarks.cs new file mode 100644 index 000000000..9518318aa --- /dev/null +++ b/Dapper.Tests.Performance/Benchmarks.cs @@ -0,0 +1,58 @@ +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Attributes.Columns; +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Diagnosers; +using BenchmarkDotNet.Horology; +using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Order; +using Dapper.Tests.Performance.Helpers; +using System; +using System.Configuration; +using System.Data.SqlClient; + +namespace Dapper.Tests.Performance +{ + [OrderProvider(SummaryOrderPolicy.FastestToSlowest)] + [RankColumn] + [Config(typeof(Config))] + public abstract class BenchmarkBase + { + public const int Iterations = 50; + protected static readonly Random _rand = new Random(); + protected SqlConnection _connection; + public static string ConnectionString { get; } = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; + protected int i; + + protected void BaseSetup() + { + i = 0; + _connection = new SqlConnection(ConnectionString); + _connection.Open(); + } + + protected void Step() + { + i++; + if (i > 5000) i = 1; + } + } + + public class Config : ManualConfig + { + public Config() + { + Add(new MemoryDiagnoser()); + Add(new ORMColum()); + Add(new ReturnColum()); + Add(Job.Default + .WithUnrollFactor(BenchmarkBase.Iterations) + //.WithIterationTime(new TimeInterval(500, TimeUnit.Millisecond)) + .WithLaunchCount(1) + .WithWarmupCount(0) + .WithTargetCount(5) + .WithRemoveOutliers(true) + ); + } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Dapper.Tests.Performance.csproj b/Dapper.Tests.Performance/Dapper.Tests.Performance.csproj new file mode 100644 index 000000000..dd4ec0bdd --- /dev/null +++ b/Dapper.Tests.Performance/Dapper.Tests.Performance.csproj @@ -0,0 +1,51 @@ + + + Dapper.Tests.Performance + Dapper.Tests.Performance + Dapper Core Performance Suite + Exe + false + net462 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/EntityFramework/EFContext.cs b/Dapper.Tests.Performance/EntityFramework/EFContext.cs similarity index 51% rename from Tests/EntityFramework/EFContext.cs rename to Dapper.Tests.Performance/EntityFramework/EFContext.cs index 4e3b8efee..a1c4aa8b0 100644 --- a/Tests/EntityFramework/EFContext.cs +++ b/Dapper.Tests.Performance/EntityFramework/EFContext.cs @@ -1,11 +1,14 @@ using System.Data.Common; using System.Data.Entity; -namespace SqlMapper.EntityFramework +namespace Dapper.Tests.Performance.EntityFramework { public class EFContext : DbContext { - public EFContext(DbConnection connection, bool owned = false) : base(connection, owned) { } - public DbSet Posts { get;set; } + public EFContext(DbConnection connection, bool owned = false) : base(connection, owned) + { + } + + public DbSet Posts { get; set; } } } diff --git a/Dapper.Tests.Performance/EntityFrameworkCore/EFCoreContext.cs b/Dapper.Tests.Performance/EntityFrameworkCore/EFCoreContext.cs new file mode 100644 index 000000000..e6fe11787 --- /dev/null +++ b/Dapper.Tests.Performance/EntityFrameworkCore/EFCoreContext.cs @@ -0,0 +1,18 @@ +using Microsoft.EntityFrameworkCore; + +namespace Dapper.Tests.Performance.EntityFrameworkCore +{ + public class EFCoreContext : DbContext + { + private readonly string _connectionString; + + public EFCoreContext(string connectionString) + { + _connectionString = connectionString; + } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(_connectionString); + + public DbSet Posts { get; set; } + } +} \ No newline at end of file diff --git a/Dapper.Tests.Performance/Helpers/ORMColum.cs b/Dapper.Tests.Performance/Helpers/ORMColum.cs new file mode 100644 index 000000000..a2e610185 --- /dev/null +++ b/Dapper.Tests.Performance/Helpers/ORMColum.cs @@ -0,0 +1,25 @@ +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Reports; +using BenchmarkDotNet.Running; + +namespace Dapper.Tests.Performance.Helpers +{ + public class ORMColum : IColumn + { + public string Id => nameof(ORMColum); + public string ColumnName { get; } = "ORM"; + public string Legend => "The object/relational mapper being tested"; + + public bool IsDefault(Summary summary, Benchmark benchmark) => false; + public string GetValue(Summary summary, Benchmark benchmark) => benchmark.Target.Method.DeclaringType.Name.Replace("Benchmarks", string.Empty); + public string GetValue(Summary summary, Benchmark benchmark, ISummaryStyle style) => benchmark.Target.Method.DeclaringType.Name.Replace("Benchmarks", string.Empty); + + public bool IsAvailable(Summary summary) => true; + public bool AlwaysShow => true; + public ColumnCategory Category => ColumnCategory.Job; + public int PriorityInCategory => -10; + public bool IsNumeric => false; + public UnitType UnitType => UnitType.Dimensionless; + public override string ToString() => ColumnName; + } +} diff --git a/Dapper.Tests.Performance/Helpers/ReturnColum.cs b/Dapper.Tests.Performance/Helpers/ReturnColum.cs new file mode 100644 index 000000000..26105c4fe --- /dev/null +++ b/Dapper.Tests.Performance/Helpers/ReturnColum.cs @@ -0,0 +1,25 @@ +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Reports; +using BenchmarkDotNet.Running; + +namespace Dapper.Tests.Performance.Helpers +{ + public class ReturnColum : IColumn + { + public string Id => nameof(ReturnColum); + public string ColumnName { get; } = "Return"; + public string Legend => "The return type of the method"; + + public bool IsDefault(Summary summary, Benchmark benchmark) => false; + public string GetValue(Summary summary, Benchmark benchmark) => benchmark.Target.Method.ReturnType.Name; + public string GetValue(Summary summary, Benchmark benchmark, ISummaryStyle style) => benchmark.Target.Method.ReturnType.Name; + + public bool IsAvailable(Summary summary) => true; + public bool AlwaysShow => true; + public ColumnCategory Category => ColumnCategory.Job; + public int PriorityInCategory => 1; + public bool IsNumeric => false; + public UnitType UnitType => UnitType.Dimensionless; + public override string ToString() => ColumnName; + } +} diff --git a/Dapper.Tests.Performance/LegacyTests.cs b/Dapper.Tests.Performance/LegacyTests.cs new file mode 100644 index 000000000..190b5d9f1 --- /dev/null +++ b/Dapper.Tests.Performance/LegacyTests.cs @@ -0,0 +1,403 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Linq; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Linq; + +//using BLToolkit.Data; // Note: this doesn't load in the new .csproj system...likely a bug +using Dapper.Tests.Performance.EntityFramework; +using Dapper.Tests.Performance.Linq2Sql; +using Dapper.Tests.Performance.NHibernate; +using Dapper.Contrib.Extensions; +using Massive; +using NHibernate.Criterion; +using NHibernate.Linq; +using ServiceStack.OrmLite; +using ServiceStack.OrmLite.Dapper; +using Susanoo; +using System.Configuration; +using System.Threading.Tasks; +using Dapper.Tests.Performance.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; + +namespace Dapper.Tests.Performance +{ + public class LegacyTests + { + private class Test + { + public Test(Action iteration, string name) + { + Iteration = iteration; + Name = name; + } + + public Test(Func iterationAsync, string name) + { + IterationAsync = iterationAsync; + Name = name; + } + + public Action Iteration { get; set; } + public Func IterationAsync { get; set; } + public string Name { get; set; } + public Stopwatch Watch { get; set; } + } + + private class Tests : List + { + public void Add(Action iteration, string name) + { + Add(new Test(iteration, name)); + } + + public void AsyncAdd(Func iterationAsync, string name) + { + Add(new Test(iterationAsync, name)); + } + + public async Task RunAsync(int iterations) + { + // warmup + foreach (var test in this) + { + test.Iteration?.Invoke(iterations + 1); + if (test.IterationAsync != null) await test.IterationAsync(iterations + 1).ConfigureAwait(false); + test.Watch = new Stopwatch(); + test.Watch.Reset(); + } + + var rand = new Random(); + for (int i = 1; i <= iterations; i++) + { + foreach (var test in this.OrderBy(ignore => rand.Next())) + { + test.Watch.Start(); + test.Iteration?.Invoke(i); + if (test.IterationAsync != null) await test.IterationAsync(i).ConfigureAwait(false); + test.Watch.Stop(); + } + } + + foreach (var test in this.OrderBy(t => t.Watch.ElapsedMilliseconds)) + { + var ms = test.Watch.ElapsedMilliseconds.ToString(); + Console.Write(ms); + Program.WriteColor("ms ".PadRight(8 - ms.Length), ConsoleColor.DarkGray); + Console.WriteLine(test.Name); + } + } + } + + public static string ConnectionString { get; } = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; + + public static SqlConnection GetOpenConnection() + { + var connection = new SqlConnection(ConnectionString); + connection.Open(); + return connection; + } + + private static DataClassesDataContext GetL2SContext(SqlConnection connection) => + new DataClassesDataContext(connection); + + private static void Try(Action action, string blame) + { + try + { + action(); + } + catch (Exception ex) + { + Console.Error.WriteLine($"{blame}: {ex.Message}"); + } + } + + public async Task RunAsync(int iterations) + { + using (var connection = GetOpenConnection()) + { +#pragma warning disable IDE0017 // Simplify object initialization +#pragma warning disable RCS1121 // Use [] instead of calling 'First'. + var tests = new Tests(); + + // Linq2SQL + Try(() => + { + var l2scontext1 = GetL2SContext(connection); + tests.Add(id => l2scontext1.Posts.First(p => p.Id == id), "Linq2Sql: Normal"); + + var l2scontext2 = GetL2SContext(connection); + var compiledGetPost = CompiledQuery.Compile((Linq2Sql.DataClassesDataContext ctx, int id) => ctx.Posts.First(p => p.Id == id)); + tests.Add(id => compiledGetPost(l2scontext2, id), "Linq2Sql: Compiled"); + + var l2scontext3 = GetL2SContext(connection); + tests.Add(id => l2scontext3.ExecuteQuery("select * from Posts where Id = {0}", id).First(), "Linq2Sql: ExecuteQuery"); + }, "LINQ-to-SQL"); + + // Entity Framework + Try(() => + { + var entityContext = new EFContext(connection); + tests.Add(id => entityContext.Posts.First(p => p.Id == id), "Entity Framework"); + + var entityContext2 = new EFContext(connection); + tests.Add(id => entityContext2.Database.SqlQuery("select * from Posts where Id = {0}", id).First(), "Entity Framework: SqlQuery"); + + var entityContext3 = new EFContext(connection); + tests.Add(id => entityContext3.Posts.AsNoTracking().First(p => p.Id == id), "Entity Framework: No Tracking"); + }, "Entity Framework"); + + // Entity Framework Core + Try(() => + { + var entityContext = new EFCoreContext(ConnectionString); + tests.Add(id => entityContext.Posts.First(p => p.Id == id), "Entity Framework Core"); + + var entityContext2 = new EFCoreContext(ConnectionString); + tests.Add(id => entityContext2.Posts.FromSql("select * from Posts where Id = {0}", id).First(), "Entity Framework Core: FromSql"); + + var entityContext3 = new EFContext(connection); + tests.Add(id => entityContext3.Posts.AsNoTracking().First(p => p.Id == id), "Entity Framework Core: No Tracking"); + }, "Entity Framework Core"); + + // Dapper + Try(() => + { + var mapperConnection = GetOpenConnection(); + tests.Add(id => mapperConnection.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: true).First(), "Dapper: Query (buffered)"); + tests.Add(id => mapperConnection.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: false).First(), "Dapper: Query (non-buffered)"); + tests.Add(id => mapperConnection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = id }), "Dapper: QueryFirstOrDefault"); + + var mapperConnection2 = GetOpenConnection(); + tests.Add(id => mapperConnection2.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: true).First(), "Dapper: Dynamic Query (buffered)"); + tests.Add(id => mapperConnection2.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: false).First(), "Dapper: Dynamic Query (non-buffered)"); + tests.Add(id => mapperConnection2.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = id }), "Dapper: Dynamic QueryFirstOrDefault"); + + // dapper.contrib + var mapperConnection3 = GetOpenConnection(); + tests.Add(id => mapperConnection3.Get(id), "Dapper.Contrib"); + }, "Dapper"); + + // Massive + Try(() => + { + var massiveModel = new DynamicModel(ConnectionString); + var massiveConnection = GetOpenConnection(); + tests.Add(id => massiveModel.Query("select * from Posts where Id = @0", massiveConnection, id).First(), "Massive: Dynamic ORM Query"); + }, "Massive"); + + // PetaPoco + Try(() => + { + // PetaPoco test with all default options + var petapoco = new PetaPoco.Database(ConnectionString, "System.Data.SqlClient"); + petapoco.OpenSharedConnection(); + tests.Add(id => petapoco.Fetch("SELECT * from Posts where Id=@0", id).First(), "PetaPoco: Normal"); + + // PetaPoco with some "smart" functionality disabled + var petapocoFast = new PetaPoco.Database(ConnectionString, "System.Data.SqlClient"); + petapocoFast.OpenSharedConnection(); + petapocoFast.EnableAutoSelect = false; + petapocoFast.EnableNamedParams = false; + petapocoFast.ForceDateTimesToUtc = false; + tests.Add(id => petapocoFast.Fetch("SELECT * from Posts where Id=@0", id).First(), "PetaPoco: Fast"); + }, "PetaPoco"); + + // NHibernate + Try(() => + { + var nhSession1 = NHibernateHelper.OpenSession(); + tests.Add(id => nhSession1.CreateSQLQuery("select * from Posts where Id = :id") + .SetInt32("id", id) + .List(), "NHibernate: SQL"); + + var nhSession2 = NHibernateHelper.OpenSession(); + tests.Add(id => nhSession2.CreateQuery("from Post as p where p.Id = :id") + .SetInt32("id", id) + .List(), "NHibernate: HQL"); + + var nhSession3 = NHibernateHelper.OpenSession(); + tests.Add(id => nhSession3.CreateCriteria() + .Add(Restrictions.IdEq(id)) + .List(), "NHibernate: Criteria"); + + var nhSession4 = NHibernateHelper.OpenSession(); + tests.Add(id => nhSession4 + .Query() + .First(p => p.Id == id), "NHibernate: LINQ"); + + var nhSession5 = NHibernateHelper.OpenSession(); + tests.Add(id => nhSession5.Get(id), "NHibernate: Session.Get"); + }, "NHibernate"); + + // Simple.Data + Try(() => + { + var sdb = Simple.Data.Database.OpenConnection(ConnectionString); + tests.Add(id => sdb.Posts.FindById(id).FirstOrDefault(), "Simple.Data"); + }, "Simple.Data"); + + // Belgrade + Try(() => + { + var query = new Belgrade.SqlClient.SqlDb.QueryMapper(ConnectionString); + tests.AsyncAdd(id => query.ExecuteReader("SELECT TOP 1 * FROM Posts WHERE Id = " + id, + reader => + { + var post = new Post(); + post.Id = reader.GetInt32(0); + post.Text = reader.GetString(1); + post.CreationDate = reader.GetDateTime(2); + post.LastChangeDate = reader.GetDateTime(3); + + post.Counter1 = reader.IsDBNull(4) ? null : (int?)reader.GetInt32(4); + post.Counter2 = reader.IsDBNull(5) ? null : (int?)reader.GetInt32(5); + post.Counter3 = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6); + post.Counter4 = reader.IsDBNull(7) ? null : (int?)reader.GetInt32(7); + post.Counter5 = reader.IsDBNull(8) ? null : (int?)reader.GetInt32(8); + post.Counter6 = reader.IsDBNull(9) ? null : (int?)reader.GetInt32(9); + post.Counter7 = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10); + post.Counter8 = reader.IsDBNull(11) ? null : (int?)reader.GetInt32(11); + post.Counter9 = reader.IsDBNull(12) ? null : (int?)reader.GetInt32(12); + }), "Belgrade Sql Client"); + }, "Belgrade Sql Client"); + + //Susanoo + Try(() => + { + var susanooDb = new DatabaseManager(connection); + + var susanooPreDefinedCommand = + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize(); + + var susanooDynamicPreDefinedCommand = + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize(); + + tests.Add(Id => + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize() + .Execute(susanooDb, new { Id }).First(), "Susanoo: Mapping Cache Retrieval"); + + tests.Add(Id => + CommandManager.Instance.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) + .DefineResults() + .Realize() + .Execute(susanooDb, new { Id }).First(), "Susanoo: Dynamic Mapping Cache Retrieval"); + + tests.Add(Id => susanooDynamicPreDefinedCommand + .Execute(susanooDb, new { Id }).First(), "Susanoo: Dynamic Mapping Static"); + + tests.Add(Id => susanooPreDefinedCommand + .Execute(susanooDb, new { Id }).First(), "Susanoo: Mapping Static"); + }, "Susanoo"); + + //ServiceStack's OrmLite: + Try(() => + { + var dbFactory = new OrmLiteConnectionFactory(ConnectionString, SqlServerDialect.Provider); + var db = dbFactory.Open(); + tests.Add(id => db.SingleById(id), "ServiceStack.OrmLite: SingleById"); + }, "ServiceStack.OrmLite"); + + // Hand Coded + Try(() => + { + var postCommand = new SqlCommand() + { + Connection = connection, + CommandText = @"select Id, [Text], [CreationDate], LastChangeDate, + Counter1,Counter2,Counter3,Counter4,Counter5,Counter6,Counter7,Counter8,Counter9 from Posts where Id = @Id" + }; + var idParam = postCommand.Parameters.Add("@Id", SqlDbType.Int); + + tests.Add(id => + { + idParam.Value = id; + + using (var reader = postCommand.ExecuteReader()) + { + reader.Read(); + var post = new Post(); + post.Id = reader.GetInt32(0); + post.Text = reader.GetNullableString(1); + post.CreationDate = reader.GetDateTime(2); + post.LastChangeDate = reader.GetDateTime(3); + + post.Counter1 = reader.GetNullableValue(4); + post.Counter2 = reader.GetNullableValue(5); + post.Counter3 = reader.GetNullableValue(6); + post.Counter4 = reader.GetNullableValue(7); + post.Counter5 = reader.GetNullableValue(8); + post.Counter6 = reader.GetNullableValue(9); + post.Counter7 = reader.GetNullableValue(10); + post.Counter8 = reader.GetNullableValue(11); + post.Counter9 = reader.GetNullableValue(12); + } + }, "Hand Coded"); + +#if !NETSTANDARD1_3 + var table = new DataTable + { + Columns = + { + {"Id", typeof (int)}, + {"Text", typeof (string)}, + {"CreationDate", typeof (DateTime)}, + {"LastChangeDate", typeof (DateTime)}, + {"Counter1", typeof (int)}, + {"Counter2", typeof (int)}, + {"Counter3", typeof (int)}, + {"Counter4", typeof (int)}, + {"Counter5", typeof (int)}, + {"Counter6", typeof (int)}, + {"Counter7", typeof (int)}, + {"Counter8", typeof (int)}, + {"Counter9", typeof (int)}, + } + }; + tests.Add(id => + { + idParam.Value = id; + object[] values = new object[13]; + using (var reader = postCommand.ExecuteReader()) + { + reader.Read(); + reader.GetValues(values); + table.Rows.Add(values); + } + }, "DataTable via IDataReader.GetValues"); +#endif + }, "Hand Coded"); + + // Subsonic isn't maintained anymore - doesn't import correctly + //Try(() => + // { + // // Subsonic ActiveRecord + // tests.Add(id => 3SubSonic.Post.SingleOrDefault(x => x.Id == id), "SubSonic ActiveRecord.SingleOrDefault"); + + // // Subsonic coding horror + // SubSonic.tempdbDB db = new SubSonic.tempdbDB(); + // tests.Add(id => new SubSonic.Query.CodingHorror(db.Provider, "select * from Posts where Id = @0", id).ExecuteTypedList(), "SubSonic Coding Horror"); + //}, "Subsonic"); + + //// BLToolkit - doesn't import correctly in the new .csproj world + //var db1 = new DbManager(GetOpenConnection()); + //tests.Add(id => db1.SetCommand("select * from Posts where Id = @id", db1.Parameter("id", id)).ExecuteList(), "BLToolkit"); + + Console.WriteLine(); + Console.WriteLine("Running..."); + await tests.RunAsync(iterations).ConfigureAwait(false); +#pragma warning restore RCS1121 // Use [] instead of calling 'First'. +#pragma warning restore IDE0017 // Simplify object initialization + } + } + } +} diff --git a/Tests/Linq2Sql/DataClasses.dbml b/Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml similarity index 84% rename from Tests/Linq2Sql/DataClasses.dbml rename to Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml index bf2a0c991..01e3f6fec 100644 --- a/Tests/Linq2Sql/DataClasses.dbml +++ b/Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml @@ -1,20 +1,19 @@ - - - - - - - - - - - - - - - - - - -
+ + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/Tests/Linq2Sql/DataClasses.dbml.layout b/Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml.layout similarity index 98% rename from Tests/Linq2Sql/DataClasses.dbml.layout rename to Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml.layout index 3b729024b..bd0410ee4 100644 --- a/Tests/Linq2Sql/DataClasses.dbml.layout +++ b/Dapper.Tests.Performance/Linq2Sql/DataClasses.dbml.layout @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/Dapper.Tests.Performance/Linq2Sql/DataClasses.designer.cs b/Dapper.Tests.Performance/Linq2Sql/DataClasses.designer.cs new file mode 100644 index 000000000..c8694e839 --- /dev/null +++ b/Dapper.Tests.Performance/Linq2Sql/DataClasses.designer.cs @@ -0,0 +1,423 @@ +#if !NETSTANDARD1_3 +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Dapper.Tests.Performance.Linq2Sql +{ + using System.Data.Linq; + using System.Data.Linq.Mapping; + using System.Data; + using System.Collections.Generic; + using System.Reflection; + using System.Linq; + using System.Linq.Expressions; + using System.ComponentModel; + using System; + + + [global::System.Data.Linq.Mapping.DatabaseAttribute(Name = "tempdb")] + public partial class DataClassesDataContext : System.Data.Linq.DataContext + { + + private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource(); + + #region Extensibility Method Definitions + partial void OnCreated(); + partial void InsertPost(Post instance); + partial void UpdatePost(Post instance); + partial void DeletePost(Post instance); + #endregion + + public DataClassesDataContext(string connection) : + base(connection, mappingSource) + { + OnCreated(); + } + + public DataClassesDataContext(System.Data.IDbConnection connection) : + base(connection, mappingSource) + { + OnCreated(); + } + + public DataClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : + base(connection, mappingSource) + { + OnCreated(); + } + + public DataClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : + base(connection, mappingSource) + { + OnCreated(); + } + + public System.Data.Linq.Table Posts + { + get + { + return this.GetTable(); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.Posts")] + public partial class Post : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private int _Id; + + private string _Text; + + private System.DateTime _CreationDate; + + private System.DateTime _LastChangeDate; + + private System.Nullable _Counter1; + + private System.Nullable _Counter2; + + private System.Nullable _Counter3; + + private System.Nullable _Counter4; + + private System.Nullable _Counter5; + + private System.Nullable _Counter6; + + private System.Nullable _Counter7; + + private System.Nullable _Counter8; + + private System.Nullable _Counter9; + + #region Extensibility Method Definitions + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnIdChanging(int value); + partial void OnIdChanged(); + partial void OnTextChanging(string value); + partial void OnTextChanged(); + partial void OnCreationDateChanging(System.DateTime value); + partial void OnCreationDateChanged(); + partial void OnLastChangeDateChanging(System.DateTime value); + partial void OnLastChangeDateChanged(); + partial void OnCounter1Changing(System.Nullable value); + partial void OnCounter1Changed(); + partial void OnCounter2Changing(System.Nullable value); + partial void OnCounter2Changed(); + partial void OnCounter3Changing(System.Nullable value); + partial void OnCounter3Changed(); + partial void OnCounter4Changing(System.Nullable value); + partial void OnCounter4Changed(); + partial void OnCounter5Changing(System.Nullable value); + partial void OnCounter5Changed(); + partial void OnCounter6Changing(System.Nullable value); + partial void OnCounter6Changed(); + partial void OnCounter7Changing(System.Nullable value); + partial void OnCounter7Changed(); + partial void OnCounter8Changing(System.Nullable value); + partial void OnCounter8Changed(); + partial void OnCounter9Changing(System.Nullable value); + partial void OnCounter9Changed(); + #endregion + + public Post() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Id", AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)] + public int Id + { + get + { + return this._Id; + } + set + { + if ((this._Id != value)) + { + this.OnIdChanging(value); + this.SendPropertyChanging(); + this._Id = value; + this.SendPropertyChanged("Id"); + this.OnIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Text", DbType = "VarChar(MAX) NOT NULL", CanBeNull = false)] + public string Text + { + get + { + return this._Text; + } + set + { + if ((this._Text != value)) + { + this.OnTextChanging(value); + this.SendPropertyChanging(); + this._Text = value; + this.SendPropertyChanged("Text"); + this.OnTextChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_CreationDate", DbType = "DateTime NOT NULL")] + public System.DateTime CreationDate + { + get + { + return this._CreationDate; + } + set + { + if ((this._CreationDate != value)) + { + this.OnCreationDateChanging(value); + this.SendPropertyChanging(); + this._CreationDate = value; + this.SendPropertyChanged("CreationDate"); + this.OnCreationDateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_LastChangeDate", DbType = "DateTime NOT NULL")] + public System.DateTime LastChangeDate + { + get + { + return this._LastChangeDate; + } + set + { + if ((this._LastChangeDate != value)) + { + this.OnLastChangeDateChanging(value); + this.SendPropertyChanging(); + this._LastChangeDate = value; + this.SendPropertyChanged("LastChangeDate"); + this.OnLastChangeDateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter1", DbType = "Int")] + public System.Nullable Counter1 + { + get + { + return this._Counter1; + } + set + { + if ((this._Counter1 != value)) + { + this.OnCounter1Changing(value); + this.SendPropertyChanging(); + this._Counter1 = value; + this.SendPropertyChanged("Counter1"); + this.OnCounter1Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter2", DbType = "Int")] + public System.Nullable Counter2 + { + get + { + return this._Counter2; + } + set + { + if ((this._Counter2 != value)) + { + this.OnCounter2Changing(value); + this.SendPropertyChanging(); + this._Counter2 = value; + this.SendPropertyChanged("Counter2"); + this.OnCounter2Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter3", DbType = "Int")] + public System.Nullable Counter3 + { + get + { + return this._Counter3; + } + set + { + if ((this._Counter3 != value)) + { + this.OnCounter3Changing(value); + this.SendPropertyChanging(); + this._Counter3 = value; + this.SendPropertyChanged("Counter3"); + this.OnCounter3Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter4", DbType = "Int")] + public System.Nullable Counter4 + { + get + { + return this._Counter4; + } + set + { + if ((this._Counter4 != value)) + { + this.OnCounter4Changing(value); + this.SendPropertyChanging(); + this._Counter4 = value; + this.SendPropertyChanged("Counter4"); + this.OnCounter4Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter5", DbType = "Int")] + public System.Nullable Counter5 + { + get + { + return this._Counter5; + } + set + { + if ((this._Counter5 != value)) + { + this.OnCounter5Changing(value); + this.SendPropertyChanging(); + this._Counter5 = value; + this.SendPropertyChanged("Counter5"); + this.OnCounter5Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter6", DbType = "Int")] + public System.Nullable Counter6 + { + get + { + return this._Counter6; + } + set + { + if ((this._Counter6 != value)) + { + this.OnCounter6Changing(value); + this.SendPropertyChanging(); + this._Counter6 = value; + this.SendPropertyChanged("Counter6"); + this.OnCounter6Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter7", DbType = "Int")] + public System.Nullable Counter7 + { + get + { + return this._Counter7; + } + set + { + if ((this._Counter7 != value)) + { + this.OnCounter7Changing(value); + this.SendPropertyChanging(); + this._Counter7 = value; + this.SendPropertyChanged("Counter7"); + this.OnCounter7Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter8", DbType = "Int")] + public System.Nullable Counter8 + { + get + { + return this._Counter8; + } + set + { + if ((this._Counter8 != value)) + { + this.OnCounter8Changing(value); + this.SendPropertyChanging(); + this._Counter8 = value; + this.SendPropertyChanged("Counter8"); + this.OnCounter8Changed(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_Counter9", DbType = "Int")] + public System.Nullable Counter9 + { + get + { + return this._Counter9; + } + set + { + if ((this._Counter9 != value)) + { + this.OnCounter9Changing(value); + this.SendPropertyChanging(); + this._Counter9 = value; + this.SendPropertyChanged("Counter9"); + this.OnCounter9Changed(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } +} +#pragma warning restore 1591 +#endif diff --git a/Tests/Massive/Massive.cs b/Dapper.Tests.Performance/Massive/Massive.cs similarity index 89% rename from Tests/Massive/Massive.cs rename to Dapper.Tests.Performance/Massive/Massive.cs index 44106ff16..e564fe5d7 100644 --- a/Tests/Massive/Massive.cs +++ b/Dapper.Tests.Performance/Massive/Massive.cs @@ -1,15 +1,14 @@ -using System; +#if !NETSTANDARD1_3 +using System; using System.Collections.Generic; using System.Collections.Specialized; -using System.Configuration; using System.Data; using System.Data.Common; using System.Dynamic; using System.Linq; using System.Text; -using System.Collections; -using System.Text.RegularExpressions; +#pragma warning disable RCS1141 // Add parameter to documentation comment. namespace Massive { public static class ObjectExtensions @@ -70,6 +69,7 @@ public static List ToExpandoList(this IDataReader rdr) } return result; } + public static dynamic RecordToExpando(this IDataReader rdr) { dynamic e = new ExpandoObject(); @@ -114,9 +114,11 @@ public static IDictionary ToDictionary(this object thingy) /// public class DynamicModel { - DbProviderFactory _factory; + private readonly DbProviderFactory _factory; #pragma warning disable 0649 - string _connectionString; +#pragma warning disable RCS1169 // Mark field as read-only. + private string _connectionString; +#pragma warning restore RCS1169 // Mark field as read-only. #pragma warning restore 0649 public DynamicModel(string connectionStringName = "", string tableName = "", string primaryKeyField = "") @@ -151,20 +153,20 @@ public virtual IEnumerable Query(string sql, params object[] args) var rdr = CreateCommand(sql, conn, args).ExecuteReader(); while (rdr.Read()) { - yield return rdr.RecordToExpando(); ; + yield return rdr.RecordToExpando(); } } } + public virtual IEnumerable Query(string sql, DbConnection connection, params object[] args) { using (var rdr = CreateCommand(sql, connection, args).ExecuteReader()) { while (rdr.Read()) { - yield return rdr.RecordToExpando(); ; + yield return rdr.RecordToExpando(); } } - } /// /// Returns a single result @@ -181,7 +183,7 @@ public virtual object Scalar(string sql, params object[] args) /// /// Creates a DBCommand that you can use for loving your database. /// - DbCommand CreateCommand(string sql, DbConnection conn, params object[] args) + private DbCommand CreateCommand(string sql, DbConnection conn, params object[] args) { var result = _factory.CreateCommand(); result.Connection = conn; @@ -232,6 +234,7 @@ public virtual int Save(params object[] things) var commands = BuildCommands(things); return Execute(commands); } + public virtual int Execute(DbCommand command) { return Execute(new DbCommand[] { command }); @@ -257,6 +260,7 @@ public virtual int Execute(IEnumerable commands) } return result; } + public virtual string PrimaryKeyField { get; set; } /// /// Conventionally introspects the object passed in for a field that @@ -272,10 +276,10 @@ public virtual bool HasPrimaryKey(object o) /// public virtual object GetPrimaryKey(object o) { - object result = null; - o.ToDictionary().TryGetValue(PrimaryKeyField, out result); + o.ToDictionary().TryGetValue(PrimaryKeyField, out object result); return result; } + public virtual string TableName { get; set; } /// /// Creates a command for use with transactions - internal stuff mostly, but here for you to play with @@ -287,7 +291,7 @@ public virtual DbCommand CreateInsertCommand(object o) var settings = (IDictionary)expando; var sbKeys = new StringBuilder(); var sbVals = new StringBuilder(); - var stub = "INSERT INTO {0} ({1}) \r\n VALUES ({2})"; + const string stub = "INSERT INTO {0} ({1}) \r\n VALUES ({2})"; result = CreateCommand(stub, null); int counter = 0; foreach (var item in settings) @@ -301,10 +305,13 @@ public virtual DbCommand CreateInsertCommand(object o) { var keys = sbKeys.ToString().Substring(0, sbKeys.Length - 1); var vals = sbVals.ToString().Substring(0, sbVals.Length - 1); - var sql = string.Format(stub, TableName, keys, vals); - result.CommandText = sql; + result.CommandText = string.Format(stub, TableName, keys, vals); } - else throw new InvalidOperationException("Can't parse this object to the database - there are no properties set"); + else + { + throw new InvalidOperationException("Can't parse this object to the database - there are no properties set"); + } + return result; } /// @@ -315,7 +322,7 @@ public virtual DbCommand CreateUpdateCommand(object o, object key) var expando = o.ToExpando(); var settings = (IDictionary)expando; var sbKeys = new StringBuilder(); - var stub = "UPDATE {0} SET {1} WHERE {2} = @{3}"; + const string stub = "UPDATE {0} SET {1} WHERE {2} = @{3}"; var args = new List(); var result = CreateCommand(stub, null); int counter = 0; @@ -337,7 +344,11 @@ public virtual DbCommand CreateUpdateCommand(object o, object key) var keys = sbKeys.ToString().Substring(0, sbKeys.Length - 4); result.CommandText = string.Format(stub, TableName, keys, PrimaryKeyField, counter); } - else throw new InvalidOperationException("No parsable object was sent in - could not divine any name/value pairs"); + else + { + throw new InvalidOperationException("No parsable object was sent in - could not divine any name/value pairs"); + } + return result; } /// @@ -398,7 +409,7 @@ public virtual IEnumerable All(string where = "", string orderBy = "", string sql = limit > 0 ? "SELECT TOP " + limit + " {0} FROM {1} " : "SELECT {0} FROM {1} "; if (!string.IsNullOrEmpty(where)) sql += where.Trim().StartsWith("where", StringComparison.CurrentCultureIgnoreCase) ? where : "WHERE " + where; - if (!String.IsNullOrEmpty(orderBy)) + if (!string.IsNullOrEmpty(orderBy)) sql += orderBy.Trim().StartsWith("order by", StringComparison.CurrentCultureIgnoreCase) ? orderBy : " ORDER BY " + orderBy; return Query(string.Format(sql, columns, TableName), args); } @@ -410,7 +421,7 @@ public virtual dynamic Paged(string where = "", string orderBy = "", string colu { dynamic result = new ExpandoObject(); var countSQL = string.Format("SELECT COUNT({0}) FROM {1}", PrimaryKeyField, TableName); - if (String.IsNullOrEmpty(orderBy)) + if (string.IsNullOrEmpty(orderBy)) orderBy = PrimaryKeyField; if (!string.IsNullOrEmpty(where)) @@ -422,7 +433,7 @@ public virtual dynamic Paged(string where = "", string orderBy = "", string colu } var sql = string.Format("SELECT {0} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {2}) AS Row, {0} FROM {3} {4}) AS Paged ", columns, pageSize, orderBy, TableName, where); var pageStart = (currentPage - 1) * pageSize; - sql += string.Format(" WHERE Row >={0} AND Row <={1}", pageStart, (pageStart + pageSize)); + sql += string.Format(" WHERE Row >={0} AND Row <={1}", pageStart, pageStart + pageSize); countSQL += where; result.TotalRecords = Scalar(countSQL, args); result.TotalPages = result.TotalRecords / pageSize; @@ -436,9 +447,11 @@ public virtual dynamic Paged(string where = "", string orderBy = "", string colu /// public virtual dynamic Single(object key, string columns = "*") { - var sql = string.Format("SELECT {0} FROM {1} WHERE {2} = @0", columns, TableName, PrimaryKeyField); + var sql = $"SELECT {columns} FROM {TableName} WHERE {PrimaryKeyField} = @0"; var items = Query(sql, key).ToList(); return items.FirstOrDefault(); } } -} \ No newline at end of file +} +#pragma warning restore RCS1141 // Add parameter to documentation comment. +#endif diff --git a/Tests/NHibernate/NHibernateHelper.cs b/Dapper.Tests.Performance/NHibernate/NHibernateHelper.cs similarity index 68% rename from Tests/NHibernate/NHibernateHelper.cs rename to Dapper.Tests.Performance/NHibernate/NHibernateHelper.cs index d1773d765..9c349211f 100644 --- a/Tests/NHibernate/NHibernateHelper.cs +++ b/Dapper.Tests.Performance/NHibernate/NHibernateHelper.cs @@ -1,10 +1,9 @@ -using System.Data; -using NHibernate; +using NHibernate; using NHibernate.Cfg; -namespace SqlMapper.NHibernate +namespace Dapper.Tests.Performance.NHibernate { - public class NHibernateHelper + public static class NHibernateHelper { private static ISessionFactory _sessionFactory; @@ -15,9 +14,9 @@ private static ISessionFactory SessionFactory if (_sessionFactory == null) { var configuration = new Configuration(); - configuration.Configure(@"..\..\NHibernate\hibernate.cfg.xml"); + configuration.Configure(@".\NHibernate\hibernate.cfg.xml"); configuration.AddAssembly(typeof(Post).Assembly); - configuration.AddXmlFile(@"..\..\NHibernate\Post.hbm.xml"); + configuration.AddXmlFile(@".\NHibernate\Post.hbm.xml"); _sessionFactory = configuration.BuildSessionFactory(); } @@ -30,4 +29,4 @@ public static IStatelessSession OpenSession() return SessionFactory.OpenStatelessSession(); } } -} +} \ No newline at end of file diff --git a/Tests/NHibernate/Post.hbm.xml b/Dapper.Tests.Performance/NHibernate/Post.hbm.xml similarity index 87% rename from Tests/NHibernate/Post.hbm.xml rename to Dapper.Tests.Performance/NHibernate/Post.hbm.xml index d38252155..585912554 100644 --- a/Tests/NHibernate/Post.hbm.xml +++ b/Dapper.Tests.Performance/NHibernate/Post.hbm.xml @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tests/NHibernate/hibernate.cfg.xml b/Dapper.Tests.Performance/NHibernate/hibernate.cfg.xml similarity index 61% rename from Tests/NHibernate/hibernate.cfg.xml rename to Dapper.Tests.Performance/NHibernate/hibernate.cfg.xml index ffede3ba3..49212ff61 100644 --- a/Tests/NHibernate/hibernate.cfg.xml +++ b/Dapper.Tests.Performance/NHibernate/hibernate.cfg.xml @@ -1,12 +1,11 @@ - - - - NHibernate.Connection.DriverConnectionProvider - NHibernate.Dialect.MsSql2005Dialect - NHibernate.Driver.SqlClientDriver - Smackdown.Properties.Settings.tempdbConnectionString - NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu - false - false - + + + + NHibernate.Connection.DriverConnectionProvider + NHibernate.Dialect.MsSql2005Dialect + NHibernate.Driver.SqlClientDriver + Main + false + + \ No newline at end of file diff --git a/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs b/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs new file mode 100644 index 000000000..9f13ea3f7 --- /dev/null +++ b/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs @@ -0,0 +1,1446 @@ +#if !NETSTANDARD1_3 +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Configuration; +using System.Data.Common; +using System.Data; +using System.Text.RegularExpressions; +using System.Reflection; +using System.Reflection.Emit; + +#pragma warning disable RCS1023 // Format empty block. +namespace PetaPoco +{ + // Poco's marked [Explicit] require all column properties to be marked + [AttributeUsage(AttributeTargets.Class)] + public class ExplicitColumns : Attribute + { + } + // For non-explicit pocos, causes a property to be ignored + [AttributeUsage(AttributeTargets.Property)] + public class Ignore : Attribute + { + } + + // For explicit pocos, marks property as a column and optionally supplies column name + [AttributeUsage(AttributeTargets.Property)] + public class Column : Attribute + { + public Column() { } + public Column(string name) { Name = name; } + public string Name { get; set; } + } + + // For explicit pocos, marks property as a result column and optionally supplies column name + [AttributeUsage(AttributeTargets.Property)] + public class ResultColumn : Column + { + public ResultColumn() { } + public ResultColumn(string name) : base(name) { } + } + + // Specify the table name of a poco + [AttributeUsage(AttributeTargets.Class)] + public class TableName : Attribute + { + public TableName(string tableName) + { + Value = tableName; + } + + public string Value { get; } + } + + // Specific the primary key of a poco class + [AttributeUsage(AttributeTargets.Class)] + public class PrimaryKey : Attribute + { + public PrimaryKey(string primaryKey) + { + Value = primaryKey; + } + + public string Value { get; } + } + + // Results from paged request + public class Page where T : new() + { + public long CurrentPage { get; set; } + public long TotalPages { get; set; } + public long TotalItems { get; set; } + public long ItemsPerPage { get; set; } + public List Items { get; set; } + } + + // Optionally provide and implementation of this to Database.Mapper + public interface IMapper + { + void GetTableInfo(Type t, ref string tableName, ref string primaryKey); + bool MapPropertyToColumn(PropertyInfo pi, ref string columnName, ref bool resultColumn); + Func GetValueConverter(PropertyInfo pi, Type SourceType); + } + + // Database class ... this is where most of the action happens + public class Database : IDisposable + { + public Database(DbConnection connection) + { + _sharedConnection = connection; + _connectionString = connection.ConnectionString; + _sharedConnectionDepth = 2; // Prevent closing external connection + CommonConstruct(); + } + + public Database(string connectionString, string providerName) + { + _connectionString = connectionString; + _providerName = providerName; + CommonConstruct(); + } + + public Database(string connectionStringName) + { + // Use first? + if (connectionStringName == string.Empty) + connectionStringName = ConfigurationManager.ConnectionStrings[0].Name; + + // Work out connection string and provider name + var providerName = "System.Data.SqlClient"; + if (ConfigurationManager.ConnectionStrings[connectionStringName] != null) + { + if (!string.IsNullOrEmpty(ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName)) + providerName = ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName; + } + else + { + throw new InvalidOperationException("Can't find a connection string with the name '" + connectionStringName + "'"); + } + + // Store factory and connection string + _connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; + _providerName = providerName; + CommonConstruct(); + } + + private + + // Common initialization + void CommonConstruct() + { + _transactionDepth = 0; + EnableAutoSelect = true; + EnableNamedParams = true; + ForceDateTimesToUtc = true; + + if (_providerName != null) + _factory = DbProviderFactories.GetFactory(_providerName); + + if (_connectionString?.IndexOf("Allow User Variables=true") >= 0 && IsMySql()) + _paramPrefix = "?"; + } + + // Automatically close one open shared connection + public void Dispose() + { + if (_sharedConnectionDepth > 0) + CloseSharedConnection(); + } + + // Who are we talking too? + private bool IsMySql() { return string.Compare(_providerName, "MySql.Data.MySqlClient", true) == 0; } + private bool IsSqlServer() { return string.Compare(_providerName, "System.Data.SqlClient", true) == 0; } + + // Open a connection (can be nested) + public void OpenSharedConnection() + { + if (_sharedConnectionDepth == 0) + { + _sharedConnection = _factory.CreateConnection(); + _sharedConnection.ConnectionString = _connectionString; + _sharedConnection.Open(); + } + _sharedConnectionDepth++; + } + + // Close a previously opened connection + public void CloseSharedConnection() + { + _sharedConnectionDepth--; + if (_sharedConnectionDepth == 0) + { + _sharedConnection.Dispose(); + _sharedConnection = null; + } + } + + // Helper to create a transaction scope + public Transaction Transaction => new Transaction(this); + + // Use by derived repo generated by T4 templates + public virtual void OnBeginTransaction() { } + public virtual void OnEndTransaction() { } + + // Start a new transaction, can be nested, every call must be + // matched by a call to AbortTransaction or CompleteTransaction + // Use `using (var scope=db.Transaction) { scope.Complete(); }` to ensure correct semantics + public void BeginTransaction() + { + _transactionDepth++; + + if (_transactionDepth == 1) + { + OpenSharedConnection(); + _transaction = _sharedConnection.BeginTransaction(); + _transactionCancelled = false; + OnBeginTransaction(); + } + } + + private + + // Internal helper to cleanup transaction stuff + void CleanupTransaction() + { + OnEndTransaction(); + + if (_transactionCancelled) + _transaction.Rollback(); + else + _transaction.Commit(); + + _transaction.Dispose(); + _transaction = null; + + CloseSharedConnection(); + } + + // Abort the entire outer most transaction scope + public void AbortTransaction() + { + _transactionCancelled = true; + if ((--_transactionDepth) == 0) + CleanupTransaction(); + } + + // Complete the transaction + public void CompleteTransaction() + { + if ((--_transactionDepth) == 0) + CleanupTransaction(); + } + + // Helper to handle named parameters from object properties + private static readonly Regex rxParams = new Regex(@"(? args_dest) + { + return rxParams.Replace(_sql, m => + { + string param = m.Value.Substring(1); + + if (int.TryParse(param, out int paramIndex)) + { + // Numbered parameter + if (paramIndex < 0 || paramIndex >= args_src.Length) + throw new ArgumentOutOfRangeException(string.Format("Parameter '@{0}' specified but only {1} parameters supplied (in `{2}`)", paramIndex, args_src.Length, _sql)); + args_dest.Add(args_src[paramIndex]); + } + else + { + // Look for a property on one of the arguments with this name + bool found = false; + foreach (var o in args_src) + { + var pi = o.GetType().GetProperty(param); + if (pi != null) + { + args_dest.Add(pi.GetValue(o, null)); + found = true; + break; + } + } + + if (!found) + throw new ArgumentException(string.Format("Parameter '@{0}' specified but none of the passed arguments have a property with this name (in '{1}')", param, _sql)); + } + + return "@" + (args_dest.Count - 1).ToString(); + } + ); + } + + // Add a parameter to a DB command + private static void AddParam(DbCommand cmd, object item, string ParameterPrefix) + { + var p = cmd.CreateParameter(); + p.ParameterName = string.Format("{0}{1}", ParameterPrefix, cmd.Parameters.Count); + if (item == null) + { + p.Value = DBNull.Value; + } + else + { + if (item.GetType() == typeof(Guid)) + { + p.Value = item.ToString(); + p.DbType = DbType.String; + p.Size = 4000; + } + else if (item.GetType() == typeof(string)) + { + p.Size = (item as string).Length + 1; + if (p.Size < 4000) + p.Size = 4000; + p.Value = item; + } + else + { + p.Value = item; + } + } + + cmd.Parameters.Add(p); + } + + // Create a command + public DbCommand CreateCommand(DbConnection connection, string sql, params object[] args) + { + if (EnableNamedParams) + { + // Perform named argument replacements + var new_args = new List(); + sql = ProcessParams(sql, args, new_args); + args = new_args.ToArray(); + } + + // If we're in MySQL "Allow User Variables", we need to fix up parameter prefixes + if (_paramPrefix == "?") + { + // Convert "@parameter" -> "?parameter" + Regex paramReg = new Regex(@"(? "?" + m.Value.Substring(1)); + + // Convert @@uservar -> @uservar and @@@systemvar -> @@systemvar + sql = sql.Replace("@@", "@"); + } + + // Save the last sql and args + _lastSql = sql; + _lastArgs = args; + + DbCommand cmd = connection.CreateCommand(); + cmd.CommandText = sql; + cmd.Transaction = _transaction; + foreach (var item in args) + { + var p = cmd.CreateParameter(); + p.ParameterName = string.Format("{0}{1}", _paramPrefix, cmd.Parameters.Count); + if (item == null) + { + p.Value = DBNull.Value; + } + else + { + if (item.GetType() == typeof(Guid)) + { + p.Value = item.ToString(); + p.DbType = DbType.String; + p.Size = 4000; + } + else if (item.GetType() == typeof(string)) + { + p.Size = (item as string).Length + 1; + if (p.Size < 4000) + p.Size = 4000; + p.Value = item; + } + else + { + p.Value = item; + } + } + + cmd.Parameters.Add(p); + } + return cmd; + } + + // Override this to log/capture exceptions + public virtual void OnException(Exception x) + { + System.Diagnostics.Debug.WriteLine(x.ToString()); + System.Diagnostics.Debug.WriteLine(LastCommand); + } + + // Execute a non-query command + public int Execute(string sql, params object[] args) + { + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, sql, args)) + { + return cmd.ExecuteNonQuery(); + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + public int Execute(Sql sql) + { + return Execute(sql.SQL, sql.Arguments); + } + + // Execute and cast a scalar property + public T ExecuteScalar(string sql, params object[] args) + { + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, sql, args)) + { + object val = cmd.ExecuteScalar(); + return (T)Convert.ChangeType(val, typeof(T)); + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + public T ExecuteScalar(Sql sql) + { + return ExecuteScalar(sql.SQL, sql.Arguments); + } + + private readonly Regex rxSelect = new Regex(@"^\s*SELECT\s", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline); + + private string AddSelectClause(string sql) + { + // Already present? + if (rxSelect.IsMatch(sql)) + return sql; + + // Get the poco data for this type + var pd = PocoData.ForType(typeof(T)); + return string.Format("SELECT {0} FROM {1} {2}", pd.QueryColumns, pd.TableName, sql); + } + + public bool EnableAutoSelect { get; set; } + public bool EnableNamedParams { get; set; } + public bool ForceDateTimesToUtc { get; set; } + + // Return a typed list of pocos + public List Fetch(string sql, params object[] args) where T : new() + { + // Auto select clause? + if (EnableAutoSelect) + sql = AddSelectClause(sql); + + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, sql, args)) + { + using (var r = cmd.ExecuteReader()) + { + var l = new List(); + var pd = PocoData.ForType(typeof(T)); + var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); + while (r.Read()) + { + l.Add(factory(r)); + } + return l; + } + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + // Optimized version when only needing a single record + public T FirstOrDefault(string sql, params object[] args) where T : new() + { + // Auto select clause? + if (EnableAutoSelect) + sql = AddSelectClause(sql); + + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, sql, args)) + { + using (var r = cmd.ExecuteReader()) + { + if (!r.Read()) + return default(T); + + var pd = PocoData.ForType(typeof(T)); + var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); + return factory(r); + } + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + // Optimized version when only wanting a single record + public T SingleOrDefault(string sql, params object[] args) where T : new() + { + // Auto select clause? + if (EnableAutoSelect) + sql = AddSelectClause(sql); + + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, sql, args)) + { + using (var r = cmd.ExecuteReader()) + { + if (!r.Read()) + return default(T); + + var pd = PocoData.ForType(typeof(T)); + var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); + T ret = factory(r); + + if (r.Read()) + throw new InvalidOperationException("Sequence contains more than one element"); + + return ret; + } + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + // Warning: scary regex follows + private static readonly Regex rxColumns = new Regex(@"^\s*SELECT\s+((?:\((?>\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|.)*?)(?\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|[\w\(\)\.])+(?:\s+(?:ASC|DESC))?(?:\s*,\s*(?:\((?>\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|[\w\(\)\.])+(?:\s+(?:ASC|DESC))?)*", + RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.Compiled); + public static bool SplitSqlForPaging(string sql, out string sqlCount, out string sqlSelectRemoved, out string sqlOrderBy) + { + sqlSelectRemoved = null; + sqlCount = null; + sqlOrderBy = null; + + // Extract the columns from "SELECT FROM" + var m = rxColumns.Match(sql); + if (!m.Success) + return false; + + // Save column list and replace with COUNT(*) + Group g = m.Groups[1]; + sqlCount = sql.Substring(0, g.Index) + "COUNT(*) " + sql.Substring(g.Index + g.Length); + sqlSelectRemoved = sql.Substring(g.Index); + + // Look for an "ORDER BY " clause + m = rxOrderBy.Match(sqlCount); + if (!m.Success) + return false; + + g = m.Groups[0]; + sqlOrderBy = g.ToString(); + sqlCount = sqlCount.Substring(0, g.Index) + sqlCount.Substring(g.Index + g.Length); + + return true; + } + + // Fetch a page + public Page Page(long page, long itemsPerPage, string sql, params object[] args) where T : new() + { + // Add auto select clause + if (EnableAutoSelect) + sql = AddSelectClause(sql); + if (!SplitSqlForPaging(sql, out string sqlCount, out string sqlSelectRemoved, out string sqlOrderBy)) + throw new Exception("Unable to parse SQL statement for paged query"); + + // Setup the paged result + var result = new Page(); + result.CurrentPage = page; + result.ItemsPerPage = itemsPerPage; + result.TotalItems = ExecuteScalar(sqlCount, args); + result.TotalPages = result.TotalItems / itemsPerPage; + if ((result.TotalItems % itemsPerPage) != 0) + result.TotalPages++; + + // Build the SQL for the actual final result + string sqlPage; + if (IsSqlServer()) + { + // Ugh really? + sqlSelectRemoved = rxOrderBy.Replace(sqlSelectRemoved, ""); + sqlPage = string.Format("SELECT * FROM (SELECT ROW_NUMBER() OVER ({0}) AS __rn, {1}) as __paged WHERE __rn>{2} AND __rn<={3}", + sqlOrderBy, sqlSelectRemoved, (page - 1) * itemsPerPage, page * itemsPerPage); + } + else + { + // Nice + sqlPage = string.Format("{0}\nLIMIT {1} OFFSET {2}", sql, itemsPerPage, (page - 1) * itemsPerPage); + } + + // Get the records + result.Items = Fetch(sqlPage, args); + + // Done + return result; + } + + public Page Page(long page, long itemsPerPage, Sql sql) where T : new() + { + return Page(page, itemsPerPage, sql.SQL, sql.Arguments); + } + + // Return an enumerable collection of pocos + public IEnumerable Query(string sql, params object[] args) where T : new() + { + if (EnableAutoSelect) + sql = AddSelectClause(sql); + + using (var conn = new ShareableConnection(this)) + { + using (var cmd = CreateCommand(conn.Connection, sql, args)) + { + IDataReader r; + var pd = PocoData.ForType(typeof(T)); + try + { + r = cmd.ExecuteReader(); + } + catch (Exception x) + { + OnException(x); + throw; + } + var factory = pd.GetFactory(sql + "-" + conn.Connection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); + using (r) + { + while (true) + { + T poco; + try + { + if (!r.Read()) + yield break; + poco = factory(r); + } + catch (Exception x) + { + OnException(x); + throw; + } + + yield return poco; + } + } + } + } + } + + public List Fetch(Sql sql) where T : new() + { + return Fetch(sql.SQL, sql.Arguments); + } + + public IEnumerable Query(Sql sql) where T : new() + { + return Query(sql.SQL, sql.Arguments); + } + + public T Single(string sql, params object[] args) where T : new() + { + T val = SingleOrDefault(sql, args); + if (!EqualityComparer.Default.Equals(val, default(T))) + return val; + else + throw new InvalidOperationException("The sequence contains no elements"); + } + + public T First(string sql, params object[] args) where T : new() + { + T val = FirstOrDefault(sql, args); + if (!EqualityComparer.Default.Equals(val, default(T))) + return val; + else + throw new InvalidOperationException("The sequence contains no elements"); + } + + public T Single(Sql sql) where T : new() + { + return Single(sql.SQL, sql.Arguments); + } + + public T SingleOrDefault(Sql sql) where T : new() + { + return SingleOrDefault(sql.SQL, sql.Arguments); + } + + public T FirstOrDefault(Sql sql) where T : new() + { + return FirstOrDefault(sql.SQL, sql.Arguments); + } + + public T First(Sql sql) where T : new() + { + return First(sql.SQL, sql.Arguments); + } + + // Insert a poco into a table. If the poco has a property with the same name + // as the primary key the id of the new record is assigned to it. Either way, + // the new id is returned. + public object Insert(string tableName, string primaryKeyName, object poco) + { + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, "")) + { + var pd = PocoData.ForType(poco.GetType()); + var names = new List(); + var values = new List(); + var index = 0; + foreach (var i in pd.Columns) + { + // Don't insert the primary key or result only columns + if ((primaryKeyName != null && i.Key == primaryKeyName) || i.Value.ResultColumn) + continue; + + names.Add(i.Key); + values.Add(string.Format("{0}{1}", _paramPrefix, index++)); + AddParam(cmd, i.Value.PropertyInfo.GetValue(poco, null), _paramPrefix); + } + + cmd.CommandText = string.Format("INSERT INTO {0} ({1}) VALUES ({2}); SELECT @@IDENTITY AS NewID;", + tableName, + string.Join(",", names.ToArray()), + string.Join(",", values.ToArray()) + ); + + _lastSql = cmd.CommandText; + _lastArgs = values.ToArray(); + + // Insert the record, should get back it's ID + var id = cmd.ExecuteScalar(); + + // Assign the ID back to the primary key property + if (primaryKeyName != null) + { + if (pd.Columns.TryGetValue(primaryKeyName, out PocoColumn pc)) + { + pc.PropertyInfo.SetValue(poco, Convert.ChangeType(id, pc.PropertyInfo.PropertyType), null); + } + } + + return id; + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + // Insert an annotated poco object + public object Insert(object poco) + { + var pd = PocoData.ForType(poco.GetType()); + return Insert(pd.TableName, pd.PrimaryKey, poco); + } + + // Update a record with values from a poco. primary key value can be either supplied or read from the poco + public int Update(string tableName, string primaryKeyName, object poco, object primaryKeyValue) + { + try + { + OpenSharedConnection(); + try + { + using (var cmd = CreateCommand(_sharedConnection, "")) + { + var sb = new StringBuilder(); + var index = 0; + var pd = PocoData.ForType(poco.GetType()); + foreach (var i in pd.Columns) + { + // Don't update the primary key, but grab the value if we don't have it + if (i.Key == primaryKeyName) + { + primaryKeyValue = primaryKeyValue ?? i.Value.PropertyInfo.GetValue(poco, null); + continue; + } + + // Dont update result only columns + if (i.Value.ResultColumn) + continue; + + // Build the sql + if (index > 0) + sb.Append(", "); + sb.AppendFormat("{0} = {1}{2}", i.Key, _paramPrefix, index++); + + // Store the parameter in the command + AddParam(cmd, i.Value.PropertyInfo.GetValue(poco, null), _paramPrefix); + } + + cmd.CommandText = string.Format("UPDATE {0} SET {1} WHERE {2} = {3}{4}", + tableName, + sb.ToString(), + primaryKeyName, + _paramPrefix, + index++ + ); + AddParam(cmd, primaryKeyValue, _paramPrefix); + + _lastSql = cmd.CommandText; + _lastArgs = new object[] { primaryKeyValue }; + + // Do it + return cmd.ExecuteNonQuery(); + } + } + finally + { + CloseSharedConnection(); + } + } + catch (Exception x) + { + OnException(x); + throw; + } + } + + public int Update(string tableName, string primaryKeyName, object poco) + { + return Update(tableName, primaryKeyName, poco, null); + } + + public int Update(object poco) + { + return Update(poco, null); + } + + public int Update(object poco, object primaryKeyValue) + { + var pd = PocoData.ForType(poco.GetType()); + return Update(pd.TableName, pd.PrimaryKey, poco, primaryKeyValue); + } + + public int Update(string sql, params object[] args) + { + var pd = PocoData.ForType(typeof(T)); + return Execute(string.Format("UPDATE {0} {1}", pd.TableName, sql), args); + } + + public int Update(Sql sql) + { + var pd = PocoData.ForType(typeof(T)); + return Execute(new Sql(string.Format("UPDATE {0}", pd.TableName)).Append(sql)); + } + + public int Delete(string tableName, string primaryKeyName, object poco) + { + return Delete(tableName, primaryKeyName, poco, null); + } + + public int Delete(string tableName, string primaryKeyName, object poco, object primaryKeyValue) + { + // If primary key value not specified, pick it up from the object + if (primaryKeyValue == null) + { + var pd = PocoData.ForType(poco.GetType()); + if (pd.Columns.TryGetValue(primaryKeyName, out PocoColumn pc)) + { + primaryKeyValue = pc.PropertyInfo.GetValue(poco, null); + } + } + + // Do it + var sql = string.Format("DELETE FROM {0} WHERE {1}=@0", tableName, primaryKeyName); + return Execute(sql, primaryKeyValue); + } + + public int Delete(object poco) + { + var pd = PocoData.ForType(poco.GetType()); + return Delete(pd.TableName, pd.PrimaryKey, poco); + } + + public int Delete(string sql, params object[] args) + { + var pd = PocoData.ForType(typeof(T)); + return Execute(string.Format("DELETE FROM {0} {1}", pd.TableName, sql), args); + } + + public int Delete(Sql sql) + { + var pd = PocoData.ForType(typeof(T)); + return Execute(new Sql(string.Format("DELETE FROM {0}", pd.TableName)).Append(sql)); + } + + // Check if a poco represents a new record + public bool IsNew(string primaryKeyName, object poco) + { + // If primary key value not specified, pick it up from the object + var pd = PocoData.ForType(poco.GetType()); + PropertyInfo pi; + if (pd.Columns.TryGetValue(primaryKeyName, out PocoColumn pc)) + { + pi = pc.PropertyInfo; + } + else + { + pi = poco.GetType().GetProperty(primaryKeyName); + if (pi == null) + throw new ArgumentException("The object doesn't have a property matching the primary key column name '{0}'", primaryKeyName); + } + + // Get it's value + var pk = pi.GetValue(poco, null); + if (pk == null) + return true; + + var type = pk.GetType(); + + if (type.IsValueType) + { + // Common primary key types + if (type == typeof(long)) + return (long)pk == 0; + else if (type == typeof(ulong)) + return (ulong)pk == 0; + else if (type == typeof(int)) + return (int)pk == 0; + else if (type == typeof(uint)) + return (int)pk == 0; + + // Create a default instance and compare + return pk == Activator.CreateInstance(pk.GetType()); + } + else + { + return pk == null; + } + } + + public bool IsNew(object poco) + { + var pd = PocoData.ForType(poco.GetType()); + return IsNew(pd.PrimaryKey, poco); + } + + // Insert new record or Update existing record + public void Save(string tableName, string primaryKeyName, object poco) + { + if (IsNew(primaryKeyName, poco)) + { + Insert(tableName, primaryKeyName, poco); + } + else + { + Update(tableName, primaryKeyName, poco); + } + } + + public void Save(object poco) + { + var pd = PocoData.ForType(poco.GetType()); + Save(pd.TableName, pd.PrimaryKey, poco); + } + + public string LastSQL => _lastSql; + public object[] LastArgs => _lastArgs; + public string LastCommand + { + get + { + var sb = new StringBuilder(); + if (_lastSql == null) + return ""; + sb.Append(_lastSql); + if (_lastArgs != null) + { + sb.Append("\r\n\r\n"); + for (int i = 0; i < _lastArgs.Length; i++) + { + sb.AppendFormat("{0} - {1}\r\n", i, _lastArgs[i].ToString()); + } + } + return sb.ToString(); + } + } + + public static IMapper Mapper { get; set; } + + internal class PocoColumn + { + public string ColumnName; + public PropertyInfo PropertyInfo; + public bool ResultColumn; + } + + internal class PocoData + { + public static PocoData ForType(Type t) + { + lock (m_PocoData) + { + if (!m_PocoData.TryGetValue(t, out PocoData pd)) + { + pd = new PocoData(t); + m_PocoData.Add(t, pd); + } + return pd; + } + } + + public PocoData(Type t) + { + // Get the table name + var a = t.GetCustomAttributes(typeof(TableName), true); + var tempTableName = a.Length == 0 ? t.Name : (a[0] as TableName).Value; + + // Get the primary key + a = t.GetCustomAttributes(typeof(PrimaryKey), true); + var tempPrimaryKey = a.Length == 0 ? "ID" : (a[0] as PrimaryKey).Value; + + // Call column mapper + Database.Mapper?.GetTableInfo(t, ref tempTableName, ref tempPrimaryKey); + TableName = tempTableName; + PrimaryKey = tempPrimaryKey; + + // Work out bound properties + bool ExplicitColumns = t.GetCustomAttributes(typeof(ExplicitColumns), true).Length > 0; + Columns = new Dictionary(StringComparer.OrdinalIgnoreCase); + foreach (var pi in t.GetProperties()) + { + // Work out if properties is to be included + var ColAttrs = pi.GetCustomAttributes(typeof(Column), true); + if (ExplicitColumns) + { + if (ColAttrs.Length == 0) + continue; + } + else + { + if (pi.GetCustomAttributes(typeof(Ignore), true).Length != 0) + continue; + } + + var pc = new PocoColumn() + { + PropertyInfo = pi + }; + + // Work out the DB column name + if (ColAttrs.Length > 0) + { + var colattr = (Column)ColAttrs[0]; + pc.ColumnName = colattr.Name; + if (colattr is ResultColumn) + pc.ResultColumn = true; + } + if (pc.ColumnName == null) + { + pc.ColumnName = pi.Name; + if (Mapper?.MapPropertyToColumn(pi, ref pc.ColumnName, ref pc.ResultColumn) == false) + continue; + } + + // Store it + Columns.Add(pc.ColumnName, pc); + } + + // Build column list for automatic select + QueryColumns = string.Join(", ", (from c in Columns where !c.Value.ResultColumn select c.Key).ToArray()); + } + + // Create factory function that can convert a IDataReader record into a POCO + public Func GetFactory(string key, bool ForceDateTimesToUtc, IDataReader r) + { + lock (PocoFactories) + { + // Have we already created it? + if (PocoFactories.TryGetValue(key, out object factory)) + return factory as Func; + + lock (m_Converters) + { + // Create the method + var m = new DynamicMethod("petapoco_factory_" + PocoFactories.Count.ToString(), typeof(T), new Type[] { typeof(IDataReader) }, true); + var il = m.GetILGenerator(); + + // Running under mono? + int p = (int)Environment.OSVersion.Platform; + bool Mono = (p == 4) || (p == 6) || (p == 128); + + // var poco=new T() + il.Emit(OpCodes.Newobj, typeof(T).GetConstructor(Type.EmptyTypes)); + + // Enumerate all fields generating a set assignment for the column + for (int i = 0; i < r.FieldCount; i++) + { + // Get the PocoColumn for this db column, ignore if not known + if (!Columns.TryGetValue(r.GetName(i), out PocoColumn pc)) + continue; + + // Get the source type for this column + var srcType = r.GetFieldType(i); + var dstType = pc.PropertyInfo.PropertyType; + + // "if (!rdr.IsDBNull(i))" + il.Emit(OpCodes.Ldarg_0); // poco,rdr + il.Emit(OpCodes.Ldc_I4, i); // poco,rdr,i + il.Emit(OpCodes.Callvirt, fnIsDBNull); // poco,bool + var lblNext = il.DefineLabel(); + il.Emit(OpCodes.Brtrue_S, lblNext); // poco + + il.Emit(OpCodes.Dup); // poco,poco + + // Do we need to install a converter? + Func converter = null; + + // Get converter from the mapper + if (Database.Mapper != null) + { + converter = Mapper.GetValueConverter(pc.PropertyInfo, srcType); + } + + // Standard DateTime->Utc mapper + if (ForceDateTimesToUtc && converter == null && srcType == typeof(DateTime) && (dstType == typeof(DateTime) || dstType == typeof(DateTime?))) + { + converter = (object src) => new DateTime(((DateTime)src).Ticks, DateTimeKind.Utc); + } + + // Forced type conversion + if (converter == null && !dstType.IsAssignableFrom(srcType)) + { + converter = (object src) => Convert.ChangeType(src, dstType, null); + } + + // Fast + bool Handled = false; + if (converter == null) + { + var valuegetter = typeof(IDataRecord).GetMethod("Get" + srcType.Name, new Type[] { typeof(int) }); + if (valuegetter != null + && valuegetter.ReturnType == srcType + && (valuegetter.ReturnType == dstType || valuegetter.ReturnType == Nullable.GetUnderlyingType(dstType))) + { + il.Emit(OpCodes.Ldarg_0); // *,rdr + il.Emit(OpCodes.Ldc_I4, i); // *,rdr,i + il.Emit(OpCodes.Callvirt, valuegetter); // *,value + + // Mono give IL error if we don't explicitly create Nullable instance for the assignment + if (Mono && Nullable.GetUnderlyingType(dstType) != null) + { + il.Emit(OpCodes.Newobj, dstType.GetConstructor(new Type[] { Nullable.GetUnderlyingType(dstType) })); + } + + il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod()); // poco + Handled = true; + } + } + + // Not so fast + if (!Handled) + { + // Setup stack for call to converter + int converterIndex = -1; + if (converter != null) + { + // Add the converter + converterIndex = m_Converters.Count; + m_Converters.Add(converter); + + // Generate IL to push the converter onto the stack + il.Emit(OpCodes.Ldsfld, fldConverters); + il.Emit(OpCodes.Ldc_I4, converterIndex); + il.Emit(OpCodes.Callvirt, fnListGetItem); // Converter + } + + // "value = rdr.GetValue(i)" + il.Emit(OpCodes.Ldarg_0); // *,rdr + il.Emit(OpCodes.Ldc_I4, i); // *,rdr,i + il.Emit(OpCodes.Callvirt, fnGetValue); // *,value + + // Call the converter + if (converter != null) + il.Emit(OpCodes.Callvirt, fnInvoke); + + // Assign it + il.Emit(OpCodes.Unbox_Any, pc.PropertyInfo.PropertyType); // poco,poco,value + il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod()); // poco + } + + il.MarkLabel(lblNext); + } + + il.Emit(OpCodes.Ret); + + // Cache it, return it + var del = (Func)m.CreateDelegate(typeof(Func)); + PocoFactories.Add(key, del); + return del; + } + } + } + + private static readonly Dictionary m_PocoData = new Dictionary(); + private static readonly List> m_Converters = new List>(); + + private static readonly MethodInfo fnGetValue = typeof(IDataRecord).GetMethod("GetValue", new Type[] { typeof(int) }); + private static readonly MethodInfo fnIsDBNull = typeof(IDataRecord).GetMethod("IsDBNull"); + private static readonly FieldInfo fldConverters = typeof(PocoData).GetField("m_Converters", BindingFlags.Static | BindingFlags.GetField | BindingFlags.NonPublic); + private static readonly MethodInfo fnListGetItem = typeof(List>).GetProperty("Item").GetGetMethod(); + private static readonly MethodInfo fnInvoke = typeof(Func).GetMethod("Invoke"); + + public string TableName { get; } + public string PrimaryKey { get; } + public string QueryColumns { get; } + public Dictionary Columns { get; } + + private readonly Dictionary PocoFactories = new Dictionary(); + } + + // ShareableConnection represents either a shared connection used by a transaction, + // or a one-off connection if not in a transaction. + // Non-shared connections are disposed + private class ShareableConnection : IDisposable + { + public ShareableConnection(Database db) + { + _db = db; + _db.OpenSharedConnection(); + } + + public DbConnection Connection => _db._sharedConnection; + + private readonly Database _db; + + public void Dispose() + { + _db.CloseSharedConnection(); + } + } + + // Member variables + private readonly string _connectionString; + private readonly string _providerName; + private DbProviderFactory _factory; + private DbConnection _sharedConnection; + private DbTransaction _transaction; + private int _sharedConnectionDepth; + private int _transactionDepth; + private bool _transactionCancelled; + private string _lastSql; + private object[] _lastArgs; + private string _paramPrefix = "@"; + } + + // Transaction object helps maintain transaction depth counts + public class Transaction : IDisposable + { + public Transaction(Database db) + { + _db = db; + _db.BeginTransaction(); + } + + public void Complete() + { + _db.CompleteTransaction(); + _db = null; + } + + public void Dispose() + { + _db?.AbortTransaction(); + } + + private Database _db; + } + + // Simple helper class for building SQL statments + public class Sql + { + public Sql() + { + } + + public Sql(string sql, params object[] args) + { + _sql = sql; + _args = args; + } + + private readonly string _sql; + private readonly object[] _args; + private Sql _rhs; + private string _sqlFinal; + private object[] _argsFinal; + + private void Build() + { + // already built? + if (_sqlFinal != null) + return; + + // Build it + var sb = new StringBuilder(); + var args = new List(); + Build(sb, args, null); + _sqlFinal = sb.ToString(); + _argsFinal = args.ToArray(); + } + + public string SQL + { + get + { + Build(); + return _sqlFinal; + } + } + + public object[] Arguments + { + get + { + Build(); + return _argsFinal; + } + } + + public Sql Append(Sql sql) + { + if (_rhs != null) + _rhs.Append(sql); + else + _rhs = sql; + + return this; + } + + public Sql Append(string sql, params object[] args) + { + return Append(new Sql(sql, args)); + } + + public Sql Where(string sql, params object[] args) + { + return Append(new Sql("WHERE " + sql, args)); + } + + public Sql OrderBy(params object[] args) + { + return Append(new Sql("ORDER BY " + string.Join(", ", (from x in args select x.ToString()).ToArray()))); + } + + public Sql Select(params object[] args) + { + return Append(new Sql("SELECT " + string.Join(", ", (from x in args select x.ToString()).ToArray()))); + } + + public Sql From(params object[] args) + { + return Append(new Sql("FROM " + string.Join(", ", (from x in args select x.ToString()).ToArray()))); + } + + private static bool Is(Sql sql, string sqltype) + { + return sql?._sql != null && sql._sql.StartsWith(sqltype, StringComparison.InvariantCultureIgnoreCase); + } + + public void Build(StringBuilder sb, List args, Sql lhs) + { + if (!string.IsNullOrEmpty(_sql)) + { + // Add SQL to the string + if (sb.Length > 0) + { + sb.Append("\n"); + } + + var sql = Database.ProcessParams(_sql, _args, args); + + if (Is(lhs, "WHERE ") && Is(this, "WHERE ")) + sql = "AND " + sql.Substring(6); + if (Is(lhs, "ORDER BY ") && Is(this, "ORDER BY ")) + sql = ", " + sql.Substring(9); + + sb.Append(sql); + } + + // Now do rhs + _rhs?.Build(sb, args, this); + } + } +} +#pragma warning restore RCS1023 // Format empty block. +#endif diff --git a/Dapper.Tests.Performance/Post.cs b/Dapper.Tests.Performance/Post.cs new file mode 100644 index 000000000..78c71ccd7 --- /dev/null +++ b/Dapper.Tests.Performance/Post.cs @@ -0,0 +1,25 @@ +using System; +using Soma.Core; + +namespace Dapper.Tests.Performance +{ + [ServiceStack.DataAnnotations.Alias("Posts")] + [Table(Name = "Posts")] + public class Post + { + [Id(IdKind.Identity)] + public int Id { get; set; } + public string Text { get; set; } + public DateTime CreationDate { get; set; } + public DateTime LastChangeDate { get; set; } + public int? Counter1 { get; set; } + public int? Counter2 { get; set; } + public int? Counter3 { get; set; } + public int? Counter4 { get; set; } + public int? Counter5 { get; set; } + public int? Counter6 { get; set; } + public int? Counter7 { get; set; } + public int? Counter8 { get; set; } + public int? Counter9 { get; set; } + } +} diff --git a/Dapper.Tests.Performance/Program.cs b/Dapper.Tests.Performance/Program.cs new file mode 100644 index 000000000..f44d965b0 --- /dev/null +++ b/Dapper.Tests.Performance/Program.cs @@ -0,0 +1,123 @@ +using BenchmarkDotNet.Running; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Linq; +using System.Reflection; +using static System.Console; + +namespace Dapper.Tests.Performance +{ + public static class Program + { + public static void Main(string[] args) + { +#if DEBUG + WriteLineColor("Warning: DEBUG configuration; performance may be impacted!", ConsoleColor.Red); + WriteLine(); +#endif + WriteLine("Welcome to Dapper's ORM performance benchmark suite, based on BenchmarkDotNet."); + Write(" If you find a problem, please report it at: "); + WriteLineColor("https://github.com/StackExchange/Dapper", ConsoleColor.Blue); + WriteLine(" Or if you're up to it, please submit a pull request! We welcome new additions."); + WriteLine(); + + if (args.Length == 0) + { + WriteLine("Optional arguments:"); + WriteColor(" --all", ConsoleColor.Blue); + WriteLine(": run all benchmarks"); + WriteColor(" --legacy", ConsoleColor.Blue); + WriteLine(": run the legacy benchmark suite/format", ConsoleColor.Gray); + WriteLine(); + } + WriteLine("Using ConnectionString: " + BenchmarkBase.ConnectionString); + EnsureDBSetup(); + WriteLine("Database setup complete."); + + if (args.Any(a => a == "--all")) + { + WriteLine("Iterations: " + BenchmarkBase.Iterations); + var benchmarks = new List(); + var benchTypes = Assembly.GetEntryAssembly().DefinedTypes.Where(t => t.IsSubclassOf(typeof(BenchmarkBase))); + WriteLineColor("Running full benchmarks suite", ConsoleColor.Green); + foreach (var b in benchTypes) + { + benchmarks.AddRange(BenchmarkConverter.TypeToBenchmarks(b)); + } + BenchmarkRunner.Run(benchmarks.ToArray(), null); + } + else if (args.Any(a => a == "--legacy")) + { + var test = new LegacyTests(); + const int iterations = 500; + WriteLineColor($"Running legacy benchmarks: {iterations} iterations that load up a Post entity.", ConsoleColor.Green); + test.RunAsync(iterations).GetAwaiter().GetResult(); + WriteLine(); + WriteLineColor("Run complete.", ConsoleColor.Green); + } + else + { + WriteLine("Iterations: " + BenchmarkBase.Iterations); + BenchmarkSwitcher.FromAssembly(typeof(Program).GetTypeInfo().Assembly).Run(args); + } + } + + private static void EnsureDBSetup() + { + using (var cnn = new SqlConnection(BenchmarkBase.ConnectionString)) + { + cnn.Open(); + var cmd = cnn.CreateCommand(); + cmd.CommandText = @" +If (Object_Id('Posts') Is Null) +Begin + Create Table Posts + ( + Id int identity primary key, + [Text] varchar(max) not null, + CreationDate datetime not null, + LastChangeDate datetime not null, + Counter1 int, + Counter2 int, + Counter3 int, + Counter4 int, + Counter5 int, + Counter6 int, + Counter7 int, + Counter8 int, + Counter9 int + ); + + Set NoCount On; + Declare @i int = 0; + + While @i <= 5001 + Begin + Insert Posts ([Text],CreationDate, LastChangeDate) values (replicate('x', 2000), GETDATE(), GETDATE()); + Set @i = @i + 1; + End +End +"; + cmd.Connection = cnn; + cmd.ExecuteNonQuery(); + } + } + + public static void WriteLineColor(string message, ConsoleColor color) + { + var orig = ForegroundColor; + ForegroundColor = color; + WriteLine(message); + ForegroundColor = orig; + } + + public static void WriteColor(string message, ConsoleColor color) + { + var orig = ForegroundColor; + ForegroundColor = color; + Write(message); + ForegroundColor = orig; + } + } +} diff --git a/Dapper.Tests.Performance/Soma/SomaConfig.cs b/Dapper.Tests.Performance/Soma/SomaConfig.cs new file mode 100644 index 000000000..aa2dbcdd6 --- /dev/null +++ b/Dapper.Tests.Performance/Soma/SomaConfig.cs @@ -0,0 +1,14 @@ +using Soma.Core; +using System; + +namespace Dapper.Tests.Performance.Soma +{ + internal class SomaConfig : MsSqlConfig + { + public override string ConnectionString => BenchmarkBase.ConnectionString; + + public override Action Logger => noOp; + + private static readonly Action noOp = x => { /* nope */ }; + } +} diff --git a/Dapper.Tests.Performance/SqlDataReaderHelper.cs b/Dapper.Tests.Performance/SqlDataReaderHelper.cs new file mode 100644 index 000000000..a71375826 --- /dev/null +++ b/Dapper.Tests.Performance/SqlDataReaderHelper.cs @@ -0,0 +1,28 @@ +using System; +using System.Data.SqlClient; + +namespace Dapper.Tests.Performance +{ + public static class SqlDataReaderHelper + { + public static string GetNullableString(this SqlDataReader reader, int index) + { + object tmp = reader.GetValue(index); + if (tmp != DBNull.Value) + { + return (string)tmp; + } + return null; + } + + public static T? GetNullableValue(this SqlDataReader reader, int index) where T : struct + { + object tmp = reader.GetValue(index); + if (tmp != DBNull.Value) + { + return (T)tmp; + } + return null; + } + } +} diff --git a/Dapper.Tests.Performance/app.config b/Dapper.Tests.Performance/app.config new file mode 100644 index 000000000..5ea174a5c --- /dev/null +++ b/Dapper.Tests.Performance/app.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Dapper.Tests/AsyncTests.cs b/Dapper.Tests/AsyncTests.cs new file mode 100644 index 000000000..186a6cf6e --- /dev/null +++ b/Dapper.Tests/AsyncTests.cs @@ -0,0 +1,833 @@ +using System.Linq; +using System.Data; +using System.Diagnostics; +using System; +using System.Threading.Tasks; +using System.Threading; +using System.Data.SqlClient; +using Xunit; + +namespace Dapper.Tests +{ + public class Tests : TestBase + { + private SqlConnection _marsConnection; + private SqlConnection MarsConnection => _marsConnection ?? (_marsConnection = GetOpenConnection(true)); + + [Fact] + public async Task TestBasicStringUsageAsync() + { + var query = await connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }).ConfigureAwait(false); + var arr = query.ToArray(); + Assert.Equal(new[] { "abc", "def" }, arr); + } + + [Fact] + public async Task TestBasicStringUsageQueryFirstAsync() + { + var str = await connection.QueryFirstAsync(new CommandDefinition("select 'abc' as [Value] union all select @txt", new { txt = "def" })).ConfigureAwait(false); + Assert.Equal("abc", str); + } + + [Fact] + public async Task TestBasicStringUsageQueryFirstAsyncDynamic() + { + var str = await connection.QueryFirstAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }).ConfigureAwait(false); + Assert.Equal("abc", str.Value); + } + + [Fact] + public async Task TestBasicStringUsageQueryFirstOrDefaultAsync() + { + var str = await connection.QueryFirstOrDefaultAsync(new CommandDefinition("select null as [Value] union all select @txt", new { txt = "def" })).ConfigureAwait(false); + Assert.Null(str); + } + + [Fact] + public async Task TestBasicStringUsageQueryFirstOrDefaultAsyncDynamic() + { + var str = await connection.QueryFirstOrDefaultAsync("select null as [Value] union all select @txt", new { txt = "def" }).ConfigureAwait(false); + Assert.Null(str.Value); + } + + [Fact] + public async Task TestBasicStringUsageQuerySingleAsyncDynamic() + { + var str = await connection.QuerySingleAsync(new CommandDefinition("select 'abc' as [Value]")).ConfigureAwait(false); + Assert.Equal("abc", str); + } + + [Fact] + public async Task TestBasicStringUsageQuerySingleAsync() + { + var str = await connection.QuerySingleAsync("select 'abc' as [Value]").ConfigureAwait(false); + Assert.Equal("abc", str.Value); + } + + [Fact] + public async Task TestBasicStringUsageQuerySingleOrDefaultAsync() + { + var str = await connection.QuerySingleOrDefaultAsync(new CommandDefinition("select null as [Value]")).ConfigureAwait(false); + Assert.Null(str); + } + + [Fact] + public async Task TestBasicStringUsageQuerySingleOrDefaultAsyncDynamic() + { + var str = await connection.QuerySingleOrDefaultAsync("select null as [Value]").ConfigureAwait(false); + Assert.Null(str.Value); + } + + [Fact] + public async Task TestBasicStringUsageAsyncNonBuffered() + { + var query = await connection.QueryAsync(new CommandDefinition("select 'abc' as [Value] union all select @txt", new { txt = "def" }, flags: CommandFlags.None)).ConfigureAwait(false); + var arr = query.ToArray(); + Assert.Equal(new[] { "abc", "def" }, arr); + } + + [Fact] + public void TestLongOperationWithCancellation() + { + CancellationTokenSource cancel = new CancellationTokenSource(TimeSpan.FromSeconds(5)); + var task = connection.QueryAsync(new CommandDefinition("waitfor delay '00:00:10';select 1", cancellationToken: cancel.Token)); + try + { + if (!task.Wait(TimeSpan.FromSeconds(7))) + { + throw new TimeoutException(); // should have cancelled + } + } + catch (AggregateException agg) + { + Assert.True(agg.InnerException is SqlException); + } + } + + [Fact] + public async Task TestBasicStringUsageClosedAsync() + { + var query = await connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }).ConfigureAwait(false); + var arr = query.ToArray(); + Assert.Equal(new[] { "abc", "def" }, arr); + } + + [Fact] + public async Task TestQueryDynamicAsync() + { + var row = (await connection.QueryAsync("select 'abc' as [Value]").ConfigureAwait(false)).Single(); + string value = row.Value; + Assert.Equal("abc", value); + } + + [Fact] + public async Task TestClassWithStringUsageAsync() + { + var query = await connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }).ConfigureAwait(false); + var arr = query.ToArray(); + Assert.Equal(new[] { "abc", "def" }, arr.Select(x => x.Value)); + } + + [Fact] + public async Task TestExecuteAsync() + { + var val = await connection.ExecuteAsync("declare @foo table(id int not null); insert @foo values(@id);", new { id = 1 }).ConfigureAwait(false); + Assert.Equal(1, val); + } + + [Fact] + public void TestExecuteClosedConnAsyncInner() + { + var query = connection.ExecuteAsync("declare @foo table(id int not null); insert @foo values(@id);", new { id = 1 }); + var val = query.Result; + Assert.Equal(1, val); + } + + [Fact] + public async Task TestMultiMapWithSplitAsync() + { + const string sql = "select 1 as id, 'abc' as name, 2 as id, 'def' as name"; + var productQuery = await connection.QueryAsync(sql, (prod, cat) => + { + prod.Category = cat; + return prod; + }).ConfigureAwait(false); + + var product = productQuery.First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.Equal(2, product.Category.Id); + Assert.Equal("def", product.Category.Name); + } + + [Fact] + public async Task TestMultiMapArbitraryWithSplitAsync() + { + const string sql = "select 1 as id, 'abc' as name, 2 as id, 'def' as name"; + var productQuery = await connection.QueryAsync(sql, new[] { typeof(Product), typeof(Category) }, (objects) => + { + var prod = (Product)objects[0]; + prod.Category = (Category)objects[1]; + return prod; + }).ConfigureAwait(false); + + var product = productQuery.First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.Equal(2, product.Category.Id); + Assert.Equal("def", product.Category.Name); + } + + [Fact] + public async Task TestMultiMapWithSplitClosedConnAsync() + { + const string sql = "select 1 as id, 'abc' as name, 2 as id, 'def' as name"; + using (var conn = GetClosedConnection()) + { + var productQuery = await conn.QueryAsync(sql, (prod, cat) => + { + prod.Category = cat; + return prod; + }).ConfigureAwait(false); + + var product = productQuery.First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.Equal(2, product.Category.Id); + Assert.Equal("def", product.Category.Name); + } + } + + [Fact] + public async Task TestMultiAsync() + { + using (SqlMapper.GridReader multi = await connection.QueryMultipleAsync("select 1; select 2").ConfigureAwait(false)) + { + Assert.Equal(1, multi.ReadAsync().Result.Single()); + Assert.Equal(2, multi.ReadAsync().Result.Single()); + } + } + + [Fact] + public async Task TestMultiAsyncViaFirstOrDefault() + { + using (SqlMapper.GridReader multi = await connection.QueryMultipleAsync("select 1; select 2; select 3; select 4; select 5").ConfigureAwait(false)) + { + Assert.Equal(1, multi.ReadFirstOrDefaultAsync().Result); + Assert.Equal(2, multi.ReadAsync().Result.Single()); + Assert.Equal(3, multi.ReadFirstOrDefaultAsync().Result); + Assert.Equal(4, multi.ReadAsync().Result.Single()); + Assert.Equal(5, multi.ReadFirstOrDefaultAsync().Result); + } + } + + [Fact] + public async Task TestMultiClosedConnAsync() + { + using (SqlMapper.GridReader multi = await connection.QueryMultipleAsync("select 1; select 2").ConfigureAwait(false)) + { + Assert.Equal(1, multi.ReadAsync().Result.Single()); + Assert.Equal(2, multi.ReadAsync().Result.Single()); + } + } + + [Fact] + public async Task TestMultiClosedConnAsyncViaFirstOrDefault() + { + using (SqlMapper.GridReader multi = await connection.QueryMultipleAsync("select 1; select 2; select 3; select 4; select 5;").ConfigureAwait(false)) + { + Assert.Equal(1, multi.ReadFirstOrDefaultAsync().Result); + Assert.Equal(2, multi.ReadAsync().Result.Single()); + Assert.Equal(3, multi.ReadFirstOrDefaultAsync().Result); + Assert.Equal(4, multi.ReadAsync().Result.Single()); + Assert.Equal(5, multi.ReadFirstOrDefaultAsync().Result); + } + } + +#if !NETCOREAPP1_0 + [Fact] + public async Task ExecuteReaderOpenAsync() + { + var dt = new DataTable(); + dt.Load(await connection.ExecuteReaderAsync("select 3 as [three], 4 as [four]").ConfigureAwait(false)); + Assert.Equal(2, dt.Columns.Count); + Assert.Equal("three", dt.Columns[0].ColumnName); + Assert.Equal("four", dt.Columns[1].ColumnName); + Assert.Equal(1, dt.Rows.Count); + Assert.Equal(3, (int)dt.Rows[0][0]); + Assert.Equal(4, (int)dt.Rows[0][1]); + } + + [Fact] + public async Task ExecuteReaderClosedAsync() + { + using (var conn = GetClosedConnection()) + { + var dt = new DataTable(); + dt.Load(await conn.ExecuteReaderAsync("select 3 as [three], 4 as [four]").ConfigureAwait(false)); + Assert.Equal(2, dt.Columns.Count); + Assert.Equal("three", dt.Columns[0].ColumnName); + Assert.Equal("four", dt.Columns[1].ColumnName); + Assert.Equal(1, dt.Rows.Count); + Assert.Equal(3, (int)dt.Rows[0][0]); + Assert.Equal(4, (int)dt.Rows[0][1]); + } + } +#endif + + [Fact] + public async Task LiteralReplacementOpen() + { + await LiteralReplacement(connection).ConfigureAwait(false); + } + + [Fact] + public async Task LiteralReplacementClosed() + { + using (var conn = GetClosedConnection()) await LiteralReplacement(conn).ConfigureAwait(false); + } + + private async Task LiteralReplacement(IDbConnection conn) + { + try + { + await conn.ExecuteAsync("drop table literal1").ConfigureAwait(false); + } + catch { /* don't care */ } + await conn.ExecuteAsync("create table literal1 (id int not null, foo int not null)").ConfigureAwait(false); + await conn.ExecuteAsync("insert literal1 (id,foo) values ({=id}, @foo)", new { id = 123, foo = 456 }).ConfigureAwait(false); + var rows = new[] { new { id = 1, foo = 2 }, new { id = 3, foo = 4 } }; + await conn.ExecuteAsync("insert literal1 (id,foo) values ({=id}, @foo)", rows).ConfigureAwait(false); + var count = (await conn.QueryAsync("select count(1) from literal1 where id={=foo}", new { foo = 123 }).ConfigureAwait(false)).Single(); + Assert.Equal(1, count); + int sum = (await conn.QueryAsync("select sum(id) + sum(foo) from literal1").ConfigureAwait(false)).Single(); + Assert.Equal(sum, 123 + 456 + 1 + 2 + 3 + 4); + } + + [Fact] + public async Task LiteralReplacementDynamicOpen() + { + await LiteralReplacementDynamic(connection).ConfigureAwait(false); + } + + [Fact] + public async Task LiteralReplacementDynamicClosed() + { + using (var conn = GetClosedConnection()) await LiteralReplacementDynamic(conn).ConfigureAwait(false); + } + + private async Task LiteralReplacementDynamic(IDbConnection conn) + { + var args = new DynamicParameters(); + args.Add("id", 123); + try { await conn.ExecuteAsync("drop table literal2").ConfigureAwait(false); } + catch { /* don't care */ } + await conn.ExecuteAsync("create table literal2 (id int not null)").ConfigureAwait(false); + await conn.ExecuteAsync("insert literal2 (id) values ({=id})", args).ConfigureAwait(false); + + args = new DynamicParameters(); + args.Add("foo", 123); + var count = (await conn.QueryAsync("select count(1) from literal2 where id={=foo}", args).ConfigureAwait(false)).Single(); + Assert.Equal(1, count); + } + + [Fact] + public async Task LiteralInAsync() + { + await connection.ExecuteAsync("create table #literalin(id int not null);").ConfigureAwait(false); + await connection.ExecuteAsync("insert #literalin (id) values (@id)", new[] { + new { id = 1 }, + new { id = 2 }, + new { id = 3 }, + }).ConfigureAwait(false); + var count = (await connection.QueryAsync("select count(1) from #literalin where id in {=ids}", + new { ids = new[] { 1, 3, 4 } }).ConfigureAwait(false)).Single(); + Assert.Equal(2, count); + } + + [FactLongRunning] + public async Task RunSequentialVersusParallelAsync() + { + var ids = Enumerable.Range(1, 20000).Select(id => new { id }).ToArray(); + await MarsConnection.ExecuteAsync(new CommandDefinition("select @id", ids.Take(5), flags: CommandFlags.None)).ConfigureAwait(false); + + var watch = Stopwatch.StartNew(); + await MarsConnection.ExecuteAsync(new CommandDefinition("select @id", ids, flags: CommandFlags.None)).ConfigureAwait(false); + watch.Stop(); + Console.WriteLine("No pipeline: {0}ms", watch.ElapsedMilliseconds); + + watch = Stopwatch.StartNew(); + await MarsConnection.ExecuteAsync(new CommandDefinition("select @id", ids, flags: CommandFlags.Pipelined)).ConfigureAwait(false); + watch.Stop(); + Console.WriteLine("Pipeline: {0}ms", watch.ElapsedMilliseconds); + } + + [FactLongRunning] + public void RunSequentialVersusParallelSync() + { + var ids = Enumerable.Range(1, 20000).Select(id => new { id }).ToArray(); + MarsConnection.Execute(new CommandDefinition("select @id", ids.Take(5), flags: CommandFlags.None)); + + var watch = Stopwatch.StartNew(); + MarsConnection.Execute(new CommandDefinition("select @id", ids, flags: CommandFlags.None)); + watch.Stop(); + Console.WriteLine("No pipeline: {0}ms", watch.ElapsedMilliseconds); + + watch = Stopwatch.StartNew(); + MarsConnection.Execute(new CommandDefinition("select @id", ids, flags: CommandFlags.Pipelined)); + watch.Stop(); + Console.WriteLine("Pipeline: {0}ms", watch.ElapsedMilliseconds); + } + + [Collection(NonParallelDefinition.Name)] + public class AsyncQueryCacheTests : TestBase + { + private SqlConnection _marsConnection; + private SqlConnection MarsConnection => _marsConnection ?? (_marsConnection = GetOpenConnection(true)); + + [Fact] + public void AssertNoCacheWorksForQueryMultiple() + { + const int a = 123, b = 456; + var cmdDef = new CommandDefinition("select @a; select @b;", new + { + a, + b + }, commandType: CommandType.Text, flags: CommandFlags.NoCache); + + int c, d; + SqlMapper.PurgeQueryCache(); + int before = SqlMapper.GetCachedSQLCount(); + using (var multi = MarsConnection.QueryMultiple(cmdDef)) + { + c = multi.Read().Single(); + d = multi.Read().Single(); + } + int after = SqlMapper.GetCachedSQLCount(); + Assert.Equal(0, before); + Assert.Equal(0, after); + Assert.Equal(123, c); + Assert.Equal(456, d); + } + } + + private class BasicType + { + public string Value { get; set; } + } + + [Fact] + public async Task TypeBasedViaTypeAsync() + { + Type type = Common.GetSomeType(); + + dynamic actual = (await MarsConnection.QueryAsync(type, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }).ConfigureAwait(false)).FirstOrDefault(); + Assert.Equal(((object)actual).GetType(), type); + int a = actual.A; + string b = actual.B; + Assert.Equal(123, a); + Assert.Equal("abc", b); + } + + [Fact] + public async Task TypeBasedViaTypeAsyncFirstOrDefault() + { + Type type = Common.GetSomeType(); + + dynamic actual = await MarsConnection.QueryFirstOrDefaultAsync(type, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }).ConfigureAwait(false); + Assert.Equal(((object)actual).GetType(), type); + int a = actual.A; + string b = actual.B; + Assert.Equal(123, a); + Assert.Equal("abc", b); + } + + [Fact] + public async Task Issue22_ExecuteScalarAsync() + { + int i = await connection.ExecuteScalarAsync("select 123").ConfigureAwait(false); + Assert.Equal(123, i); + + i = await connection.ExecuteScalarAsync("select cast(123 as bigint)").ConfigureAwait(false); + Assert.Equal(123, i); + + long j = await connection.ExecuteScalarAsync("select 123").ConfigureAwait(false); + Assert.Equal(123L, j); + + j = await connection.ExecuteScalarAsync("select cast(123 as bigint)").ConfigureAwait(false); + Assert.Equal(123L, j); + + int? k = await connection.ExecuteScalarAsync("select @i", new { i = default(int?) }).ConfigureAwait(false); + Assert.Null(k); + } + + [Fact] + public async Task Issue346_QueryAsyncConvert() + { + int i = (await connection.QueryAsync("Select Cast(123 as bigint)").ConfigureAwait(false)).First(); + Assert.Equal(123, i); + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressionsAsync() + { + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + await connection.ExecuteAsync(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId", p).ConfigureAwait(false); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + } + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressions_ScalarAsync() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = (int)(await connection.ExecuteScalarAsync(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p).ConfigureAwait(false)); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressions_Query_Default() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = (await connection.QueryAsync(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p).ConfigureAwait(false)).Single(); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressions_Query_BufferedAsync() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = (await connection.QueryAsync(new CommandDefinition(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p, flags: CommandFlags.Buffered)).ConfigureAwait(false)).Single(); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressions_Query_NonBufferedAsync() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = (await connection.QueryAsync(new CommandDefinition(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p, flags: CommandFlags.None)).ConfigureAwait(false)).Single(); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + + [Fact] + public async Task TestSupportForDynamicParametersOutputExpressions_QueryMultipleAsync() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + int x, y; + using (var multi = await connection.QueryMultipleAsync(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +select 42 +select 17 +SET @AddressPersonId = @PersonId", p).ConfigureAwait(false)) + { + x = multi.ReadAsync().Result.Single(); + y = multi.ReadAsync().Result.Single(); + } + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, x); + Assert.Equal(17, y); + } + + [Fact] + public async Task TestSubsequentQueriesSuccessAsync() + { + var data0 = (await connection.QueryAsync("select 1 as [Id] where 1 = 0").ConfigureAwait(false)).ToList(); + Assert.Empty(data0); + + var data1 = (await connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ConfigureAwait(false)).ToList(); + Assert.Empty(data1); + + var data2 = (await connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ConfigureAwait(false)).ToList(); + Assert.Empty(data2); + + data0 = (await connection.QueryAsync("select 1 as [Id] where 1 = 0").ConfigureAwait(false)).ToList(); + Assert.Empty(data0); + + data1 = (await connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ConfigureAwait(false)).ToList(); + Assert.Empty(data1); + + data2 = (await connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ConfigureAwait(false)).ToList(); + Assert.Empty(data2); + } + + private class AsyncFoo0 { public int Id { get; set; } } + + private class AsyncFoo1 { public int Id { get; set; } } + + private class AsyncFoo2 { public int Id { get; set; } } + + [Fact] + public async Task TestSchemaChangedViaFirstOrDefaultAsync() + { + await connection.ExecuteAsync("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')").ConfigureAwait(false); + try + { + var d = await connection.QueryFirstOrDefaultAsync("select * from #dog").ConfigureAwait(false); + Assert.Equal("Alf", d.Name); + Assert.Equal(1, d.Age); + connection.Execute("alter table #dog drop column Name"); + d = await connection.QueryFirstOrDefaultAsync("select * from #dog").ConfigureAwait(false); + Assert.Null(d.Name); + Assert.Equal(1, d.Age); + } + finally + { + await connection.ExecuteAsync("drop table #dog").ConfigureAwait(false); + } + } + + [Fact] + public async Task TestMultiMapArbitraryMapsAsync() + { + // please excuse the trite example, but it is easier to follow than a more real-world one + const string createSql = @" + create table #ReviewBoards (Id int, Name varchar(20), User1Id int, User2Id int, User3Id int, User4Id int, User5Id int, User6Id int, User7Id int, User8Id int, User9Id int) + create table #Users (Id int, Name varchar(20)) + + insert #Users values(1, 'User 1') + insert #Users values(2, 'User 2') + insert #Users values(3, 'User 3') + insert #Users values(4, 'User 4') + insert #Users values(5, 'User 5') + insert #Users values(6, 'User 6') + insert #Users values(7, 'User 7') + insert #Users values(8, 'User 8') + insert #Users values(9, 'User 9') + + insert #ReviewBoards values(1, 'Review Board 1', 1, 2, 3, 4, 5, 6, 7, 8, 9) +"; + await connection.ExecuteAsync(createSql).ConfigureAwait(false); + try + { + const string sql = @" + select + rb.Id, rb.Name, + u1.*, u2.*, u3.*, u4.*, u5.*, u6.*, u7.*, u8.*, u9.* + from #ReviewBoards rb + inner join #Users u1 on u1.Id = rb.User1Id + inner join #Users u2 on u2.Id = rb.User2Id + inner join #Users u3 on u3.Id = rb.User3Id + inner join #Users u4 on u4.Id = rb.User4Id + inner join #Users u5 on u5.Id = rb.User5Id + inner join #Users u6 on u6.Id = rb.User6Id + inner join #Users u7 on u7.Id = rb.User7Id + inner join #Users u8 on u8.Id = rb.User8Id + inner join #Users u9 on u9.Id = rb.User9Id +"; + + var types = new[] { typeof(ReviewBoard), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User) }; + + Func mapper = (objects) => + { + var board = (ReviewBoard)objects[0]; + board.User1 = (User)objects[1]; + board.User2 = (User)objects[2]; + board.User3 = (User)objects[3]; + board.User4 = (User)objects[4]; + board.User5 = (User)objects[5]; + board.User6 = (User)objects[6]; + board.User7 = (User)objects[7]; + board.User8 = (User)objects[8]; + board.User9 = (User)objects[9]; + return board; + }; + + var data = (await connection.QueryAsync(sql, types, mapper).ConfigureAwait(false)).ToList(); + + var p = data[0]; + Assert.Equal(1, p.Id); + Assert.Equal("Review Board 1", p.Name); + Assert.Equal(1, p.User1.Id); + Assert.Equal(2, p.User2.Id); + Assert.Equal(3, p.User3.Id); + Assert.Equal(4, p.User4.Id); + Assert.Equal(5, p.User5.Id); + Assert.Equal(6, p.User6.Id); + Assert.Equal(7, p.User7.Id); + Assert.Equal(8, p.User8.Id); + Assert.Equal(9, p.User9.Id); + Assert.Equal("User 1", p.User1.Name); + Assert.Equal("User 2", p.User2.Name); + Assert.Equal("User 3", p.User3.Name); + Assert.Equal("User 4", p.User4.Name); + Assert.Equal("User 5", p.User5.Name); + Assert.Equal("User 6", p.User6.Name); + Assert.Equal("User 7", p.User7.Name); + Assert.Equal("User 8", p.User8.Name); + Assert.Equal("User 9", p.User9.Name); + } + finally + { + connection.Execute("drop table #Users drop table #ReviewBoards"); + } + } + + [Fact] + public async Task Issue157_ClosedReaderAsync() + { + var args = new { x = 42 }; + const string sql = "select 123 as [A], 'abc' as [B] where @x=42"; + var row = (await connection.QueryAsync(new CommandDefinition( + sql, args, flags: CommandFlags.None)).ConfigureAwait(false)).Single(); + Assert.NotNull(row); + Assert.Equal(123, row.A); + Assert.Equal("abc", row.B); + + args = new { x = 5 }; + Assert.False((await connection.QueryAsync(new CommandDefinition(sql, args, flags: CommandFlags.None)).ConfigureAwait(false)).Any()); + } + + [Fact] + public async Task TestAtEscaping() + { + var id = (await connection.QueryAsync(@" + declare @@Name int + select @@Name = @Id+1 + select @@Name + ", new Product { Id = 1 }).ConfigureAwait(false)).Single(); + Assert.Equal(2, id); + } + + [Fact] + public async Task Issue1281_DataReaderOutOfOrderAsync() + { + using (var reader = await connection.ExecuteReaderAsync("Select 0, 1, 2").ConfigureAwait(false)) + { + Assert.True(reader.Read()); + Assert.Equal(2, reader.GetInt32(2)); + Assert.Equal(0, reader.GetInt32(0)); + Assert.Equal(1, reader.GetInt32(1)); + Assert.False(reader.Read()); + } + } + + [Fact] + public async Task Issue563_QueryAsyncShouldThrowException() + { + try + { + var data = (await connection.QueryAsync("select 1 union all select 2; RAISERROR('after select', 16, 1);").ConfigureAwait(false)).ToList(); + Assert.True(false, "Expected Exception"); + } + catch (SqlException ex) when (ex.Message == "after select") { /* swallow only this */ } + } + } +} diff --git a/Dapper.Tests/ConstructorTests.cs b/Dapper.Tests/ConstructorTests.cs new file mode 100644 index 000000000..baac5f6ab --- /dev/null +++ b/Dapper.Tests/ConstructorTests.cs @@ -0,0 +1,217 @@ +using System; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class ConstructorTests : TestBase + { + [Fact] + public void TestAbstractInheritance() + { + var order = connection.Query("select 1 Internal,2 Protected,3 [Public],4 Concrete").First(); + + Assert.Equal(1, order.Internal); + Assert.Equal(2, order.ProtectedVal); + Assert.Equal(3, order.Public); + Assert.Equal(4, order.Concrete); + } + + [Fact] + public void TestMultipleConstructors() + { + MultipleConstructors mult = connection.Query("select 0 A, 'Dapper' b").First(); + Assert.Equal(0, mult.A); + Assert.Equal("Dapper", mult.B); + } + + [Fact] + public void TestConstructorsWithAccessModifiers() + { + ConstructorsWithAccessModifiers value = connection.Query("select 0 A, 'Dapper' b").First(); + Assert.Equal(1, value.A); + Assert.Equal("Dapper!", value.B); + } + + [Fact] + public void TestNoDefaultConstructor() + { + var guid = Guid.NewGuid(); + NoDefaultConstructor nodef = connection.Query("select CAST(NULL AS integer) A1, CAST(NULL AS integer) b1, CAST(NULL AS real) f1, 'Dapper' s1, G1 = @id", new { id = guid }).First(); + Assert.Equal(0, nodef.A); + Assert.Null(nodef.B); + Assert.Equal(0, nodef.F); + Assert.Equal("Dapper", nodef.S); + Assert.Equal(nodef.G, guid); + } + + [Fact] + public void TestNoDefaultConstructorWithChar() + { + const char c1 = 'ą'; + const char c3 = 'ó'; + NoDefaultConstructorWithChar nodef = connection.Query("select @c1 c1, @c2 c2, @c3 c3", new { c1 = c1, c2 = (char?)null, c3 = c3 }).First(); + Assert.Equal(nodef.Char1, c1); + Assert.Null(nodef.Char2); + Assert.Equal(nodef.Char3, c3); + } + + [Fact] + public void TestNoDefaultConstructorWithEnum() + { + NoDefaultConstructorWithEnum nodef = connection.Query("select cast(2 as smallint) E1, cast(5 as smallint) n1, cast(null as smallint) n2").First(); + Assert.Equal(ShortEnum.Two, nodef.E); + Assert.Equal(ShortEnum.Five, nodef.NE1); + Assert.Null(nodef.NE2); + } + + [Fact] + public void ExplicitConstructors() + { + var rows = connection.Query<_ExplicitConstructors>(@" +declare @ExplicitConstructors table ( + Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), + Field_1 INT NOT NULL); +insert @ExplicitConstructors(Field_1) values (1); +SELECT * FROM @ExplicitConstructors" +).ToList(); + + Assert.Single(rows); + Assert.Equal(1, rows[0].Field); + Assert.Equal(1, rows[0].Field_1); + Assert.True(rows[0].GetWentThroughProperConstructor()); + } + + private class _ExplicitConstructors + { + public int Field { get; set; } + public int Field_1 { get; set; } + + private readonly bool WentThroughProperConstructor; + + public _ExplicitConstructors() { /* yep */ } + + [ExplicitConstructor] + public _ExplicitConstructors(string foo, int bar) + { + WentThroughProperConstructor = true; + } + + public bool GetWentThroughProperConstructor() + { + return WentThroughProperConstructor; + } + } + + public static class AbstractInheritance + { + public abstract class Order + { + internal int Internal { get; set; } + protected int Protected { get; set; } + public int Public { get; set; } + + public int ProtectedVal => Protected; + } + + public class ConcreteOrder : Order + { + public int Concrete { get; set; } + } + } + + private class MultipleConstructors + { + public MultipleConstructors() + { + } + + public MultipleConstructors(int a, string b) + { + A = a + 1; + B = b + "!"; + } + + public int A { get; set; } + public string B { get; set; } + } + + private class ConstructorsWithAccessModifiers + { + private ConstructorsWithAccessModifiers() + { + } + + public ConstructorsWithAccessModifiers(int a, string b) + { + A = a + 1; + B = b + "!"; + } + + public int A { get; set; } + public string B { get; set; } + } + + private class NoDefaultConstructor + { + public NoDefaultConstructor(int a1, int? b1, float f1, string s1, Guid G1) + { + A = a1; + B = b1; + F = f1; + S = s1; + G = G1; + } + + public int A { get; set; } + public int? B { get; set; } + public float F { get; set; } + public string S { get; set; } + public Guid G { get; set; } + } + + private class NoDefaultConstructorWithChar + { + public NoDefaultConstructorWithChar(char c1, char? c2, char? c3) + { + Char1 = c1; + Char2 = c2; + Char3 = c3; + } + + public char Char1 { get; set; } + public char? Char2 { get; set; } + public char? Char3 { get; set; } + } + + private class NoDefaultConstructorWithEnum + { + public NoDefaultConstructorWithEnum(ShortEnum e1, ShortEnum? n1, ShortEnum? n2) + { + E = e1; + NE1 = n1; + NE2 = n2; + } + + public ShortEnum E { get; set; } + public ShortEnum? NE1 { get; set; } + public ShortEnum? NE2 { get; set; } + } + + private class WithPrivateConstructor + { + public int Foo { get; set; } + private WithPrivateConstructor() + { + } + } + + [Fact] + public void TestWithNonPublicConstructor() + { + var output = connection.Query("select 1 as Foo").First(); + Assert.Equal(1, output.Foo); + } + } +} diff --git a/Dapper.Tests/Dapper.Tests.csproj b/Dapper.Tests/Dapper.Tests.csproj new file mode 100644 index 000000000..197dd121f --- /dev/null +++ b/Dapper.Tests/Dapper.Tests.csproj @@ -0,0 +1,67 @@ + + + Dapper.Tests + Dapper.Tests + Dapper Core Test Suite + false + true + true + net452;netcoreapp1.0;netcoreapp2.0 + false + + + + $(DefineConstants);ENTITY_FRAMEWORK;LINQ2SQL;SQL_CE;OLEDB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if not exist "$(TargetDir)x86" md "$(TargetDir)x86" + xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Types\14.0.314.76\NativeBinaries\x86\*.*" "$(TargetDir)x86" + if not exist "$(TargetDir)x64" md "$(TargetDir)x64" + xcopy /s /y /q "$(NuGetPackageRoot)\Microsoft.SqlServer.Types\14.0.314.76\NativeBinaries\x64\*.*" "$(TargetDir)x64" + + + diff --git a/Dapper.Tests/DataReaderTests.cs b/Dapper.Tests/DataReaderTests.cs new file mode 100644 index 000000000..0d9bd49da --- /dev/null +++ b/Dapper.Tests/DataReaderTests.cs @@ -0,0 +1,168 @@ +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class DataReaderTests : TestBase + { + [Fact] + public void GetSameReaderForSameShape() + { + var origReader = connection.ExecuteReader("select 'abc' as Name, 123 as Id"); + var origParser = origReader.GetRowParser(typeof(HazNameId)); + + var typedParser = origReader.GetRowParser(); + + Assert.True(ReferenceEquals(origParser, typedParser)); + + var list = origReader.Parse().ToList(); + Assert.Single(list); + Assert.Equal("abc", list[0].Name); + Assert.Equal(123, list[0].Id); + origReader.Dispose(); + + var secondReader = connection.ExecuteReader("select 'abc' as Name, 123 as Id"); + var secondParser = secondReader.GetRowParser(typeof(HazNameId)); + var thirdParser = secondReader.GetRowParser(typeof(HazNameId), 1); + + list = secondReader.Parse().ToList(); + Assert.Single(list); + Assert.Equal("abc", list[0].Name); + Assert.Equal(123, list[0].Id); + secondReader.Dispose(); + + // now: should be different readers, but same parser + Assert.False(ReferenceEquals(origReader, secondReader)); + Assert.True(ReferenceEquals(origParser, secondParser)); + Assert.False(ReferenceEquals(secondParser, thirdParser)); + } + + [Fact] + public void DiscriminatedUnion() + { + List result = new List(); + 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(typeof(Discriminated_Foo)); + var toBar = reader.GetRowParser(typeof(Discriminated_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()); + } + } + + Assert.Equal(2, result.Count); + Assert.Equal(1, result[0].Type); + Assert.Equal(2, result[1].Type); + var foo = (Discriminated_Foo)result[0]; + Assert.Equal("abc", foo.Name); + var bar = (Discriminated_Bar)result[1]; + Assert.Equal(bar.Value, (float)4.0); + } + + [Fact] + public void DiscriminatedUnionWithMultiMapping() + { + var result = new List(); + using (var reader = connection.ExecuteReader(@" +select 'abc' as Name, 1 as Type, 3.0 as Value, 1 as Id, 'zxc' as Name +union all +select 'def' as Name, 2 as Type, 4.0 as Value, 2 as Id, 'qwe' as Name")) + { + if (reader.Read()) + { + var col = reader.GetOrdinal("Type"); + var splitOn = reader.GetOrdinal("Id"); + + var toFoo = reader.GetRowParser(typeof(DiscriminatedWithMultiMapping_Foo), 0, splitOn); + var toBar = reader.GetRowParser(typeof(DiscriminatedWithMultiMapping_Bar), 0, splitOn); + var toHaz = reader.GetRowParser(typeof(HazNameId), splitOn, reader.FieldCount - splitOn); + + do + { + DiscriminatedWithMultiMapping_BaseType obj = null; + switch (reader.GetInt32(col)) + { + case 1: + obj = toFoo(reader); + break; + case 2: + obj = toBar(reader); + break; + } + + Assert.NotNull(obj); + obj.HazNameIdObject = toHaz(reader); + result.Add(obj); + + } while (reader.Read()); + } + } + + Assert.Equal(2, result.Count); + Assert.Equal(1, result[0].Type); + Assert.Equal(2, result[1].Type); + var foo = (DiscriminatedWithMultiMapping_Foo)result[0]; + Assert.Equal("abc", foo.Name); + Assert.Equal(1, foo.HazNameIdObject.Id); + Assert.Equal("zxc", foo.HazNameIdObject.Name); + var bar = (DiscriminatedWithMultiMapping_Bar)result[1]; + Assert.Equal(bar.Value, (float)4.0); + Assert.Equal(2, bar.HazNameIdObject.Id); + Assert.Equal("qwe", bar.HazNameIdObject.Name); + } + + private abstract class Discriminated_BaseType + { + public abstract int Type { get; } + } + + private class Discriminated_Foo : Discriminated_BaseType + { + public string Name { get; set; } + public override int Type => 1; + } + + private class Discriminated_Bar : Discriminated_BaseType + { + public float Value { get; set; } + public override int Type => 2; + } + + private abstract class DiscriminatedWithMultiMapping_BaseType : Discriminated_BaseType + { + public abstract HazNameId HazNameIdObject { get; set; } + } + + private class DiscriminatedWithMultiMapping_Foo : DiscriminatedWithMultiMapping_BaseType + { + public override HazNameId HazNameIdObject { get; set; } + public string Name { get; set; } + public override int Type => 1; + } + + private class DiscriminatedWithMultiMapping_Bar : DiscriminatedWithMultiMapping_BaseType + { + public override HazNameId HazNameIdObject { get; set; } + public float Value { get; set; } + public override int Type => 2; + } + } +} diff --git a/Dapper.Tests/DecimalTests.cs b/Dapper.Tests/DecimalTests.cs new file mode 100644 index 000000000..c26ef5f12 --- /dev/null +++ b/Dapper.Tests/DecimalTests.cs @@ -0,0 +1,116 @@ +using System; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class DecimalTests : TestBase + { + [Fact] + public void Issue261_Decimals() + { + var parameters = new DynamicParameters(); + parameters.Add("c", dbType: DbType.Decimal, direction: ParameterDirection.Output, precision: 10, scale: 5); + connection.Execute("create proc #Issue261 @c decimal(10,5) OUTPUT as begin set @c=11.884 end"); + connection.Execute("#Issue261", parameters, commandType: CommandType.StoredProcedure); + var c = parameters.Get("c"); + Assert.Equal(11.884M, c); + } + + [Fact] + public void Issue261_Decimals_ADONET_SetViaBaseClass() => Issue261_Decimals_ADONET(true); + + [Fact] + public void Issue261_Decimals_ADONET_SetViaConcreteClass() => Issue261_Decimals_ADONET(false); + + private void Issue261_Decimals_ADONET(bool setPrecisionScaleViaAbstractApi) + { + try + { + using (var cmd = connection.CreateCommand()) + { + cmd.CommandText = "create proc #Issue261Direct @c decimal(10,5) OUTPUT as begin set @c=11.884 end"; + cmd.ExecuteNonQuery(); + } + } + catch { /* we don't care that it already exists */ } + + using (var cmd = connection.CreateCommand()) + { + cmd.CommandType = CommandType.StoredProcedure; + cmd.CommandText = "#Issue261Direct"; + var c = cmd.CreateParameter(); + c.ParameterName = "c"; + c.Direction = ParameterDirection.Output; + c.Value = DBNull.Value; + c.DbType = DbType.Decimal; + + if (setPrecisionScaleViaAbstractApi) + { + IDbDataParameter baseParam = c; + baseParam.Precision = 10; + baseParam.Scale = 5; + } + else + { + c.Precision = 10; + c.Scale = 5; + } + + cmd.Parameters.Add(c); + cmd.ExecuteNonQuery(); + decimal value = (decimal)c.Value; + Assert.Equal(11.884M, value); + } + } + + [Fact] + public void BasicDecimals() + { + var c = connection.Query("select @c", new { c = 11.884M }).Single(); + Assert.Equal(11.884M, c); + } + + [Fact] + public void TestDoubleDecimalConversions_SO18228523_RightWay() + { + var row = connection.Query( + "select cast(1 as float) as A, cast(2 as float) as B, cast(3 as decimal) as C, cast(4 as decimal) as D").Single(); + Assert.Equal(1.0, row.A); + Assert.Equal(2.0, row.B); + Assert.Equal(3.0M, row.C); + Assert.Equal(4.0M, row.D); + } + + [Fact] + public void TestDoubleDecimalConversions_SO18228523_WrongWay() + { + var row = connection.Query( + "select cast(1 as decimal) as A, cast(2 as decimal) as B, cast(3 as float) as C, cast(4 as float) as D").Single(); + Assert.Equal(1.0, row.A); + Assert.Equal(2.0, row.B); + Assert.Equal(3.0M, row.C); + Assert.Equal(4.0M, row.D); + } + + [Fact] + public void TestDoubleDecimalConversions_SO18228523_Nulls() + { + var row = connection.Query( + "select cast(null as decimal) as A, cast(null as decimal) as B, cast(null as float) as C, cast(null as float) as D").Single(); + Assert.Equal(0.0, row.A); + Assert.Null(row.B); + Assert.Equal(0.0M, row.C); + Assert.Null(row.D); + } + + private class HasDoubleDecimal + { + public double A { get; set; } + public double? B { get; set; } + public decimal C { get; set; } + public decimal? D { get; set; } + } + } +} diff --git a/Dapper.Tests/EnumTests.cs b/Dapper.Tests/EnumTests.cs new file mode 100644 index 000000000..e74e4522d --- /dev/null +++ b/Dapper.Tests/EnumTests.cs @@ -0,0 +1,129 @@ +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class EnumTests : TestBase + { + [Fact] + public void TestEnumWeirdness() + { + Assert.Null(connection.Query("select null as [EnumEnum]").First().EnumEnum); + Assert.Equal(TestEnum.Bla, connection.Query("select cast(1 as tinyint) as [EnumEnum]").First().EnumEnum); + } + + [Fact] + public void TestEnumStrings() + { + Assert.Equal(TestEnum.Bla, connection.Query("select 'BLA' as [EnumEnum]").First().EnumEnum); + Assert.Equal(TestEnum.Bla, connection.Query("select 'bla' as [EnumEnum]").First().EnumEnum); + + Assert.Equal(TestEnum.Bla, connection.Query("select 'BLA' as [EnumEnum]").First().EnumEnum); + Assert.Equal(TestEnum.Bla, connection.Query("select 'bla' as [EnumEnum]").First().EnumEnum); + } + + [Fact] + public void TestEnumParamsWithNullable() + { + const EnumParam a = EnumParam.A; + EnumParam? b = EnumParam.B, c = null; + var obj = connection.Query("select @a as A, @b as B, @c as C", + new { a, b, c }).Single(); + Assert.Equal(EnumParam.A, obj.A); + Assert.Equal(EnumParam.B, obj.B); + Assert.Null(obj.C); + } + + [Fact] + public void TestEnumParamsWithoutNullable() + { + const EnumParam a = EnumParam.A; + const EnumParam b = EnumParam.B, c = 0; + var obj = connection.Query("select @a as A, @b as B, @c as C", + new { a, b, c }).Single(); + Assert.Equal(EnumParam.A, obj.A); + Assert.Equal(EnumParam.B, obj.B); + Assert.Equal(obj.C, (EnumParam)0); + } + + private enum EnumParam : short + { + None = 0, + A = 1, + B = 2 + } + + private class EnumParamObject + { + public EnumParam A { get; set; } + public EnumParam? B { get; set; } + public EnumParam? C { get; set; } + } + + private class EnumParamObjectNonNullable + { + public EnumParam A { get; set; } + public EnumParam? B { get; set; } + public EnumParam? C { get; set; } + } + + private enum TestEnum : byte + { + Bla = 1 + } + + private class TestEnumClass + { + public TestEnum? EnumEnum { get; set; } + } + + private class TestEnumClassNoNull + { + public TestEnum EnumEnum { get; set; } + } + + [Fact] + public void AdoNetEnumValue() + { + using (var cmd = connection.CreateCommand()) + { + cmd.CommandText = "select @foo"; + var p = cmd.CreateParameter(); + p.ParameterName = "@foo"; + p.DbType = DbType.Int32; // it turns out that this is the key piece; setting the DbType + p.Value = AnEnum.B; + cmd.Parameters.Add(p); + object value = cmd.ExecuteScalar(); + AnEnum val = (AnEnum)value; + Assert.Equal(AnEnum.B, val); + } + } + + [Fact] + public void DapperEnumValue_SqlServer() => Common.DapperEnumValue(connection); + + private enum SO27024806Enum + { + Foo = 0, + Bar = 1 + } + + private class SO27024806Class + { + public SO27024806Class(SO27024806Enum myField) + { + MyField = myField; + } + + public SO27024806Enum MyField { get; set; } + } + + [Fact] + public void SO27024806_TestVarcharEnumMemberWithExplicitConstructor() + { + var foo = connection.Query("SELECT 'Foo' AS myField").Single(); + Assert.Equal(SO27024806Enum.Foo, foo.MyField); + } + } +} diff --git a/Dapper.Tests/Helpers/Attributes.cs b/Dapper.Tests/Helpers/Attributes.cs new file mode 100644 index 000000000..d71d932b8 --- /dev/null +++ b/Dapper.Tests/Helpers/Attributes.cs @@ -0,0 +1,76 @@ +using System; +using System.Data.SqlClient; +using Xunit; + +namespace Dapper.Tests +{ + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public sealed class FactLongRunningAttribute : FactAttribute + { + public FactLongRunningAttribute() + { +#if !LONG_RUNNING + Skip = "Long running"; +#endif + } + + public string Url { get; private set; } + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class FactRequiredCompatibilityLevelAttribute : FactAttribute + { + public FactRequiredCompatibilityLevelAttribute(int level) : base() + { + if (DetectedLevel < level) + { + Skip = $"Compatibility level {level} required; detected {DetectedLevel}"; + } + } + + public const int SqlServer2016 = 130; + public static readonly int DetectedLevel; + static FactRequiredCompatibilityLevelAttribute() + { + using (var conn = TestBase.GetOpenConnection()) + { + try + { + DetectedLevel = conn.QuerySingle("SELECT compatibility_level FROM sys.databases where name = DB_NAME()"); + } + catch { /* don't care */ } + } + } + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class FactUnlessCaseSensitiveDatabaseAttribute : FactAttribute + { + public FactUnlessCaseSensitiveDatabaseAttribute() : base() + { + if (IsCaseSensitive) + { + Skip = "Case sensitive database"; + } + } + + public static readonly bool IsCaseSensitive; + static FactUnlessCaseSensitiveDatabaseAttribute() + { + using (var conn = TestBase.GetOpenConnection()) + { + try + { + conn.Execute("declare @i int; set @I = 1;"); + } + catch (SqlException s) + { + if (s.Number == 137) + IsCaseSensitive = true; + else + throw; + } + } + } + } +} diff --git a/Dapper.Tests/Helpers/Common.cs b/Dapper.Tests/Helpers/Common.cs new file mode 100644 index 000000000..c3fc74c60 --- /dev/null +++ b/Dapper.Tests/Helpers/Common.cs @@ -0,0 +1,69 @@ +using System; +using System.Data; +using System.Data.Common; +using Xunit; + +namespace Dapper.Tests +{ + public static class Common + { + public static Type GetSomeType() => typeof(SomeType); + + public static void DapperEnumValue(IDbConnection connection) + { + // test passing as AsEnum, reading as int + var v = (AnEnum)connection.QuerySingle("select @v, @y, @z", new { v = AnEnum.B, y = (AnEnum?)AnEnum.B, z = (AnEnum?)null }); + Assert.Equal(AnEnum.B, v); + + var args = new DynamicParameters(); + args.Add("v", AnEnum.B); + args.Add("y", AnEnum.B); + args.Add("z", null); + v = (AnEnum)connection.QuerySingle("select @v, @y, @z", args); + Assert.Equal(AnEnum.B, v); + + // test passing as int, reading as AnEnum + var k = (int)connection.QuerySingle("select @v, @y, @z", new { v = (int)AnEnum.B, y = (int?)(int)AnEnum.B, z = (int?)null }); + Assert.Equal(k, (int)AnEnum.B); + + args = new DynamicParameters(); + args.Add("v", (int)AnEnum.B); + args.Add("y", (int)AnEnum.B); + args.Add("z", null); + k = (int)connection.QuerySingle("select @v, @y, @z", args); + Assert.Equal(k, (int)AnEnum.B); + } + + public static void TestDateTime(DbConnection connection) + { + DateTime? now = DateTime.UtcNow; + try { connection.Execute("DROP TABLE Persons"); } catch { /* don't care */ } + connection.Execute("CREATE TABLE Persons (id int not null, dob datetime null)"); + connection.Execute("INSERT Persons (id, dob) values (@id, @dob)", + new { id = 7, dob = (DateTime?)null }); + connection.Execute("INSERT Persons (id, dob) values (@id, @dob)", + new { id = 42, dob = now }); + + var row = connection.QueryFirstOrDefault( + "SELECT id, dob, dob as dob2 FROM Persons WHERE id=@id", new { id = 7 }); + Assert.NotNull(row); + Assert.Equal(7, row.Id); + Assert.Null(row.DoB); + Assert.Null(row.DoB2); + + row = connection.QueryFirstOrDefault( + "SELECT id, dob FROM Persons WHERE id=@id", new { id = 42 }); + Assert.NotNull(row); + Assert.Equal(42, row.Id); + row.DoB.Equals(now); + row.DoB2.Equals(now); + } + + private class NullableDatePerson + { + public int Id { get; set; } + public DateTime? DoB { get; set; } + public DateTime? DoB2 { get; set; } + } + } +} diff --git a/Dapper.EntityFramework NET45/SqlServerTypes/Loader.cs b/Dapper.Tests/Helpers/SqlServerTypesLoader.cs similarity index 54% rename from Dapper.EntityFramework NET45/SqlServerTypes/Loader.cs rename to Dapper.Tests/Helpers/SqlServerTypesLoader.cs index 891102912..dc50f8369 100644 --- a/Dapper.EntityFramework NET45/SqlServerTypes/Loader.cs +++ b/Dapper.Tests/Helpers/SqlServerTypesLoader.cs @@ -2,14 +2,17 @@ using System.IO; using System.Runtime.InteropServices; -namespace SqlServerTypes +namespace Dapper.Tests { /// /// Utility methods related to CLR Types for SQL Server /// - internal class Utilities + internal static class SqlServerTypesLoader { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static readonly object _nativeLoadLock = new object(); + private static bool _nativeAssembliesLoaded; + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] private static extern IntPtr LoadLibrary(string libname); /// @@ -21,12 +24,21 @@ internal class Utilities /// public static void LoadNativeAssemblies(string rootApplicationPath) { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); + if (_nativeAssembliesLoaded) + return; + lock (_nativeLoadLock) + { + if (!_nativeAssembliesLoaded) + { + var nativeBinaryPath = IntPtr.Size > 4 + ? Path.Combine(rootApplicationPath, @"x64\") + : Path.Combine(rootApplicationPath, @"x86\"); + Console.Write("(from: " + nativeBinaryPath + ")..."); + LoadNativeAssembly(nativeBinaryPath, "msvcr120.dll"); + LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial140.dll"); + _nativeAssembliesLoaded = true; + } + } } private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) @@ -42,4 +54,4 @@ private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyN } } } -} \ No newline at end of file +} diff --git a/Dapper.Tests/Helpers/TransactedConnection.cs b/Dapper.Tests/Helpers/TransactedConnection.cs new file mode 100644 index 000000000..7dd785748 --- /dev/null +++ b/Dapper.Tests/Helpers/TransactedConnection.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dapper.Tests +{ + public class TransactedConnection : IDbConnection + { + private readonly IDbConnection _conn; + private readonly IDbTransaction _tran; + + public TransactedConnection(IDbConnection conn, IDbTransaction tran) + { + _conn = conn; + _tran = tran; + } + + public string ConnectionString + { + get { return _conn.ConnectionString; } + set { _conn.ConnectionString = value; } + } + + public int ConnectionTimeout => _conn.ConnectionTimeout; + public string Database => _conn.Database; + public ConnectionState State => _conn.State; + + public IDbTransaction BeginTransaction(IsolationLevel il) + { + throw new NotImplementedException(); + } + + public IDbTransaction BeginTransaction() => _tran; + + public void ChangeDatabase(string databaseName) => _conn.ChangeDatabase(databaseName); + + public void Close() => _conn.Close(); + + public IDbCommand CreateCommand() + { + // The command inherits the "current" transaction. + var command = _conn.CreateCommand(); + command.Transaction = _tran; + return command; + } + + public void Dispose() => _conn.Dispose(); + + public void Open() => _conn.Open(); + } +} diff --git a/Dapper.Tests/Helpers/XunitSkippable.cs b/Dapper.Tests/Helpers/XunitSkippable.cs new file mode 100644 index 000000000..ffd3406c9 --- /dev/null +++ b/Dapper.Tests/Helpers/XunitSkippable.cs @@ -0,0 +1,100 @@ +using System; + +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Xunit.Abstractions; +using Xunit.Sdk; + +namespace Dapper.Tests +{ + public class SkipTestException : Exception + { + public SkipTestException(string reason) : base(reason) + { + } + } + + // Most of the below is a direct copy & port from the wonderful examples by Brad Wilson at + // https://github.com/xunit/samples.xunit/tree/master/DynamicSkipExample + public class SkippableFactDiscoverer : IXunitTestCaseDiscoverer + { + private readonly IMessageSink _diagnosticMessageSink; + + public SkippableFactDiscoverer(IMessageSink diagnosticMessageSink) + { + _diagnosticMessageSink = diagnosticMessageSink; + } + + public IEnumerable Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) + { + yield return new SkippableFactTestCase(_diagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod); + } + } + + public class SkippableFactTestCase : XunitTestCase + { + [Obsolete("Called by the de-serializer; should only be called by deriving classes for de-serialization purposes")] + public SkippableFactTestCase() + { + } + + public SkippableFactTestCase(IMessageSink diagnosticMessageSink, TestMethodDisplay defaultMethodDisplay, ITestMethod testMethod, object[] testMethodArguments = null) + : base(diagnosticMessageSink, defaultMethodDisplay, testMethod, testMethodArguments) + { + } + + public override async Task RunAsync( + IMessageSink diagnosticMessageSink, + IMessageBus messageBus, + object[] constructorArguments, + ExceptionAggregator aggregator, + CancellationTokenSource cancellationTokenSource) + { + var skipMessageBus = new SkippableFactMessageBus(messageBus); + var result = await base.RunAsync( + diagnosticMessageSink, + skipMessageBus, + constructorArguments, + aggregator, + cancellationTokenSource).ConfigureAwait(false); + if (skipMessageBus.DynamicallySkippedTestCount > 0) + { + result.Failed -= skipMessageBus.DynamicallySkippedTestCount; + result.Skipped += skipMessageBus.DynamicallySkippedTestCount; + } + + return result; + } + } + + public class SkippableFactMessageBus : IMessageBus + { + private readonly IMessageBus _innerBus; + public SkippableFactMessageBus(IMessageBus innerBus) + { + _innerBus = innerBus; + } + + public int DynamicallySkippedTestCount { get; private set; } + + public void Dispose() + { + } + + public bool QueueMessage(IMessageSinkMessage message) + { + if (message is ITestFailed testFailed) + { + var exceptionType = testFailed.ExceptionTypes.FirstOrDefault(); + if (exceptionType == typeof(SkipTestException).FullName) + { + DynamicallySkippedTestCount++; + return _innerBus.QueueMessage(new TestSkipped(testFailed.Test, testFailed.Messages.FirstOrDefault())); + } + } + return _innerBus.QueueMessage(message); + } + } +} diff --git a/Dapper.Tests/LiteralTests.cs b/Dapper.Tests/LiteralTests.cs new file mode 100644 index 000000000..f176fa34a --- /dev/null +++ b/Dapper.Tests/LiteralTests.cs @@ -0,0 +1,100 @@ +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class LiteralTests : TestBase + { + [Fact] + public void LiteralReplacementEnumAndString() + { + var args = new { x = AnEnum.B, y = 123.45M, z = AnotherEnum.A }; + var row = connection.Query("select {=x} as x,{=y} as y,cast({=z} as tinyint) as z", args).Single(); + AnEnum x = (AnEnum)(int)row.x; + decimal y = row.y; + AnotherEnum z = (AnotherEnum)(byte)row.z; + Assert.Equal(AnEnum.B, x); + Assert.Equal(123.45M, y); + Assert.Equal(AnotherEnum.A, z); + } + + [Fact] + public void LiteralReplacementDynamicEnumAndString() + { + var args = new DynamicParameters(); + args.Add("x", AnEnum.B); + args.Add("y", 123.45M); + args.Add("z", AnotherEnum.A); + var row = connection.Query("select {=x} as x,{=y} as y,cast({=z} as tinyint) as z", args).Single(); + AnEnum x = (AnEnum)(int)row.x; + decimal y = row.y; + AnotherEnum z = (AnotherEnum)(byte)row.z; + Assert.Equal(AnEnum.B, x); + Assert.Equal(123.45M, y); + Assert.Equal(AnotherEnum.A, z); + } + + [Fact] + public void LiteralReplacementBoolean() + { + var row = connection.Query("select 42 where 1 = {=val}", new { val = true }).SingleOrDefault(); + Assert.NotNull(row); + Assert.Equal(42, row); + row = connection.Query("select 42 where 1 = {=val}", new { val = false }).SingleOrDefault(); + Assert.Null(row); + } + + [Fact] + public void LiteralReplacementWithIn() + { + var data = connection.Query("select @x where 1 in @ids and 1 ={=a}", + new { x = 1, ids = new[] { 1, 2, 3 }, a = 1 }).ToList(); + } + + private class MyRow + { + public int x { get; set; } + } + + [Fact] + public void LiteralIn() + { + connection.Execute("create table #literalin(id int not null);"); + connection.Execute("insert #literalin (id) values (@id)", new[] { + new { id = 1 }, + new { id = 2 }, + new { id = 3 }, + }); + var count = connection.Query("select count(1) from #literalin where id in {=ids}", + new { ids = new[] { 1, 3, 4 } }).Single(); + Assert.Equal(2, count); + } + + [Fact] + public void LiteralReplacement() + { + connection.Execute("create table #literal1 (id int not null, foo int not null)"); + connection.Execute("insert #literal1 (id,foo) values ({=id}, @foo)", new { id = 123, foo = 456 }); + var rows = new[] { new { id = 1, foo = 2 }, new { id = 3, foo = 4 } }; + connection.Execute("insert #literal1 (id,foo) values ({=id}, @foo)", rows); + var count = connection.Query("select count(1) from #literal1 where id={=foo}", new { foo = 123 }).Single(); + Assert.Equal(1, count); + int sum = connection.Query("select sum(id) + sum(foo) from #literal1").Single(); + Assert.Equal(sum, 123 + 456 + 1 + 2 + 3 + 4); + } + + [Fact] + public void LiteralReplacementDynamic() + { + var args = new DynamicParameters(); + args.Add("id", 123); + connection.Execute("create table #literal2 (id int not null)"); + connection.Execute("insert #literal2 (id) values ({=id})", args); + + args = new DynamicParameters(); + args.Add("foo", 123); + var count = connection.Query("select count(1) from #literal2 where id={=foo}", args).Single(); + Assert.Equal(1, count); + } + } +} diff --git a/Dapper.Tests/MiscTests.cs b/Dapper.Tests/MiscTests.cs new file mode 100644 index 000000000..b118eabee --- /dev/null +++ b/Dapper.Tests/MiscTests.cs @@ -0,0 +1,1155 @@ +using Microsoft.CSharp.RuntimeBinder; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Linq; +using Xunit; + +#if NETCOREAPP1_0 +using System.Collections; +using System.Dynamic; +using System.Data.SqlTypes; +#else // net452 +using System.IO; +using System.Threading; +using System.Threading.Tasks; +#endif + +#if NETCOREAPP1_0 +namespace System +{ + public enum GenericUriParserOptions + { + Default + } + + public class GenericUriParser + { + private readonly GenericUriParserOptions options; + + public GenericUriParser(GenericUriParserOptions options) + { + this.options = options; + } + } +} +#endif + +namespace Dapper.Tests +{ + public class MiscTests : TestBase + { + [Fact] + public void TestNullableGuidSupport() + { + var guid = connection.Query("select null").First(); + Assert.Null(guid); + + guid = Guid.NewGuid(); + var guid2 = connection.Query("select @guid", new { guid }).First(); + Assert.Equal(guid, guid2); + } + + [Fact] + public void TestNonNullableGuidSupport() + { + var guid = Guid.NewGuid(); + var guid2 = connection.Query("select @guid", new { guid }).First(); + Assert.True(guid == guid2); + } + + private struct Car + { + public enum TrapEnum : int + { + A = 1, + B = 2 + } +#pragma warning disable 0649 + public string Name; +#pragma warning restore 0649 + public int Age { get; set; } + public TrapEnum Trap { get; set; } + } + + private struct CarWithAllProps + { + public string Name { get; set; } + public int Age { get; set; } + + public Car.TrapEnum Trap { get; set; } + } + + [Fact] + public void TestStructs() + { + var car = connection.Query("select 'Ford' Name, 21 Age, 2 Trap").First(); + + Assert.Equal(21, car.Age); + Assert.Equal("Ford", car.Name); + Assert.Equal(2, (int)car.Trap); + } + + [Fact] + public void TestStructAsParam() + { + var car1 = new CarWithAllProps { Name = "Ford", Age = 21, Trap = Car.TrapEnum.B }; + // note Car has Name as a field; parameters only respect properties at the moment + var car2 = connection.Query("select @Name Name, @Age Age, @Trap Trap", car1).First(); + + Assert.Equal(car2.Name, car1.Name); + Assert.Equal(car2.Age, car1.Age); + Assert.Equal(car2.Trap, car1.Trap); + } + + [Fact] + public void SelectListInt() + { + Assert.Equal(new[] { 1, 2, 3 }, connection.Query("select 1 union all select 2 union all select 3")); + } + + [Fact] + public void SelectBinary() + { + connection.Query("select cast(1 as varbinary(4))").First().SequenceEqual(new byte[] { 1 }); + } + + [Fact] + public void TestSchemaChanged() + { + connection.Execute("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')"); + try + { + var d = connection.Query("select * from #dog").Single(); + Assert.Equal("Alf", d.Name); + Assert.Equal(1, d.Age); + connection.Execute("alter table #dog drop column Name"); + d = connection.Query("select * from #dog").Single(); + Assert.Null(d.Name); + Assert.Equal(1, d.Age); + } + finally + { + connection.Execute("drop table #dog"); + } + } + + [Fact] + public void TestSchemaChangedViaFirstOrDefault() + { + connection.Execute("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')"); + try + { + var d = connection.QueryFirstOrDefault("select * from #dog"); + Assert.Equal("Alf", d.Name); + Assert.Equal(1, d.Age); + connection.Execute("alter table #dog drop column Name"); + d = connection.QueryFirstOrDefault("select * from #dog"); + Assert.Null(d.Name); + Assert.Equal(1, d.Age); + } + finally + { + connection.Execute("drop table #dog"); + } + } + + [Fact] + public void Test_Single_First_Default() + { + var sql = "select 0 where 1 = 0;"; // no rows + + var ex = Assert.Throws(() => connection.QueryFirst(sql)); + Assert.Equal("Sequence contains no elements", ex.Message); + + ex = Assert.Throws(() => connection.QuerySingle(sql)); + Assert.Equal("Sequence contains no elements", ex.Message); + + Assert.Equal(0, connection.QueryFirstOrDefault(sql)); + Assert.Equal(0, connection.QuerySingleOrDefault(sql)); + + sql = "select 1;"; // one row + Assert.Equal(1, connection.QueryFirst(sql)); + Assert.Equal(1, connection.QuerySingle(sql)); + Assert.Equal(1, connection.QueryFirstOrDefault(sql)); + Assert.Equal(1, connection.QuerySingleOrDefault(sql)); + + sql = "select 2 union select 3 order by 1;"; // two rows + Assert.Equal(2, connection.QueryFirst(sql)); + + ex = Assert.Throws(() => connection.QuerySingle(sql)); + Assert.Equal("Sequence contains more than one element", ex.Message); + + Assert.Equal(2, connection.QueryFirstOrDefault(sql)); + + ex = Assert.Throws(() => connection.QuerySingleOrDefault(sql)); + Assert.Equal("Sequence contains more than one element", ex.Message); + } + + [Fact] + public void TestStrings() + { + Assert.Equal(new[] { "a", "b" }, connection.Query("select 'a' a union select 'b'")); + } + + // see https://stackoverflow.com/questions/16726709/string-format-with-sql-wildcard-causing-dapper-query-to-break + [Fact] + public void CheckComplexConcat() + { + const string end_wildcard = @" +SELECT * FROM #users16726709 +WHERE (first_name LIKE CONCAT(@search_term, '%') OR last_name LIKE CONCAT(@search_term, '%'));"; + + const string both_wildcards = @" +SELECT * FROM #users16726709 +WHERE (first_name LIKE CONCAT('%', @search_term, '%') OR last_name LIKE CONCAT('%', @search_term, '%'));"; + + const string formatted = @" +SELECT * FROM #users16726709 +WHERE (first_name LIKE {0} OR last_name LIKE {0});"; + + const string use_end_only = "CONCAT(@search_term, '%')"; + const string use_both = "CONCAT('%', @search_term, '%')"; + + // if true, slower query due to not being able to use indices, but will allow searching inside strings + const bool allow_start_wildcards = false; + + string query = string.Format(formatted, allow_start_wildcards ? use_both : use_end_only); + const string term = "F"; // the term the user searched for + + connection.Execute(@"create table #users16726709 (first_name varchar(200), last_name varchar(200)) +insert #users16726709 values ('Fred','Bloggs') insert #users16726709 values ('Tony','Farcus') insert #users16726709 values ('Albert','TenoF')"); + + // Using Dapper + Assert.Equal(2, connection.Query(end_wildcard, new { search_term = term }).Count()); + Assert.Equal(3, connection.Query(both_wildcards, new { search_term = term }).Count()); + Assert.Equal(2, connection.Query(query, new { search_term = term }).Count()); + } + + [Fact] + public void TestExtraFields() + { + var guid = Guid.NewGuid(); + var dog = connection.Query("select '' as Extra, 1 as Age, 0.1 as Name1 , Id = @id", new { id = guid }); + + Assert.Single(dog); + Assert.Equal(1, dog.First().Age); + Assert.Equal(dog.First().Id, guid); + } + + [Fact] + public void TestStrongType() + { + var guid = Guid.NewGuid(); + var dog = connection.Query("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); + + Assert.Single(dog); + Assert.Null(dog.First().Age); + Assert.Equal(dog.First().Id, guid); + } + + [Fact] + public void TestSimpleNull() + { + Assert.Null(connection.Query("select null").First()); + } + + [Fact] + public void TestExpando() + { + var rows = connection.Query("select 1 A, 2 B union all select 3, 4").ToList(); + + Assert.Equal(1, (int)rows[0].A); + Assert.Equal(2, (int)rows[0].B); + Assert.Equal(3, (int)rows[1].A); + Assert.Equal(4, (int)rows[1].B); + } + + [Fact] + public void TestStringList() + { + Assert.Equal( + new[] { "a", "b", "c" }, + connection.Query("select * from (select 'a' as x union all select 'b' union all select 'c') as T where x in @strings", new { strings = new[] { "a", "b", "c" } }) + ); + Assert.Equal( + new string[0], + connection.Query("select * from (select 'a' as x union all select 'b' union all select 'c') as T where x in @strings", new { strings = new string[0] }) + ); + } + + [Fact] + public void TestExecuteCommand() + { + Assert.Equal(2, connection.Execute(@" + set nocount on + create table #t(i int) + set nocount off + insert #t + select @a a union all select @b + set nocount on + drop table #t", new { a = 1, b = 2 })); + } + + [Fact] + public void TestExecuteMultipleCommand() + { + connection.Execute("create table #t(i int)"); + try + { + int tally = connection.Execute("insert #t (i) values(@a)", new[] { new { a = 1 }, new { a = 2 }, new { a = 3 }, new { a = 4 } }); + int sum = connection.Query("select sum(i) from #t").First(); + Assert.Equal(4, tally); + Assert.Equal(10, sum); + } + finally + { + connection.Execute("drop table #t"); + } + } + + private class Student + { + public string Name { get; set; } + public int Age { get; set; } + } + + [Fact] + public void TestExecuteMultipleCommandStrongType() + { + connection.Execute("create table #t(Name nvarchar(max), Age int)"); + try + { + int tally = connection.Execute("insert #t (Name,Age) values(@Name, @Age)", new List + { + new Student{Age = 1, Name = "sam"}, + new Student{Age = 2, Name = "bob"} + }); + int sum = connection.Query("select sum(Age) from #t").First(); + Assert.Equal(2, tally); + Assert.Equal(3, sum); + } + finally + { + connection.Execute("drop table #t"); + } + } + + [Fact] + public void TestExecuteMultipleCommandObjectArray() + { + connection.Execute("create table #t(i int)"); + int tally = connection.Execute("insert #t (i) values(@a)", new object[] { new { a = 1 }, new { a = 2 }, new { a = 3 }, new { a = 4 } }); + int sum = connection.Query("select sum(i) from #t drop table #t").First(); + Assert.Equal(4, tally); + Assert.Equal(10, sum); + } + + private class TestObj + { + public int _internal; + internal int Internal + { + set { _internal = value; } + } + + public int _priv; + private int Priv + { + set { _priv = value; } + } + + private int PrivGet => _priv; + } + + [Fact] + public void TestSetInternal() + { + Assert.Equal(10, connection.Query("select 10 as [Internal]").First()._internal); + } + + [Fact] + public void TestSetPrivate() + { + Assert.Equal(10, connection.Query("select 10 as [Priv]").First()._priv); + } + + [Fact] + public void TestExpandWithNullableFields() + { + var row = connection.Query("select null A, 2 B").Single(); + Assert.Null((int?)row.A); + Assert.Equal(2, (int?)row.B); + } + + [Fact] + public void TestEnumeration() + { + var en = connection.Query("select 1 as one union all select 2 as one", buffered: false); + var i = en.GetEnumerator(); + i.MoveNext(); + + bool gotException = false; + try + { + var x = connection.Query("select 1 as one", buffered: false).First(); + } + catch (Exception) + { + gotException = true; + } + + while (i.MoveNext()) + { + } + + // should not exception, since enumerated + en = connection.Query("select 1 as one", buffered: false); + + Assert.True(gotException); + } + + [Fact] + public void TestEnumerationDynamic() + { + var en = connection.Query("select 1 as one union all select 2 as one", buffered: false); + var i = en.GetEnumerator(); + i.MoveNext(); + + bool gotException = false; + try + { + var x = connection.Query("select 1 as one", buffered: false).First(); + } + catch (Exception) + { + gotException = true; + } + + while (i.MoveNext()) + { + } + + // should not exception, since enumertated + en = connection.Query("select 1 as one", buffered: false); + + Assert.True(gotException); + } + + [Fact] + public void TestNakedBigInt() + { + const long foo = 12345; + var result = connection.Query("select @foo", new { foo }).Single(); + Assert.Equal(foo, result); + } + + [Fact] + public void TestBigIntMember() + { + const long foo = 12345; + var result = connection.Query(@" +declare @bar table(Value bigint) +insert @bar values (@foo) +select * from @bar", new { foo }).Single(); + Assert.Equal(result.Value, foo); + } + + private class WithBigInt + { + public long Value { get; set; } + } + + [Fact] + public void TestFieldsAndPrivates() + { + var data = connection.Query( + "select a=1,b=2,c=3,d=4,f='5'").Single(); + Assert.Equal(1, data.a); + Assert.Equal(2, data.GetB()); + Assert.Equal(3, data.c); + Assert.Equal(4, data.GetD()); + Assert.Equal(5, data.e); + } + + private class TestFieldCaseAndPrivatesEntity + { +#pragma warning disable IDE1006 // Naming Styles + public int a { get; set; } + private int b { get; set; } + public int GetB() { return b; } + public int c = 0; +#pragma warning disable RCS1169 // Mark field as read-only. + private int d = 0; +#pragma warning restore RCS1169 // Mark field as read-only. + public int GetD() { return d; } + public int e { get; set; } + private string f + { + get { return e.ToString(); } + set { e = int.Parse(value); } + } +#pragma warning restore IDE1006 // Naming Styles + } + + private class InheritanceTest1 + { + public string Base1 { get; set; } + public string Base2 { get; private set; } + } + + private class InheritanceTest2 : InheritanceTest1 + { + public string Derived1 { get; set; } + public string Derived2 { get; private set; } + } + + [Fact] + public void TestInheritance() + { + // Test that inheritance works. + var list = connection.Query("select 'One' as Derived1, 'Two' as Derived2, 'Three' as Base1, 'Four' as Base2"); + Assert.Equal("One", list.First().Derived1); + Assert.Equal("Two", list.First().Derived2); + Assert.Equal("Three", list.First().Base1); + Assert.Equal("Four", list.First().Base2); + } + +#if !NETCOREAPP1_0 + [Fact] + public void ExecuteReader() + { + var dt = new DataTable(); + dt.Load(connection.ExecuteReader("select 3 as [three], 4 as [four]")); + Assert.Equal(2, dt.Columns.Count); + Assert.Equal("three", dt.Columns[0].ColumnName); + Assert.Equal("four", dt.Columns[1].ColumnName); + Assert.Equal(1, dt.Rows.Count); + Assert.Equal(3, (int)dt.Rows[0][0]); + Assert.Equal(4, (int)dt.Rows[0][1]); + } +#endif + + [Fact] + public void TestDbString() + { + var obj = connection.Query("select datalength(@a) as a, datalength(@b) as b, datalength(@c) as c, datalength(@d) as d, datalength(@e) as e, datalength(@f) as f", + new + { + a = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = true }, + b = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = false }, + c = new DbString { Value = "abcde", IsFixedLength = false, Length = 10, IsAnsi = true }, + d = new DbString { Value = "abcde", IsFixedLength = false, Length = 10, IsAnsi = false }, + e = new DbString { Value = "abcde", IsAnsi = true }, + f = new DbString { Value = "abcde", IsAnsi = false }, + }).First(); + Assert.Equal(10, (int)obj.a); + Assert.Equal(20, (int)obj.b); + Assert.Equal(5, (int)obj.c); + Assert.Equal(10, (int)obj.d); + Assert.Equal(5, (int)obj.e); + Assert.Equal(10, (int)obj.f); + } + + [Fact] + public void TestDefaultDbStringDbType() + { + var origDefaultStringDbType = DbString.IsAnsiDefault; + try + { + DbString.IsAnsiDefault = true; + var a = new DbString { Value = "abcde" }; + var b = new DbString { Value = "abcde", IsAnsi = false }; + Assert.True(a.IsAnsi); + Assert.False(b.IsAnsi); + } + finally + { + DbString.IsAnsiDefault = origDefaultStringDbType; + } + } + + [Fact] + public void TestFastExpandoSupportsIDictionary() + { + var row = connection.Query("select 1 A, 'two' B").First() as IDictionary; + Assert.Equal(1, row["A"]); + Assert.Equal("two", row["B"]); + } + + [Fact] + public void TestDapperSetsPrivates() + { + Assert.Equal(1, connection.Query("select 'one' ShadowInDB").First().Shadow); + + Assert.Equal(1, connection.QueryFirstOrDefault("select 'one' ShadowInDB").Shadow); + } + + private class PrivateDan + { + public int Shadow { get; set; } + private string ShadowInDB + { + set { Shadow = value == "one" ? 1 : 0; } + } + } + + [Fact] + public void TestUnexpectedDataMessage() + { + string msg = null; + try + { + connection.Query("select count(1) where 1 = @Foo", new WithBizarreData { Foo = new GenericUriParser(GenericUriParserOptions.Default), Bar = 23 }).First(); + } + catch (Exception ex) + { + msg = ex.Message; + } + Assert.Equal("The member Foo of type System.GenericUriParser cannot be used as a parameter value", msg); + } + + [Fact] + public void TestUnexpectedButFilteredDataMessage() + { + int i = connection.Query("select @Bar", new WithBizarreData { Foo = new GenericUriParser(GenericUriParserOptions.Default), Bar = 23 }).Single(); + + Assert.Equal(23, i); + } + + private class WithBizarreData + { + public GenericUriParser Foo { get; set; } + public int Bar { get; set; } + } + + private class WithCharValue + { + public char Value { get; set; } + public char? ValueNullable { get; set; } + } + + [Fact] + public void TestCharInputAndOutput() + { + const char test = '〠'; + char c = connection.Query("select @c", new { c = test }).Single(); + + Assert.Equal(c, test); + + var obj = connection.Query("select @Value as Value", new WithCharValue { Value = c }).Single(); + + Assert.Equal(obj.Value, test); + } + + [Fact] + public void TestNullableCharInputAndOutputNonNull() + { + char? test = '〠'; + char? c = connection.Query("select @c", new { c = test }).Single(); + + Assert.Equal(c, test); + + var obj = connection.Query("select @ValueNullable as ValueNullable", new WithCharValue { ValueNullable = c }).Single(); + + Assert.Equal(obj.ValueNullable, test); + } + + [Fact] + public void TestNullableCharInputAndOutputNull() + { + char? test = null; + char? c = connection.Query("select @c", new { c = test }).Single(); + + Assert.Equal(c, test); + + var obj = connection.Query("select @ValueNullable as ValueNullable", new WithCharValue { ValueNullable = c }).Single(); + + Assert.Equal(obj.ValueNullable, test); + } + + [Fact] + public void WorkDespiteHavingWrongStructColumnTypes() + { + var hazInt = connection.Query("select cast(1 as bigint) Value").Single(); + Assert.Equal(1, hazInt.Value); + } + + private struct CanHazInt + { + public int Value { get; set; } + } + + [Fact] + public void TestInt16Usage() + { + Assert.Equal(connection.Query("select cast(42 as smallint)").Single(), (short)42); + Assert.Equal(connection.Query("select cast(42 as smallint)").Single(), (short?)42); + Assert.Equal(connection.Query("select cast(null as smallint)").Single(), (short?)null); + + Assert.Equal(connection.Query("select cast(42 as smallint)").Single(), (ShortEnum)42); + Assert.Equal(connection.Query("select cast(42 as smallint)").Single(), (ShortEnum?)42); + Assert.Equal(connection.Query("select cast(null as smallint)").Single(), (ShortEnum?)null); + + var row = + connection.Query( + "select cast(1 as smallint) as NonNullableInt16, cast(2 as smallint) as NullableInt16, cast(3 as smallint) as NonNullableInt16Enum, cast(4 as smallint) as NullableInt16Enum") + .Single(); + Assert.Equal(row.NonNullableInt16, (short)1); + Assert.Equal(row.NullableInt16, (short)2); + Assert.Equal(ShortEnum.Three, row.NonNullableInt16Enum); + Assert.Equal(ShortEnum.Four, row.NullableInt16Enum); + + row = + connection.Query( + "select cast(5 as smallint) as NonNullableInt16, cast(null as smallint) as NullableInt16, cast(6 as smallint) as NonNullableInt16Enum, cast(null as smallint) as NullableInt16Enum") + .Single(); + Assert.Equal(row.NonNullableInt16, (short)5); + Assert.Equal(row.NullableInt16, (short?)null); + Assert.Equal(ShortEnum.Six, row.NonNullableInt16Enum); + Assert.Equal(row.NullableInt16Enum, (ShortEnum?)null); + } + + [Fact] + public void TestInt32Usage() + { + Assert.Equal(connection.Query("select cast(42 as int)").Single(), (int)42); + Assert.Equal(connection.Query("select cast(42 as int)").Single(), (int?)42); + Assert.Equal(connection.Query("select cast(null as int)").Single(), (int?)null); + + Assert.Equal(connection.Query("select cast(42 as int)").Single(), (IntEnum)42); + Assert.Equal(connection.Query("select cast(42 as int)").Single(), (IntEnum?)42); + Assert.Equal(connection.Query("select cast(null as int)").Single(), (IntEnum?)null); + + var row = + connection.Query( + "select cast(1 as int) as NonNullableInt32, cast(2 as int) as NullableInt32, cast(3 as int) as NonNullableInt32Enum, cast(4 as int) as NullableInt32Enum") + .Single(); + Assert.Equal(row.NonNullableInt32, (int)1); + Assert.Equal(row.NullableInt32, (int)2); + Assert.Equal(IntEnum.Three, row.NonNullableInt32Enum); + Assert.Equal(IntEnum.Four, row.NullableInt32Enum); + + row = + connection.Query( + "select cast(5 as int) as NonNullableInt32, cast(null as int) as NullableInt32, cast(6 as int) as NonNullableInt32Enum, cast(null as int) as NullableInt32Enum") + .Single(); + Assert.Equal(row.NonNullableInt32, (int)5); + Assert.Equal(row.NullableInt32, (int?)null); + Assert.Equal(IntEnum.Six, row.NonNullableInt32Enum); + Assert.Equal(row.NullableInt32Enum, (IntEnum?)null); + } + + public class WithInt16Values + { + public short NonNullableInt16 { get; set; } + public short? NullableInt16 { get; set; } + public ShortEnum NonNullableInt16Enum { get; set; } + public ShortEnum? NullableInt16Enum { get; set; } + } + + public class WithInt32Values + { + public int NonNullableInt32 { get; set; } + public int? NullableInt32 { get; set; } + public IntEnum NonNullableInt32Enum { get; set; } + public IntEnum? NullableInt32Enum { get; set; } + } + + public enum IntEnum : int + { + Zero = 0, One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6 + } + + [Fact] + public void Issue_40_AutomaticBoolConversion() + { + var user = connection.Query("select UserId=1,Email='abc',Password='changeme',Active=cast(1 as tinyint)").Single(); + Assert.True(user.Active); + Assert.Equal(1, user.UserID); + Assert.Equal("abc", user.Email); + Assert.Equal("changeme", user.Password); + } + + public class Issue40_User + { + public Issue40_User() + { + Email = Password = string.Empty; + } + + public int UserID { get; set; } + public string Email { get; set; } + public string Password { get; set; } + public bool Active { get; set; } + } + + [Fact] + public void ExecuteFromClosed() + { + using (var conn = GetClosedConnection()) + { + conn.Execute("-- nop"); + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void ExecuteInvalidFromClosed() + { + using (var conn = GetClosedConnection()) + { + var ex = Assert.ThrowsAny(() => conn.Execute("nop")); + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void QueryFromClosed() + { + using (var conn = GetClosedConnection()) + { + var i = conn.Query("select 1").Single(); + Assert.Equal(ConnectionState.Closed, conn.State); + Assert.Equal(1, i); + } + } + + [Fact] + public void QueryInvalidFromClosed() + { + using (var conn = GetClosedConnection()) + { + Assert.ThrowsAny(() => conn.Query("select gibberish").Single()); + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void TestDynamicMutation() + { + var obj = connection.Query("select 1 as [a], 2 as [b], 3 as [c]").Single(); + Assert.Equal(1, (int)obj.a); + IDictionary dict = obj; + Assert.Equal(3, dict.Count); + Assert.True(dict.Remove("a")); + Assert.False(dict.Remove("d")); + Assert.Equal(2, dict.Count); + dict.Add("d", 4); + Assert.Equal(3, dict.Count); + Assert.Equal("b,c,d", string.Join(",", dict.Keys.OrderBy(x => x))); + Assert.Equal("2,3,4", string.Join(",", dict.OrderBy(x => x.Key).Select(x => x.Value))); + + Assert.Equal(2, (int)obj.b); + Assert.Equal(3, (int)obj.c); + Assert.Equal(4, (int)obj.d); + try + { + Assert.Equal(1, (int)obj.a); + throw new InvalidOperationException("should have thrown"); + } + catch (RuntimeBinderException) + { + // pass + } + } + + [Fact] + public void TestIssue131() + { + var results = connection.Query( + "SELECT 1 Id, 'Mr' Title, 'John' Surname, 4 AddressCount", + (person, addressCount) => person, + splitOn: "AddressCount" + ).FirstOrDefault(); + + var asDict = (IDictionary)results; + + Assert.True(asDict.ContainsKey("Id")); + Assert.True(asDict.ContainsKey("Title")); + Assert.True(asDict.ContainsKey("Surname")); + Assert.False(asDict.ContainsKey("AddressCount")); + } + + // see https://stackoverflow.com/questions/13127886/dapper-returns-null-for-singleordefaultdatediff + [Fact] + public void TestNullFromInt_NoRows() + { + var result = connection.Query( // case with rows + "select DATEDIFF(day, GETUTCDATE(), @date)", new { date = DateTime.UtcNow.AddDays(20) }) + .SingleOrDefault(); + Assert.Equal(20, result); + + result = connection.Query( // case without rows + "select DATEDIFF(day, GETUTCDATE(), @date) where 1 = 0", new { date = DateTime.UtcNow.AddDays(20) }) + .SingleOrDefault(); + Assert.Equal(0, result); // zero rows; default of int over zero rows is zero + } + + [Fact] + public void TestDapperTableMetadataRetrieval() + { + // Test for a bug found in CS 51509960 where the following sequence would result in an InvalidOperationException being + // thrown due to an attempt to access a disposed of DataReader: + // + // - Perform a dynamic query that yields no results + // - Add data to the source of that query + // - Perform a the same query again + connection.Execute("CREATE TABLE #sut (value varchar(10) NOT NULL PRIMARY KEY)"); + Assert.Equal(Enumerable.Empty(), connection.Query("SELECT value FROM #sut")); + + Assert.Equal(1, connection.Execute("INSERT INTO #sut (value) VALUES ('test')")); + var result = connection.Query("SELECT value FROM #sut"); + + var first = result.First(); + Assert.Equal("test", (string)first.value); + } + + [Fact] + public void DbStringAnsi() + { + var a = connection.Query("select datalength(@x)", + new { x = new DbString { Value = "abc", IsAnsi = true } }).Single(); + var b = connection.Query("select datalength(@x)", + new { x = new DbString { Value = "abc", IsAnsi = false } }).Single(); + Assert.Equal(3, a); + Assert.Equal(6, b); + } + + private class HasInt32 + { + public int Value { get; set; } + } + + // https://stackoverflow.com/q/23696254/23354 + [Fact] + public void DownwardIntegerConversion() + { + const string sql = "select cast(42 as bigint) as Value"; + int i = connection.Query(sql).Single().Value; + Assert.Equal(42, i); + + i = connection.Query(sql).Single(); + Assert.Equal(42, i); + } + + [Fact] + public void TypeBasedViaDynamic() + { + Type type = Common.GetSomeType(); + + dynamic template = Activator.CreateInstance(type); + dynamic actual = CheetViaDynamic(template, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }); + Assert.Equal(((object)actual).GetType(), type); + int a = actual.A; + string b = actual.B; + Assert.Equal(123, a); + Assert.Equal("abc", b); + } + + [Fact] + public void TypeBasedViaType() + { + Type type = Common.GetSomeType(); + + dynamic actual = connection.Query(type, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }).FirstOrDefault(); + Assert.Equal(((object)actual).GetType(), type); + int a = actual.A; + string b = actual.B; + Assert.Equal(123, a); + Assert.Equal("abc", b); + } + + private T CheetViaDynamic(T template, string query, object args) + { + return connection.Query(query, args).SingleOrDefault(); + } + + [Fact] + public void Issue22_ExecuteScalar() + { + int i = connection.ExecuteScalar("select 123"); + Assert.Equal(123, i); + + i = connection.ExecuteScalar("select cast(123 as bigint)"); + Assert.Equal(123, i); + + long j = connection.ExecuteScalar("select 123"); + Assert.Equal(123L, j); + + j = connection.ExecuteScalar("select cast(123 as bigint)"); + Assert.Equal(123L, j); + + int? k = connection.ExecuteScalar("select @i", new { i = default(int?) }); + Assert.Null(k); + } + + [Fact] + public void Issue142_FailsNamedStatus() + { + var row1 = connection.Query("select @Status as [Status]", new { Status = StatusType.Started }).Single(); + Assert.Equal(StatusType.Started, row1.Status); + + var row2 = connection.Query("select @Status as [Status]", new { Status = Status.Started }).Single(); + Assert.Equal(Status.Started, row2.Status); + } + + public class Issue142_Status + { + public StatusType Status { get; set; } + } + + public class Issue142_StatusType + { + public Status Status { get; set; } + } + + public enum StatusType : byte + { + NotStarted = 1, Started = 2, Finished = 3 + } + + public enum Status : byte + { + NotStarted = 1, Started = 2, Finished = 3 + } + + [Fact] + public void Issue178_SqlServer() + { + const string sql = "select count(*) from Issue178"; + try { connection.Execute("drop table Issue178"); } + catch { /* don't care */ } + try { connection.Execute("create table Issue178(id int not null)"); } + catch { /* don't care */ } + // raw ADO.net + var sqlCmd = new SqlCommand(sql, connection); + using (IDataReader reader1 = sqlCmd.ExecuteReader()) + { + Assert.True(reader1.Read()); + Assert.Equal(0, reader1.GetInt32(0)); + Assert.False(reader1.Read()); + Assert.False(reader1.NextResult()); + } + + // dapper + using (var reader2 = connection.ExecuteReader(sql)) + { + Assert.True(reader2.Read()); + Assert.Equal(0, reader2.GetInt32(0)); + Assert.False(reader2.Read()); + Assert.False(reader2.NextResult()); + } + } + + [Fact] + public void QueryBasicWithoutQuery() + { + int? i = connection.Query("print 'not a query'").FirstOrDefault(); + Assert.Null(i); + } + + [Fact] + public void QueryComplexWithoutQuery() + { + var obj = connection.Query("print 'not a query'").FirstOrDefault(); + Assert.Null(obj); + } + + [FactLongRunning] + public void Issue263_Timeout() + { + var watch = Stopwatch.StartNew(); + var i = connection.Query("waitfor delay '00:01:00'; select 42;", commandTimeout: 300, buffered: false).Single(); + watch.Stop(); + Assert.Equal(42, i); + var minutes = watch.ElapsedMilliseconds / 1000 / 60; + Assert.True(minutes >= 0.95 && minutes <= 1.05); + } + + [Fact] + public void SO30435185_InvalidTypeOwner() + { + var ex = Assert.Throws(() => + { + const string sql = @" INSERT INTO #XXX + (XXXId, AnotherId, ThirdId, Value, Comment) + VALUES + (@XXXId, @AnotherId, @ThirdId, @Value, @Comment); select @@rowcount as [Foo]"; + + var command = new + { + MyModels = new[] + { + new {XXXId = 1, AnotherId = 2, ThirdId = 3, Value = "abc", Comment = "def" } + } + }; + var parameters = command + .MyModels + .Select(model => new + { + XXXId = model.XXXId, + AnotherId = model.AnotherId, + ThirdId = model.ThirdId, + Value = model.Value, + Comment = model.Comment + }) + .ToArray(); + + var rowcount = (int)connection.Query(sql, parameters).Single().Foo; + Assert.Equal(1, rowcount); + }); + Assert.Equal("An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context", ex.Message); + } + + [Fact] + public async void SO35470588_WrongValuePidValue() + { + // nuke, rebuild, and populate the table + try { connection.Execute("drop table TPTable"); } catch { /* don't care */ } + connection.Execute(@" +create table TPTable (Pid int not null primary key identity(1,1), Value int not null); +insert TPTable (Value) values (2), (568)"); + + // fetch the data using the query in the question, then force to a dictionary + var rows = (await connection.QueryAsync("select * from TPTable").ConfigureAwait(false)) + .ToDictionary(x => x.Pid); + + // check the number of rows + Assert.Equal(2, rows.Count); + + // check row 1 + var row = rows[1]; + Assert.Equal(1, row.Pid); + Assert.Equal(2, row.Value); + + // check row 2 + row = rows[2]; + Assert.Equal(2, row.Pid); + Assert.Equal(568, row.Value); + } + + public class TPTable + { + public int Pid { get; set; } + public int Value { get; set; } + } + + [Fact] + public void GetOnlyProperties() + { + var obj = connection.QuerySingle("select 42 as [Id], 'def' as [Name];"); + Assert.Equal(42, obj.Id); + Assert.Equal("def", obj.Name); + } + + private class HazGetOnly + { + public int Id { get; } + public string Name { get; } = "abc"; + } + } +} diff --git a/Dapper.Tests/MultiMapTests.cs b/Dapper.Tests/MultiMapTests.cs new file mode 100644 index 000000000..fbec87bcb --- /dev/null +++ b/Dapper.Tests/MultiMapTests.cs @@ -0,0 +1,658 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class MultiMapTests : TestBase + { + [Fact] + public void ParentChildIdentityAssociations() + { + var lookup = new Dictionary(); + var parents = connection.Query("select 1 as [Id], 1 as [Id] union all select 1,2 union all select 2,3 union all select 1,4 union all select 3,5", + (parent, child) => + { + if (!lookup.TryGetValue(parent.Id, out Parent found)) + { + lookup.Add(parent.Id, found = parent); + } + found.Children.Add(child); + return found; + }).Distinct().ToDictionary(p => p.Id); + Assert.Equal(3, parents.Count); + Assert.True(parents[1].Children.Select(c => c.Id).SequenceEqual(new[] { 1, 2, 4 })); + Assert.True(parents[2].Children.Select(c => c.Id).SequenceEqual(new[] { 3 })); + Assert.True(parents[3].Children.Select(c => c.Id).SequenceEqual(new[] { 5 })); + } + + private class Parent + { + public int Id { get; set; } + public readonly List Children = new List(); + } + + private class Child + { + public int Id { get; set; } + } + + [Fact] + public void TestMultiMap() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post') +"; + connection.Execute(createSql); + try + { + const string sql = + @"select * from #Posts p +left join #Users u on u.Id = p.OwnerId +Order by p.Id"; + + var data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToList(); + var p = data[0]; + + Assert.Equal("Sams Post1", p.Content); + Assert.Equal(1, p.Id); + Assert.Equal("Sam", p.Owner.Name); + Assert.Equal(99, p.Owner.Id); + + Assert.Null(data[2].Owner); + } + finally + { + connection.Execute("drop table #Users drop table #Posts"); + } + } + + [Fact] + public void TestSchemaChangedMultiMap() + { + connection.Execute("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')"); + try + { + var tuple = connection.Query>("select * from #dog d1 join #dog d2 on 1=1", Tuple.Create, splitOn: "Age").Single(); + + Assert.Equal("Alf", tuple.Item1.Name); + Assert.Equal(1, tuple.Item1.Age); + Assert.Equal("Alf", tuple.Item2.Name); + Assert.Equal(1, tuple.Item2.Age); + + connection.Execute("alter table #dog drop column Name"); + tuple = connection.Query>("select * from #dog d1 join #dog d2 on 1=1", Tuple.Create, splitOn: "Age").Single(); + + Assert.Null(tuple.Item1.Name); + Assert.Equal(1, tuple.Item1.Age); + Assert.Null(tuple.Item2.Name); + Assert.Equal(1, tuple.Item2.Age); + } + finally + { + connection.Execute("drop table #dog"); + } + } + + [Fact] + public void TestReadMultipleIntegersWithSplitOnAny() + { + Assert.Equal( + new[] { Tuple.Create(1, 2, 3), Tuple.Create(4, 5, 6) }, + connection.Query>("select 1,2,3 union all select 4,5,6", Tuple.Create, splitOn: "*") + ); + } + + private class Multi1 + { + public int Id { get; set; } + } + + private class Multi2 + { + public int Id { get; set; } + } + + [Fact] + public void QueryMultimapFromClosed() + { + using (var conn = GetClosedConnection()) + { + Assert.Equal(ConnectionState.Closed, conn.State); + var i = conn.Query("select 2 as [Id], 3 as [Id]", (x, y) => x.Id + y.Id).Single(); + Assert.Equal(ConnectionState.Closed, conn.State); + Assert.Equal(5, i); + } + } + + [Fact] + public void TestMultiMapThreeTypesWithGridReader() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + create table #Comments (Id int, PostId int, CommentData varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post') + + insert #Comments values(1, 1, 'Comment 1')"; + connection.Execute(createSql); + try + { + const string sql = @"SELECT p.* FROM #Posts p + +select p.*, u.Id, u.Name + '0' Name, c.Id, c.CommentData from #Posts p +left join #Users u on u.Id = p.OwnerId +left join #Comments c on c.PostId = p.Id +where p.Id = 1 +Order by p.Id"; + + var grid = connection.QueryMultiple(sql); + + var post1 = grid.Read().ToList(); + + var post2 = grid.Read((post, user, comment) => { post.Owner = user; post.Comment = comment; return post; }).SingleOrDefault(); + + Assert.Equal(1, post2.Comment.Id); + Assert.Equal(99, post2.Owner.Id); + } + finally + { + connection.Execute("drop table #Users drop table #Posts drop table #Comments"); + } + } + + [Fact] + public void TestMultiMapperIsNotConfusedWithUnorderedCols() + { + var result = connection.Query>("select 1 as Id, 2 as BarId, 3 as BarId, 'a' as Name", Tuple.Create, splitOn: "BarId").First(); + + Assert.Equal(1, result.Item1.Id); + Assert.Equal(2, result.Item1.BarId); + Assert.Equal(3, result.Item2.BarId); + Assert.Equal("a", result.Item2.Name); + } + + [Fact] + public void TestMultiMapDynamic() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post') +"; + connection.Execute(createSql); + + const string sql = +@"select * from #Posts p +left join #Users u on u.Id = p.OwnerId +Order by p.Id"; + + var data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToList(); + var p = data[0]; + + // hairy extension method support for dynamics + Assert.Equal("Sams Post1", (string)p.Content); + Assert.Equal(1, (int)p.Id); + Assert.Equal("Sam", (string)p.Owner.Name); + Assert.Equal(99, (int)p.Owner.Id); + + Assert.Null((object)data[2].Owner); + + connection.Execute("drop table #Users drop table #Posts"); + } + + [Fact] + public void TestMultiMapWithSplit() // https://stackoverflow.com/q/6056778/23354 + { + const string sql = "select 1 as id, 'abc' as name, 2 as id, 'def' as name"; + var product = connection.Query(sql, (prod, cat) => + { + prod.Category = cat; + return prod; + }).First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.Equal(2, product.Category.Id); + Assert.Equal("def", product.Category.Name); + } + + [Fact] + public void TestMultiMapWithSplitWithNullValue() // https://stackoverflow.com/q/10744728/449906 + { + const string sql = "select 1 as id, 'abc' as name, NULL as description, 'def' as name"; + var product = connection.Query(sql, (prod, cat) => + { + prod.Category = cat; + return prod; + }, splitOn: "description").First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.Null(product.Category); + } + + [Fact] + public void TestMultiMapWithSplitWithNullValueAndSpoofColumn() // https://stackoverflow.com/q/10744728/449906 + { + const string sql = "select 1 as id, 'abc' as name, 1 as spoof, NULL as description, 'def' as name"; + var product = connection.Query(sql, (prod, cat) => + { + prod.Category = cat; + return prod; + }, splitOn: "spoof").First(); + // assertions + Assert.Equal(1, product.Id); + Assert.Equal("abc", product.Name); + Assert.NotNull(product.Category); + Assert.Equal(0, product.Category.Id); + Assert.Equal("def", product.Category.Name); + Assert.Null(product.Category.Description); + } + + [Fact] + public void TestMultiMappingVariations() + { + const string sql = "select 1 as Id, 'a' as Content, 2 as Id, 'b' as Content, 3 as Id, 'c' as Content, 4 as Id, 'd' as Content, 5 as Id, 'e' as Content"; + + var order = connection.Query(sql, (o, owner, creator) => { o.Owner = owner; o.Creator = creator; return o; }).First(); + + Assert.Equal(order.Id, 1); + Assert.Equal(order.Content, "a"); + Assert.Equal(order.Owner.Id, 2); + Assert.Equal(order.Owner.Content, "b"); + Assert.Equal(order.Creator.Id, 3); + Assert.Equal(order.Creator.Content, "c"); + + order = connection.Query(sql, (o, owner, creator, address) => + { + o.Owner = owner; + o.Creator = creator; + o.Owner.Address = address; + return o; + }).First(); + + Assert.Equal(order.Id, 1); + Assert.Equal(order.Content, "a"); + Assert.Equal(order.Owner.Id, 2); + Assert.Equal(order.Owner.Content, "b"); + Assert.Equal(order.Creator.Id, 3); + Assert.Equal(order.Creator.Content, "c"); + Assert.Equal(order.Owner.Address.Id, 4); + Assert.Equal(order.Owner.Address.Content, "d"); + + order = connection.Query(sql, (a, b, c, d, e) => { a.B = b; a.C = c; a.C.D = d; a.E = e; return a; }).First(); + + Assert.Equal(order.Id, 1); + Assert.Equal(order.Content, "a"); + Assert.Equal(order.B.Id, 2); + Assert.Equal(order.B.Content, "b"); + Assert.Equal(order.C.Id, 3); + Assert.Equal(order.C.Content, "c"); + Assert.Equal(order.C.D.Id, 4); + Assert.Equal(order.C.D.Content, "d"); + Assert.Equal(order.E.Id, 5); + Assert.Equal(order.E.Content, "e"); + } + + private class UserWithConstructor + { + public UserWithConstructor(int id, string name) + { + Ident = id; + FullName = name; + } + + public int Ident { get; set; } + public string FullName { get; set; } + } + + private class PostWithConstructor + { + public PostWithConstructor(int id, int ownerid, string content) + { + Ident = id; + FullContent = content; + } + + public int Ident { get; set; } + public UserWithConstructor Owner { get; set; } + public string FullContent { get; set; } + public Comment Comment { get; set; } + } + + [Fact] + public void TestMultiMapWithConstructor() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post')"; + connection.Execute(createSql); + try + { + const string sql = @"select * from #Posts p + left join #Users u on u.Id = p.OwnerId + Order by p.Id"; + PostWithConstructor[] data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToArray(); + var p = data.First(); + + Assert.Equal("Sams Post1", p.FullContent); + Assert.Equal(1, p.Ident); + Assert.Equal("Sam", p.Owner.FullName); + Assert.Equal(99, p.Owner.Ident); + + Assert.Null(data[2].Owner); + } + finally + { + connection.Execute("drop table #Users drop table #Posts"); + } + } + + [Fact] + public void TestMultiMapArbitraryMaps() + { + // please excuse the trite example, but it is easier to follow than a more real-world one + const string createSql = @" + create table #ReviewBoards (Id int, Name varchar(20), User1Id int, User2Id int, User3Id int, User4Id int, User5Id int, User6Id int, User7Id int, User8Id int, User9Id int) + create table #Users (Id int, Name varchar(20)) + + insert #Users values(1, 'User 1') + insert #Users values(2, 'User 2') + insert #Users values(3, 'User 3') + insert #Users values(4, 'User 4') + insert #Users values(5, 'User 5') + insert #Users values(6, 'User 6') + insert #Users values(7, 'User 7') + insert #Users values(8, 'User 8') + insert #Users values(9, 'User 9') + + insert #ReviewBoards values(1, 'Review Board 1', 1, 2, 3, 4, 5, 6, 7, 8, 9) +"; + connection.Execute(createSql); + try + { + const string sql = @" + select + rb.Id, rb.Name, + u1.*, u2.*, u3.*, u4.*, u5.*, u6.*, u7.*, u8.*, u9.* + from #ReviewBoards rb + inner join #Users u1 on u1.Id = rb.User1Id + inner join #Users u2 on u2.Id = rb.User2Id + inner join #Users u3 on u3.Id = rb.User3Id + inner join #Users u4 on u4.Id = rb.User4Id + inner join #Users u5 on u5.Id = rb.User5Id + inner join #Users u6 on u6.Id = rb.User6Id + inner join #Users u7 on u7.Id = rb.User7Id + inner join #Users u8 on u8.Id = rb.User8Id + inner join #Users u9 on u9.Id = rb.User9Id +"; + + var types = new[] { typeof(ReviewBoard), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User) }; + + Func mapper = (objects) => + { + var board = (ReviewBoard)objects[0]; + board.User1 = (User)objects[1]; + board.User2 = (User)objects[2]; + board.User3 = (User)objects[3]; + board.User4 = (User)objects[4]; + board.User5 = (User)objects[5]; + board.User6 = (User)objects[6]; + board.User7 = (User)objects[7]; + board.User8 = (User)objects[8]; + board.User9 = (User)objects[9]; + return board; + }; + + var data = connection.Query(sql, types, mapper).ToList(); + + var p = data[0]; + Assert.Equal(1, p.Id); + Assert.Equal("Review Board 1", p.Name); + Assert.Equal(1, p.User1.Id); + Assert.Equal(2, p.User2.Id); + Assert.Equal(3, p.User3.Id); + Assert.Equal(4, p.User4.Id); + Assert.Equal(5, p.User5.Id); + Assert.Equal(6, p.User6.Id); + Assert.Equal(7, p.User7.Id); + Assert.Equal(8, p.User8.Id); + Assert.Equal(9, p.User9.Id); + Assert.Equal("User 1", p.User1.Name); + Assert.Equal("User 2", p.User2.Name); + Assert.Equal("User 3", p.User3.Name); + Assert.Equal("User 4", p.User4.Name); + Assert.Equal("User 5", p.User5.Name); + Assert.Equal("User 6", p.User6.Name); + Assert.Equal("User 7", p.User7.Name); + Assert.Equal("User 8", p.User8.Name); + Assert.Equal("User 9", p.User9.Name); + } + finally + { + connection.Execute("drop table #Users drop table #ReviewBoards"); + } + } + + [Fact] + public void TestMultiMapGridReader() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post') +"; + connection.Execute(createSql); + + const string sql = +@"select p.*, u.Id, u.Name + '0' Name from #Posts p +left join #Users u on u.Id = p.OwnerId +Order by p.Id + +select p.*, u.Id, u.Name + '1' Name from #Posts p +left join #Users u on u.Id = p.OwnerId +Order by p.Id +"; + + var grid = connection.QueryMultiple(sql); + + for (int i = 0; i < 2; i++) + { + var data = grid.Read((post, user) => { post.Owner = user; return post; }).ToList(); + var p = data[0]; + + Assert.Equal("Sams Post1", p.Content); + Assert.Equal(1, p.Id); + Assert.Equal(p.Owner.Name, "Sam" + i); + Assert.Equal(99, p.Owner.Id); + + Assert.Null(data[2].Owner); + } + + connection.Execute("drop table #Users drop table #Posts"); + } + + [Fact] + public void TestFlexibleMultiMapping() + { + const string sql = +@"select + 1 as PersonId, 'bob' as Name, + 2 as AddressId, 'abc street' as Name, 1 as PersonId, + 3 as Id, 'fred' as Name + "; + var personWithAddress = connection.Query> + (sql, Tuple.Create, splitOn: "AddressId,Id").First(); + + Assert.Equal(1, personWithAddress.Item1.PersonId); + Assert.Equal("bob", personWithAddress.Item1.Name); + Assert.Equal(2, personWithAddress.Item2.AddressId); + Assert.Equal("abc street", personWithAddress.Item2.Name); + Assert.Equal(1, personWithAddress.Item2.PersonId); + Assert.Equal(3, personWithAddress.Item3.Id); + Assert.Equal("fred", personWithAddress.Item3.Name); + } + + [Fact] + public void TestMultiMappingWithSplitOnSpaceBetweenCommas() + { + const string sql = @"select + 1 as PersonId, 'bob' as Name, + 2 as AddressId, 'abc street' as Name, 1 as PersonId, + 3 as Id, 'fred' as Name + "; + var personWithAddress = connection.Query> + (sql, Tuple.Create, splitOn: "AddressId, Id").First(); + + Assert.Equal(1, personWithAddress.Item1.PersonId); + Assert.Equal("bob", personWithAddress.Item1.Name); + Assert.Equal(2, personWithAddress.Item2.AddressId); + Assert.Equal("abc street", personWithAddress.Item2.Name); + Assert.Equal(1, personWithAddress.Item2.PersonId); + Assert.Equal(3, personWithAddress.Item3.Id); + Assert.Equal("fred", personWithAddress.Item3.Name); + } + + private class Extra + { + public int Id { get; set; } + public string Name { get; set; } + } + + [Fact] + public void TestMultiMappingWithNonReturnedProperty() + { + const string sql = @"select + 1 as PostId, 'Title' as Title, + 2 as BlogId, 'Blog' as Title"; + var postWithBlog = connection.Query(sql, + (p, b) => + { + p.Blog = b; + return p; + }, splitOn: "BlogId").First(); + + Assert.Equal(1, postWithBlog.PostId); + Assert.Equal("Title", postWithBlog.Title); + Assert.Equal(2, postWithBlog.Blog.BlogId); + Assert.Equal("Blog", postWithBlog.Blog.Title); + } + + private class Post_DupeProp + { + public int PostId { get; set; } + public string Title { get; set; } + public int BlogId { get; set; } + public Blog_DupeProp Blog { get; set; } + } + + private class Blog_DupeProp + { + public int BlogId { get; set; } + public string Title { get; set; } + } + + // see https://stackoverflow.com/questions/16955357/issue-about-dapper + [Fact] + public void TestSplitWithMissingMembers() + { + var result = connection.Query( + @"select 123 as ID, 'abc' as Title, + cast('01 Feb 2013' as datetime) as CreateDate, + 'ghi' as Name, 'def' as Phone", + (T, P) => { T.Author = P; return T; }, + null, null, true, "ID,Name").Single(); + + Assert.Equal(123, result.ID); + Assert.Equal("abc", result.Title); + Assert.Equal(new DateTime(2013, 2, 1), result.CreateDate); + Assert.Null(result.Name); + Assert.Null(result.Content); + + Assert.Equal("def", result.Author.Phone); + Assert.Equal("ghi", result.Author.Name); + Assert.Equal(0, result.Author.ID); + Assert.Null(result.Author.Address); + } + + public class Profile + { + public int ID { get; set; } + public string Name { get; set; } + public string Phone { get; set; } + public string Address { get; set; } + //public ExtraInfo Extra { get; set; } + } + + public class Topic + { + public int ID { get; set; } + public string Title { get; set; } + public DateTime CreateDate { get; set; } + public string Content { get; set; } + public int UID { get; set; } + public int TestColum { get; set; } + public string Name { get; set; } + public Profile Author { get; set; } + //public Attachment Attach { get; set; } + } + + [Fact] + public void TestInvalidSplitCausesNiceError() + { + try + { + connection.Query("select 1 A, 2 B, 3 C", (x, y) => x); + } + catch (ArgumentException) + { + // expecting an app exception due to multi mapping being bodged + } + + try + { + connection.Query("select 1 A, 2 B, 3 C", (x, y) => x); + } + catch (ArgumentException) + { + // expecting an app exception due to multi mapping being bodged + } + } + } +} diff --git a/Dapper.Tests/NullTests.cs b/Dapper.Tests/NullTests.cs new file mode 100644 index 000000000..5bce7b586 --- /dev/null +++ b/Dapper.Tests/NullTests.cs @@ -0,0 +1,88 @@ +using Xunit; +using System.Linq; +namespace Dapper.Tests +{ + [Collection(NonParallelDefinition.Name)] + public class NullTests : TestBase + { + [Fact] + public void TestNullableDefault() + { + TestNullable(false); + } + + [Fact] + public void TestNullableApplyNulls() + { + TestNullable(true); + } + + private void TestNullable(bool applyNulls) + { + bool oldSetting = SqlMapper.Settings.ApplyNullValues; + try + { + SqlMapper.Settings.ApplyNullValues = applyNulls; + SqlMapper.PurgeQueryCache(); + + var data = connection.Query(@" +declare @data table(Id int not null, A int null, B int null, C varchar(20), D int null, E int null) +insert @data (Id, A, B, C, D, E) values + (1,null,null,null,null,null), + (2,42,42,'abc',2,2) +select * from @data").ToDictionary(_ => _.Id); + + var obj = data[2]; + + Assert.Equal(2, obj.Id); + Assert.Equal(42, obj.A); + Assert.Equal(42, obj.B); + Assert.Equal("abc", obj.C); + Assert.Equal(AnEnum.A, obj.D); + Assert.Equal(AnEnum.A, obj.E); + + obj = data[1]; + Assert.Equal(1, obj.Id); + if (applyNulls) + { + Assert.Equal(2, obj.A); // cannot be null + Assert.Null(obj.B); + Assert.Null(obj.C); + Assert.Equal(AnEnum.B, obj.D); + Assert.Null(obj.E); + } + else + { + Assert.Equal(2, obj.A); + Assert.Equal(2, obj.B); + Assert.Equal("def", obj.C); + Assert.Equal(AnEnum.B, obj.D); + Assert.Equal(AnEnum.B, obj.E); + } + } + finally + { + SqlMapper.Settings.ApplyNullValues = oldSetting; + } + } + + private class NullTestClass + { + public int Id { get; set; } + public int A { get; set; } + public int? B { get; set; } + public string C { get; set; } + public AnEnum D { get; set; } + public AnEnum? E { get; set; } + + public NullTestClass() + { + A = 2; + B = 2; + C = "def"; + D = AnEnum.B; + E = AnEnum.B; + } + } + } +} diff --git a/Dapper.Tests/ParameterTests.cs b/Dapper.Tests/ParameterTests.cs new file mode 100644 index 000000000..fc76e87fa --- /dev/null +++ b/Dapper.Tests/ParameterTests.cs @@ -0,0 +1,1409 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using System.Dynamic; +using System.Linq; +using Xunit; +using System.Globalization; +using System.Text.RegularExpressions; +using System.Diagnostics; + +#if ENTITY_FRAMEWORK +using System.Data.Entity.Spatial; +using Microsoft.SqlServer.Types; +#endif + +namespace Dapper.Tests +{ + public class ParameterTests : TestBase + { + public class DbParams : SqlMapper.IDynamicParameters, IEnumerable + { + private readonly List parameters = new List(); + public IEnumerator GetEnumerator() { return parameters.GetEnumerator(); } + IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } + public void Add(IDbDataParameter value) + { + parameters.Add(value); + } + + void SqlMapper.IDynamicParameters.AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + foreach (IDbDataParameter parameter in parameters) + command.Parameters.Add(parameter); + } + } + + private static List CreateSqlDataRecordList(IEnumerable numbers) + { + var number_list = new List(); + + // Create an SqlMetaData object that describes our table type. + Microsoft.SqlServer.Server.SqlMetaData[] tvp_definition = { new Microsoft.SqlServer.Server.SqlMetaData("n", SqlDbType.Int) }; + + foreach (int n in numbers) + { + // Create a new record, using the metadata array above. + var rec = new Microsoft.SqlServer.Server.SqlDataRecord(tvp_definition); + rec.SetInt32(0, n); // Set the value. + number_list.Add(rec); // Add it to the list. + } + + return number_list; + } + + private class IntDynamicParam : SqlMapper.IDynamicParameters + { + private readonly IEnumerable numbers; + public IntDynamicParam(IEnumerable numbers) + { + this.numbers = numbers; + } + + public void AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + var sqlCommand = (SqlCommand)command; + sqlCommand.CommandType = CommandType.StoredProcedure; + + var number_list = CreateSqlDataRecordList(numbers); + + // Add the table parameter. + var p = sqlCommand.Parameters.Add("ints", SqlDbType.Structured); + p.Direction = ParameterDirection.Input; + p.TypeName = "int_list_type"; + p.Value = number_list; + } + } + + private class IntCustomParam : SqlMapper.ICustomQueryParameter + { + private readonly IEnumerable numbers; + public IntCustomParam(IEnumerable numbers) + { + this.numbers = numbers; + } + + public void AddParameter(IDbCommand command, string name) + { + var sqlCommand = (SqlCommand)command; + sqlCommand.CommandType = CommandType.StoredProcedure; + + var number_list = CreateSqlDataRecordList(numbers); + + // Add the table parameter. + var p = sqlCommand.Parameters.Add(name, SqlDbType.Structured); + p.Direction = ParameterDirection.Input; + p.TypeName = "int_list_type"; + p.Value = number_list; + } + } + + /* TODO: + * + public void TestMagicParam() + { + // magic params allow you to pass in single params without using an anon class + // this test fails for now, but I would like to support a single param by parsing the sql with regex and remapping. + + var first = connection.Query("select @a as a", 1).First(); + Assert.Equal(first.a, 1); + } + * */ + + [Fact] + public void TestDoubleParam() + { + Assert.Equal(0.1d, connection.Query("select @d", new { d = 0.1d }).First()); + } + + [Fact] + public void TestBoolParam() + { + Assert.False(connection.Query("select @b", new { b = false }).First()); + } + + // http://code.google.com/p/dapper-dot-net/issues/detail?id=70 + // https://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time + + [Fact] + public void TestTimeSpanParam() + { + Assert.Equal(connection.Query("select @ts", new { ts = TimeSpan.FromMinutes(42) }).First(), TimeSpan.FromMinutes(42)); + } + + [Fact] + public void PassInIntArray() + { + Assert.Equal( + new[] { 1, 2, 3 }, + connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[] { 1, 2, 3 }.AsEnumerable() }) + ); + } + + [Fact] + public void PassInEmptyIntArray() + { + Assert.Equal( + new int[0], + connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[0] }) + ); + } + + [Fact] + public void TestExecuteCommandWithHybridParameters() + { + var p = new DynamicParameters(new { a = 1, b = 2 }); + p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output); + connection.Execute("set @c = @a + @b", p); + Assert.Equal(3, p.Get("@c")); + } + + [Fact] + public void GuidIn_SO_24177902() + { + // invent and populate + Guid a = Guid.NewGuid(), b = Guid.NewGuid(), c = Guid.NewGuid(), d = Guid.NewGuid(); + connection.Execute("create table #foo (i int, g uniqueidentifier)"); + connection.Execute("insert #foo(i,g) values(@i,@g)", + new[] { new { i = 1, g = a }, new { i = 2, g = b }, + new { i = 3, g = c },new { i = 4, g = d }}); + + // check that rows 2&3 yield guids b&c + var guids = connection.Query("select g from #foo where i in (2,3)").ToArray(); + Assert.Equal(2, guids.Length); + Assert.DoesNotContain(a, guids); + Assert.Contains(b, guids); + Assert.Contains(c, guids); + Assert.DoesNotContain(d, guids); + + // in query on the guids + var rows = connection.Query("select * from #foo where g in @guids order by i", new { guids }) + .Select(row => new { i = (int)row.i, g = (Guid)row.g }).ToArray(); + Assert.Equal(2, rows.Length); + Assert.Equal(2, rows[0].i); + Assert.Equal(b, rows[0].g); + Assert.Equal(3, rows[1].i); + Assert.Equal(c, rows[1].g); + } + + [FactUnlessCaseSensitiveDatabase] + public void TestParameterInclusionNotSensitiveToCurrentCulture() + { + // note this might fail if your database server is case-sensitive + CultureInfo current = ActiveCulture; + try + { + ActiveCulture = new CultureInfo("tr-TR"); + + connection.Query("select @pid", new { PId = 1 }).Single(); + } + finally + { + ActiveCulture = current; + } + } + + [Fact] + public void TestMassiveStrings() + { + var str = new string('X', 20000); + Assert.Equal(connection.Query("select @a", new { a = str }).First(), str); + } + + [Fact] + public void TestTVPWithAnonymousObject() + { + try + { + connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); + connection.Execute("CREATE PROC get_ints @integers int_list_type READONLY AS select * from @integers"); + + var nums = connection.Query("get_ints", new { integers = new IntCustomParam(new int[] { 1, 2, 3 }) }, commandType: CommandType.StoredProcedure).ToList(); + Assert.Equal(1, nums[0]); + Assert.Equal(2, nums[1]); + Assert.Equal(3, nums[2]); + Assert.Equal(3, nums.Count); + } + finally + { + try + { + connection.Execute("DROP PROC get_ints"); + } + finally + { + connection.Execute("DROP TYPE int_list_type"); + } + } + } + + // SQL Server specific test to demonstrate TVP + [Fact] + public void TestTVP() + { + try + { + connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); + connection.Execute("CREATE PROC get_ints @ints int_list_type READONLY AS select * from @ints"); + + var nums = connection.Query("get_ints", new IntDynamicParam(new int[] { 1, 2, 3 })).ToList(); + Assert.Equal(1, nums[0]); + Assert.Equal(2, nums[1]); + Assert.Equal(3, nums[2]); + Assert.Equal(3, nums.Count); + } + finally + { + try + { + connection.Execute("DROP PROC get_ints"); + } + finally + { + connection.Execute("DROP TYPE int_list_type"); + } + } + } + + private class DynamicParameterWithIntTVP : DynamicParameters, SqlMapper.IDynamicParameters + { + private readonly IEnumerable numbers; + public DynamicParameterWithIntTVP(IEnumerable numbers) + { + this.numbers = numbers; + } + + public new void AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + base.AddParameters(command, identity); + + var sqlCommand = (SqlCommand)command; + sqlCommand.CommandType = CommandType.StoredProcedure; + + var number_list = CreateSqlDataRecordList(numbers); + + // Add the table parameter. + var p = sqlCommand.Parameters.Add("ints", SqlDbType.Structured); + p.Direction = ParameterDirection.Input; + p.TypeName = "int_list_type"; + p.Value = number_list; + } + } + + [Fact] + public void TestTVPWithAdditionalParams() + { + try + { + connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); + connection.Execute("CREATE PROC get_values @ints int_list_type READONLY, @stringParam varchar(20), @dateParam datetime AS select i.*, @stringParam as stringParam, @dateParam as dateParam from @ints i"); + + var dynamicParameters = new DynamicParameterWithIntTVP(new int[] { 1, 2, 3 }); + dynamicParameters.AddDynamicParams(new { stringParam = "stringParam", dateParam = new DateTime(2012, 1, 1) }); + + var results = connection.Query("get_values", dynamicParameters, commandType: CommandType.StoredProcedure).ToList(); + Assert.Equal(3, results.Count); + for (int i = 0; i < results.Count; i++) + { + var result = results[i]; + Assert.Equal(i + 1, result.n); + Assert.Equal("stringParam", result.stringParam); + Assert.Equal(new DateTime(2012, 1, 1), result.dateParam); + } + } + finally + { + try + { + connection.Execute("DROP PROC get_values"); + } + finally + { + connection.Execute("DROP TYPE int_list_type"); + } + } + } + + [Fact] + public void TestSqlDataRecordListParametersWithAsTableValuedParameter() + { + try + { + connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); + connection.Execute("CREATE PROC get_ints @integers int_list_type READONLY AS select * from @integers"); + + var records = CreateSqlDataRecordList(new int[] { 1, 2, 3 }); + + var nums = connection.Query("get_ints", new { integers = records.AsTableValuedParameter() }, commandType: CommandType.StoredProcedure).ToList(); + Assert.Equal(new int[] { 1, 2, 3 }, nums); + + nums = connection.Query("select * from @integers", new { integers = records.AsTableValuedParameter("int_list_type") }).ToList(); + Assert.Equal(new int[] { 1, 2, 3 }, nums); + + try + { + connection.Query("select * from @integers", new { integers = records.AsTableValuedParameter() }).First(); + throw new InvalidOperationException(); + } + catch (Exception ex) + { + ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); + } + } + finally + { + try + { + connection.Execute("DROP PROC get_ints"); + } + finally + { + connection.Execute("DROP TYPE int_list_type"); + } + } + } + + [Fact] + public void TestSqlDataRecordListParametersWithTypeHandlers() + { + try + { + connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); + connection.Execute("CREATE PROC get_ints @integers int_list_type READONLY AS select * from @integers"); + + // Variable type has to be IEnumerable for TypeHandler to kick in. + IEnumerable records = CreateSqlDataRecordList(new int[] { 1, 2, 3 }); + + var nums = connection.Query("get_ints", new { integers = records }, commandType: CommandType.StoredProcedure).ToList(); + Assert.Equal(new int[] { 1, 2, 3 }, nums); + + try + { + connection.Query("select * from @integers", new { integers = records }).First(); + throw new InvalidOperationException(); + } + catch (Exception ex) + { + ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); + } + } + finally + { + try + { + connection.Execute("DROP PROC get_ints"); + } + finally + { + connection.Execute("DROP TYPE int_list_type"); + } + } + } + +#if !NETCOREAPP1_0 + [Fact] + public void DataTableParameters() + { + try { connection.Execute("drop proc #DataTableParameters"); } + catch { /* don't care */ } + try { connection.Execute("drop table #DataTableParameters"); } + catch { /* don't care */ } + try { connection.Execute("drop type MyTVPType"); } + catch { /* don't care */ } + connection.Execute("create type MyTVPType as table (id int)"); + connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); + + var table = new DataTable { Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; + + int count = connection.Query("#DataTableParameters", new { ids = table.AsTableValuedParameter() }, commandType: CommandType.StoredProcedure).First(); + Assert.Equal(3, count); + + count = connection.Query("select count(1) from @ids", new { ids = table.AsTableValuedParameter("MyTVPType") }).First(); + Assert.Equal(3, count); + + try + { + connection.Query("select count(1) from @ids", new { ids = table.AsTableValuedParameter() }).First(); + throw new InvalidOperationException(); + } + catch (Exception ex) + { + ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); + } + } + + [Fact] + public void SO29533765_DataTableParametersViaDynamicParameters() + { + try { connection.Execute("drop proc #DataTableParameters"); } catch { /* don't care */ } + try { connection.Execute("drop table #DataTableParameters"); } catch { /* don't care */ } + try { connection.Execute("drop type MyTVPType"); } catch { /* don't care */ } + connection.Execute("create type MyTVPType as table (id int)"); + connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); + + var table = new DataTable { TableName = "MyTVPType", Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; + table.SetTypeName(table.TableName); // per SO29533765 + IDictionary args = new Dictionary + { + ["ids"] = table + }; + int count = connection.Query("#DataTableParameters", args, commandType: CommandType.StoredProcedure).First(); + Assert.Equal(3, count); + + count = connection.Query("select count(1) from @ids", args).First(); + Assert.Equal(3, count); + } + + [Fact] + public void SO26468710_InWithTVPs() + { + // this is just to make it re-runnable; normally you only do this once + try { connection.Execute("drop type MyIdList"); } + catch { /* don't care */ } + connection.Execute("create type MyIdList as table(id int);"); + + var ids = new DataTable + { + Columns = { { "id", typeof(int) } }, + Rows = { { 1 }, { 3 }, { 5 } } + }; + ids.SetTypeName("MyIdList"); + int sum = connection.Query(@" + declare @tmp table(id int not null); + insert @tmp (id) values(1), (2), (3), (4), (5), (6), (7); + select * from @tmp t inner join @ids i on i.id = t.id", new { ids }).Sum(); + Assert.Equal(9, sum); + } + + [Fact] + public void DataTableParametersWithExtendedProperty() + { + try { connection.Execute("drop proc #DataTableParameters"); } + catch { /* don't care */ } + try { connection.Execute("drop table #DataTableParameters"); } + catch { /* don't care */ } + try { connection.Execute("drop type MyTVPType"); } + catch { /* don't care */ } + connection.Execute("create type MyTVPType as table (id int)"); + connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); + + var table = new DataTable { Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; + table.SetTypeName("MyTVPType"); // <== extended metadata + int count = connection.Query("#DataTableParameters", new { ids = table }, commandType: CommandType.StoredProcedure).First(); + Assert.Equal(3, count); + + count = connection.Query("select count(1) from @ids", new { ids = table }).First(); + Assert.Equal(3, count); + + try + { + connection.Query("select count(1) from @ids", new { ids = table }).First(); + throw new InvalidOperationException(); + } + catch (Exception ex) + { + ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); + } + } + + [Fact] + public void SupportInit() + { + var obj = connection.Query("select 'abc' as Value").Single(); + Assert.Equal("abc", obj.Value); + Assert.Equal(31, obj.Flags); + } + + public class WithInit : ISupportInitialize + { + public string Value { get; set; } + public int Flags { get; set; } + + void ISupportInitialize.BeginInit() => Flags++; + + void ISupportInitialize.EndInit() => Flags += 30; + } + + [Fact] + public void SO29596645_TvpProperty() + { + try { connection.Execute("CREATE TYPE SO29596645_ReminderRuleType AS TABLE (id int NOT NULL)"); } + catch { /* don't care */ } + connection.Execute(@"create proc #SO29596645_Proc (@Id int, @Rules SO29596645_ReminderRuleType READONLY) + as begin select @Id + ISNULL((select sum(id) from @Rules), 0); end"); + var obj = new SO29596645_OrganisationDTO(); + int val = connection.Query("#SO29596645_Proc", obj.Rules, commandType: CommandType.StoredProcedure).Single(); + + // 4 + 9 + 7 = 20 + Assert.Equal(20, val); + } + + private class SO29596645_RuleTableValuedParameters : SqlMapper.IDynamicParameters + { + private readonly string parameterName; + + public SO29596645_RuleTableValuedParameters(string parameterName) + { + this.parameterName = parameterName; + } + + public void AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + Debug.WriteLine("> AddParameters"); + var lazy = (SqlCommand)command; + lazy.Parameters.AddWithValue("Id", 7); + var table = new DataTable + { + Columns = { { "Id", typeof(int) } }, + Rows = { { 4 }, { 9 } } + }; + lazy.Parameters.AddWithValue("Rules", table); + Debug.WriteLine("< AddParameters"); + } + } + + private class SO29596645_OrganisationDTO + { + public SO29596645_RuleTableValuedParameters Rules { get; } + + public SO29596645_OrganisationDTO() + { + Rules = new SO29596645_RuleTableValuedParameters("@Rules"); + } + } +#endif + +#if ENTITY_FRAMEWORK + private class HazGeo + { + public int Id { get; set; } + public DbGeography Geo { get; set; } + public DbGeometry Geometry { get; set; } + } + + private class HazSqlGeo + { + public int Id { get; set; } + public SqlGeography Geo { get; set; } + public SqlGeometry Geometry { get; set; } + } + + [Fact] + public void DBGeography_SO24405645_SO24402424() + { + EntityFramework.Handlers.Register(); + + connection.Execute("create table #Geo (id int, geo geography, geometry geometry)"); + + var obj = new HazGeo + { + Id = 1, + Geo = DbGeography.LineFromText("LINESTRING(-122.360 47.656, -122.343 47.656 )", 4326), + Geometry = DbGeometry.LineFromText("LINESTRING (100 100, 20 180, 180 180)", 0) + }; + connection.Execute("insert #Geo(id, geo, geometry) values (@Id, @Geo, @Geometry)", obj); + var row = connection.Query("select * from #Geo where id=1").SingleOrDefault(); + Assert.NotNull(row); + Assert.Equal(1, row.Id); + Assert.NotNull(row.Geo); + Assert.NotNull(row.Geometry); + } + + [Fact] + public void SqlGeography_SO25538154() + { + SqlMapper.ResetTypeHandlers(); + connection.Execute("create table #SqlGeo (id int, geo geography, geometry geometry)"); + + var obj = new HazSqlGeo + { + Id = 1, + Geo = SqlGeography.STLineFromText(new SqlChars(new SqlString("LINESTRING(-122.360 47.656, -122.343 47.656 )")), 4326), + Geometry = SqlGeometry.STLineFromText(new SqlChars(new SqlString("LINESTRING (100 100, 20 180, 180 180)")), 0) + }; + connection.Execute("insert #SqlGeo(id, geo, geometry) values (@Id, @Geo, @Geometry)", obj); + var row = connection.Query("select * from #SqlGeo where id=1").SingleOrDefault(); + Assert.NotNull(row); + Assert.Equal(1, row.Id); + Assert.NotNull(row.Geo); + Assert.NotNull(row.Geometry); + } + + [Fact] + public void NullableSqlGeometry() + { + SqlMapper.ResetTypeHandlers(); + connection.Execute("create table #SqlNullableGeo (id int, geometry geometry null)"); + + var obj = new HazSqlGeo + { + Id = 1, + Geometry = null + }; + connection.Execute("insert #SqlNullableGeo(id, geometry) values (@Id, @Geometry)", obj); + var row = connection.Query("select * from #SqlNullableGeo where id=1").SingleOrDefault(); + Assert.NotNull(row); + Assert.Equal(1, row.Id); + Assert.Null(row.Geometry); + } + + [Fact] + public void SqlHierarchyId_SO18888911() + { + SqlMapper.ResetTypeHandlers(); + var row = connection.Query("select 3 as [Id], hierarchyid::Parse('/1/2/3/') as [Path]").Single(); + Assert.Equal(3, row.Id); + Assert.NotEqual(default(SqlHierarchyId), row.Path); + + var val = connection.Query("select @Path", row).Single(); + Assert.NotEqual(default(SqlHierarchyId), val); + } + + public class HazSqlHierarchy + { + public int Id { get; set; } + public SqlHierarchyId Path { get; set; } + } + +#endif + + [Fact] + public void TestCustomParameters() + { + var args = new DbParams { + new SqlParameter("foo", 123), + new SqlParameter("bar", "abc") + }; + var result = connection.Query("select Foo=@foo, Bar=@bar", args).Single(); + int foo = result.Foo; + string bar = result.Bar; + Assert.Equal(123, foo); + Assert.Equal("abc", bar); + } + + [Fact] + public void TestDynamicParamNullSupport() + { + var p = new DynamicParameters(); + + p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output); + connection.Execute("select @b = null", p); + + Assert.Null(p.Get("@b")); + } + + [Fact] + public void TestAppendingAnonClasses() + { + var p = new DynamicParameters(); + p.AddDynamicParams(new { A = 1, B = 2 }); + p.AddDynamicParams(new { C = 3, D = 4 }); + + var result = connection.Query("select @A a,@B b,@C c,@D d", p).Single(); + + Assert.Equal(1, (int)result.a); + Assert.Equal(2, (int)result.b); + Assert.Equal(3, (int)result.c); + Assert.Equal(4, (int)result.d); + } + + [Fact] + public void TestAppendingADictionary() + { + var dictionary = new Dictionary + { + ["A"] = 1, + ["B"] = "two" + }; + + var p = new DynamicParameters(); + p.AddDynamicParams(dictionary); + + var result = connection.Query("select @A a, @B b", p).Single(); + + Assert.Equal(1, (int)result.a); + Assert.Equal("two", (string)result.b); + } + + [Fact] + public void TestAppendingAnExpandoObject() + { + dynamic expando = new ExpandoObject(); + expando.A = 1; + expando.B = "two"; + + var p = new DynamicParameters(); + p.AddDynamicParams(expando); + + var result = connection.Query("select @A a, @B b", p).Single(); + + Assert.Equal(1, (int)result.a); + Assert.Equal("two", (string)result.b); + } + + [Fact] + public void TestAppendingAList() + { + var p = new DynamicParameters(); + var list = new int[] { 1, 2, 3 }; + p.AddDynamicParams(new { list }); + + var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @list", p).ToList(); + + Assert.Equal(1, result[0]); + Assert.Equal(2, result[1]); + Assert.Equal(3, result[2]); + } + + [Fact] + public void TestAppendingAListAsDictionary() + { + var p = new DynamicParameters(); + var list = new int[] { 1, 2, 3 }; + var args = new Dictionary { ["ids"] = list }; + p.AddDynamicParams(args); + + var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @ids", p).ToList(); + + Assert.Equal(1, result[0]); + Assert.Equal(2, result[1]); + Assert.Equal(3, result[2]); + } + + [Fact] + public void TestAppendingAListByName() + { + DynamicParameters p = new DynamicParameters(); + var list = new int[] { 1, 2, 3 }; + p.Add("ids", list); + + var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @ids", p).ToList(); + + Assert.Equal(1, result[0]); + Assert.Equal(2, result[1]); + Assert.Equal(3, result[2]); + } + + [Fact] + public void ParameterizedInWithOptimizeHint() + { + const string sql = @" +select count(1) +from( + select 1 as x + union all select 2 + union all select 5) y +where y.x in @vals +option (optimize for (@vals unKnoWn))"; + int count = connection.Query(sql, new { vals = new[] { 1, 2, 3, 4 } }).Single(); + Assert.Equal(2, count); + + count = connection.Query(sql, new { vals = new[] { 1 } }).Single(); + Assert.Equal(1, count); + + count = connection.Query(sql, new { vals = new int[0] }).Single(); + Assert.Equal(0, count); + } + + [Fact] + public void TestProcedureWithTimeParameter() + { + var p = new DynamicParameters(); + p.Add("a", TimeSpan.FromHours(10), dbType: DbType.Time); + + connection.Execute(@"CREATE PROCEDURE #TestProcWithTimeParameter + @a TIME + AS + BEGIN + SELECT @a + END"); + Assert.Equal(connection.Query("#TestProcWithTimeParameter", p, commandType: CommandType.StoredProcedure).First(), new TimeSpan(10, 0, 0)); + } + + [Fact] + public void TestUniqueIdentifier() + { + var guid = Guid.NewGuid(); + var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); + Assert.Equal(guid, result); + } + + [Fact] + public void TestNullableUniqueIdentifierNonNull() + { + Guid? guid = Guid.NewGuid(); + var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); + Assert.Equal(guid, result); + } + + [Fact] + public void TestNullableUniqueIdentifierNull() + { + Guid? guid = null; + var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); + Assert.Equal(guid, result); + } + + [Fact] + public void TestSupportForDynamicParameters() + { + var p = new DynamicParameters(); + p.Add("name", "bob"); + p.Add("age", dbType: DbType.Int32, direction: ParameterDirection.Output); + + Assert.Equal("bob", connection.Query("set @age = 11 select @name", p).First()); + Assert.Equal(11, p.Get("age")); + } + + [Fact] + public void TestSupportForDynamicParametersOutputExpressions() + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + connection.Execute(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId", p); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + } + + [Fact] + public void TestSupportForDynamicParametersOutputExpressions_Scalar() + { + using (var connection = GetOpenConnection()) + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = (int)connection.ExecuteScalar(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + } + + [Fact] + public void TestSupportForDynamicParametersOutputExpressions_Query_Buffered() + { + using (var connection = GetOpenConnection()) + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = connection.Query(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p, buffered: true).Single(); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + } + + [Fact] + public void TestSupportForDynamicParametersOutputExpressions_Query_NonBuffered() + { + using (var connection = GetOpenConnection()) + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + var result = connection.Query(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +SET @AddressPersonId = @PersonId +select 42", p, buffered: false).Single(); + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, result); + } + } + + [Fact] + public void TestSupportForDynamicParametersOutputExpressions_QueryMultiple() + { + using (var connection = GetOpenConnection()) + { + var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; + + var p = new DynamicParameters(bob); + p.Output(bob, b => b.PersonId); + p.Output(bob, b => b.Occupation); + p.Output(bob, b => b.NumberOfLegs); + p.Output(bob, b => b.Address.Name); + p.Output(bob, b => b.Address.PersonId); + + int x, y; + using (var multi = connection.QueryMultiple(@" +SET @Occupation = 'grillmaster' +SET @PersonId = @PersonId + 1 +SET @NumberOfLegs = @NumberOfLegs - 1 +SET @AddressName = 'bobs burgers' +select 42 +select 17 +SET @AddressPersonId = @PersonId", p)) + { + x = multi.Read().Single(); + y = multi.Read().Single(); + } + + Assert.Equal("grillmaster", bob.Occupation); + Assert.Equal(2, bob.PersonId); + Assert.Equal(1, bob.NumberOfLegs); + Assert.Equal("bobs burgers", bob.Address.Name); + Assert.Equal(2, bob.Address.PersonId); + Assert.Equal(42, x); + Assert.Equal(17, y); + } + } + + [Fact] + public void TestSupportForExpandoObjectParameters() + { + dynamic p = new ExpandoObject(); + p.name = "bob"; + object parameters = p; + string result = connection.Query("select @name", parameters).First(); + Assert.Equal("bob", result); + } + + [Fact] + public void SO25069578_DynamicParams_Procs() + { + var parameters = new DynamicParameters(); + parameters.Add("foo", "bar"); + // parameters = new DynamicParameters(parameters); + try { connection.Execute("drop proc SO25069578"); } + catch { /* don't care */ } + connection.Execute("create proc SO25069578 @foo nvarchar(max) as select @foo as [X]"); + var tran = connection.BeginTransaction(); // gist used transaction; behaves the same either way, though + var row = connection.Query("SO25069578", parameters, + commandType: CommandType.StoredProcedure, transaction: tran).Single(); + tran.Rollback(); + Assert.Equal("bar", row.X); + } + + public class HazX + { + public string X { get; set; } + } + + [Fact] + public void SO25297173_DynamicIn() + { + const string query = @" +declare @table table(value int not null); +insert @table values(1); +insert @table values(2); +insert @table values(3); +insert @table values(4); +insert @table values(5); +insert @table values(6); +insert @table values(7); +SELECT value FROM @table WHERE value IN @myIds"; + var queryParams = new Dictionary + { + ["myIds"] = new[] { 5, 6 } + }; + + var dynamicParams = new DynamicParameters(queryParams); + List result = connection.Query(query, dynamicParams).ToList(); + Assert.Equal(2, result.Count); + Assert.Contains(5, result); + Assert.Contains(6, result); + } + + [Fact] + public void Test_AddDynamicParametersRepeatedShouldWork() + { + var args = new DynamicParameters(); + args.AddDynamicParams(new { Foo = 123 }); + args.AddDynamicParams(new { Foo = 123 }); + int i = connection.Query("select @Foo", args).Single(); + Assert.Equal(123, i); + } + + [Fact] + public void Test_AddDynamicParametersRepeatedIfParamTypeIsDbStiringShouldWork() + { + var foo = new DbString() { Value = "123" }; + + var args = new DynamicParameters(); + args.AddDynamicParams(new { Foo = foo }); + args.AddDynamicParams(new { Foo = foo }); + int i = connection.Query("select @Foo", args).Single(); + Assert.Equal(123, i); + } + + [Fact] + public void AllowIDictionaryParameters() + { + var parameters = new Dictionary + { + ["param1"] = 0 + }; + + connection.Query("SELECT @param1", parameters); + } + + [Fact] + public void TestParameterWithIndexer() + { + connection.Execute(@"create proc #TestProcWithIndexer + @A int +as +begin + select @A +end"); + var item = connection.Query("#TestProcWithIndexer", new ParameterWithIndexer(), commandType: CommandType.StoredProcedure).Single(); + } + + public class ParameterWithIndexer + { + public int A { get; set; } + public virtual string this[string columnName] + { + get { return null; } + set { } + } + } + + [Fact] + public void TestMultipleParametersWithIndexer() + { + var order = connection.Query("select 1 A,2 B").First(); + + Assert.Equal(1, order.A); + Assert.Equal(2, order.B); + } + + public class MultipleParametersWithIndexer : MultipleParametersWithIndexerDeclaringType + { + public int A { get; set; } + } + + public class MultipleParametersWithIndexerDeclaringType + { + public object this[object field] + { + get { return null; } + set { } + } + + public object this[object field, int index] + { + get { return null; } + set { } + } + + public int B { get; set; } + } + + [Fact] + public void Issue182_BindDynamicObjectParametersAndColumns() + { + connection.Execute("create table #Dyno ([Id] uniqueidentifier primary key, [Name] nvarchar(50) not null, [Foo] bigint not null);"); + + var guid = Guid.NewGuid(); + var orig = new Dyno { Name = "T Rex", Id = guid, Foo = 123L }; + var result = connection.Execute("insert into #Dyno ([Id], [Name], [Foo]) values (@Id, @Name, @Foo);", orig); + + var fromDb = connection.Query("select * from #Dyno where Id=@Id", orig).Single(); + Assert.Equal((Guid)fromDb.Id, guid); + Assert.Equal("T Rex", fromDb.Name); + Assert.Equal(123L, (long)fromDb.Foo); + } + + public class Dyno + { + public dynamic Id { get; set; } + public string Name { get; set; } + + public object Foo { get; set; } + } + + [Fact] + public void Issue151_ExpandoObjectArgsQuery() + { + dynamic args = new ExpandoObject(); + args.Id = 123; + args.Name = "abc"; + + var row = connection.Query("select @Id as [Id], @Name as [Name]", (object)args).Single(); + Assert.Equal(123, (int)row.Id); + Assert.Equal("abc", (string)row.Name); + } + + [Fact] + public void Issue151_ExpandoObjectArgsExec() + { + dynamic args = new ExpandoObject(); + args.Id = 123; + args.Name = "abc"; + connection.Execute("create table #issue151 (Id int not null, Name nvarchar(20) not null)"); + Assert.Equal(1, connection.Execute("insert #issue151 values(@Id, @Name)", (object)args)); + var row = connection.Query("select Id, Name from #issue151").Single(); + Assert.Equal(123, (int)row.Id); + Assert.Equal("abc", (string)row.Name); + } + + [Fact] + public void Issue192_InParameterWorksWithSimilarNames() + { + var rows = connection.Query(@" +declare @Issue192 table ( + Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), + Field_1 INT NOT NULL); +insert @Issue192(Field_1) values (1), (2), (3); +SELECT * FROM @Issue192 WHERE Field IN @Field AND Field_1 IN @Field_1", + new { Field = new[] { 1, 2 }, Field_1 = new[] { 2, 3 } }).Single(); + Assert.Equal(2, (int)rows.Field); + Assert.Equal(2, (int)rows.Field_1); + } + + [Fact] + public void Issue192_InParameterWorksWithSimilarNamesWithUnicode() + { + var rows = connection.Query(@" +declare @Issue192 table ( + Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), + Field_1 INT NOT NULL); +insert @Issue192(Field_1) values (1), (2), (3); +SELECT * FROM @Issue192 WHERE Field IN @µ AND Field_1 IN @µµ", + new { µ = new[] { 1, 2 }, µµ = new[] { 2, 3 } }).Single(); + Assert.Equal(2, (int)rows.Field); + Assert.Equal(2, (int)rows.Field_1); + } + + [FactUnlessCaseSensitiveDatabase] + public void Issue220_InParameterCanBeSpecifiedInAnyCase() + { + // note this might fail if your database server is case-sensitive + Assert.Equal( + new[] { 1 }, + connection.Query("select * from (select 1 as Id) as X where Id in @ids", new { Ids = new[] { 1 } }) + ); + } + + [Fact] + public void SO30156367_DynamicParamsWithoutExec() + { + var dbParams = new DynamicParameters(); + dbParams.Add("Field1", 1); + var value = dbParams.Get("Field1"); + Assert.Equal(1, value); + } + + [Fact] + public void RunAllStringSplitTestsDisabled() + { + RunAllStringSplitTests(-1, 1500); + } + + [FactRequiredCompatibilityLevel(FactRequiredCompatibilityLevelAttribute.SqlServer2016)] + public void RunAllStringSplitTestsEnabled() + { + RunAllStringSplitTests(10, 4500); + } + + private void RunAllStringSplitTests(int stringSplit, int max = 150) + { + int oldVal = SqlMapper.Settings.InListStringSplitCount; + try + { + SqlMapper.Settings.InListStringSplitCount = stringSplit; + try { connection.Execute("drop table #splits"); } catch { /* don't care */ } + int count = connection.QuerySingle("create table #splits (i int not null);" + + string.Concat(Enumerable.Range(-max, max * 3).Select(i => $"insert #splits (i) values ({i});")) + + "select count(1) from #splits"); + Assert.Equal(count, 3 * max); + + for (int i = 0; i < max; Incr(ref i)) + { + try + { + var vals = Enumerable.Range(1, i); + var list = connection.Query("select i from #splits where i in @vals", new { vals }).AsList(); + Assert.Equal(list.Count, i); + Assert.Equal(list.Sum(), vals.Sum()); + } + catch (Exception ex) + { + throw new InvalidOperationException($"Error when i={i}: {ex.Message}", ex); + } + } + } + finally + { + SqlMapper.Settings.InListStringSplitCount = oldVal; + } + } + + private static void Incr(ref int i) + { + if (i <= 15) i++; + else if (i <= 80) i += 5; + else if (i <= 200) i += 10; + else if (i <= 1000) i += 50; + else i += 100; + } + + [Fact] + public void Issue601_InternationalParameterNamesWork() + { + // regular parameter + var result = connection.QuerySingle("select @æøå٦", new { æøå٦ = 42 }); + Assert.Equal(42, result); + } + + [Fact] + public void TestListExpansionPadding_Enabled() => TestListExpansionPadding(true); + + [Fact] + public void TestListExpansionPadding_Disabled() => TestListExpansionPadding(false); + + private void TestListExpansionPadding(bool enabled) + { + bool oldVal = SqlMapper.Settings.PadListExpansions; + try + { + SqlMapper.Settings.PadListExpansions = enabled; + Assert.Equal(4096, connection.ExecuteScalar(@" +create table #ListExpansion(id int not null identity(1,1), value int null); +insert #ListExpansion (value) values (null); +declare @loop int = 0; +while (@loop < 12) +begin -- double it + insert #ListExpansion (value) select value from #ListExpansion; + set @loop = @loop + 1; +end + +select count(1) as [Count] from #ListExpansion")); + + var list = new List(); + int nextId = 1, batchCount; + var rand = new Random(12345); + const int SQL_SERVER_MAX_PARAMS = 2095; + TestListForExpansion(list, enabled); // test while empty + while (list.Count < SQL_SERVER_MAX_PARAMS) + { + try + { + if (list.Count <= 20) batchCount = 1; + else if (list.Count <= 200) batchCount = rand.Next(1, 40); + else batchCount = rand.Next(1, 100); + + for (int j = 0; j < batchCount && list.Count < SQL_SERVER_MAX_PARAMS; j++) + list.Add(nextId++); + + TestListForExpansion(list, enabled); + } + catch (Exception ex) + { + throw new InvalidOperationException($"Failure with {list.Count} items: {ex.Message}", ex); + } + } + } + finally + { + SqlMapper.Settings.PadListExpansions = oldVal; + } + } + + private void TestListForExpansion(List list, bool enabled) + { + var row = connection.QuerySingle(@" +declare @hits int, @misses int, @count int; +select @count = count(1) from #ListExpansion; +select @hits = count(1) from #ListExpansion where id in @ids ; +select @misses = count(1) from #ListExpansion where not id in @ids ; +declare @query nvarchar(max) = N' in @ids '; -- ok, I confess to being pleased with this hack ;p +select @hits as [Hits], (@count - @misses) as [Misses], @query as [Query]; +", new { ids = list }); + int hits = row.Hits, misses = row.Misses; + string query = row.Query; + int argCount = Regex.Matches(query, "@ids[0-9]").Count; + int expectedCount = GetExpectedListExpansionCount(list.Count, enabled); + Assert.Equal(hits, list.Count); + Assert.Equal(misses, list.Count); + Assert.Equal(argCount, expectedCount); + } + + private static int GetExpectedListExpansionCount(int count, bool enabled) + { + if (!enabled) return count; + + if (count <= 5 || count > 2070) return count; + + int padFactor; + if (count <= 150) padFactor = 10; + else if (count <= 750) padFactor = 50; + else if (count <= 2000) padFactor = 100; + else if (count <= 2070) padFactor = 10; + else padFactor = 200; + + int blocks = count / padFactor, delta = count % padFactor; + if (delta != 0) blocks++; + return blocks * padFactor; + } + } +} diff --git a/Dapper.Tests/ProcedureTests.cs b/Dapper.Tests/ProcedureTests.cs new file mode 100644 index 000000000..a560c680c --- /dev/null +++ b/Dapper.Tests/ProcedureTests.cs @@ -0,0 +1,281 @@ +using System; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Dapper.Tests +{ + public class ProcedureTests : TestBase + { + [Fact] + public void TestProcWithOutParameter() + { + connection.Execute( + @"CREATE PROCEDURE #TestProcWithOutParameter + @ID int output, + @Foo varchar(100), + @Bar int + AS + SET @ID = @Bar + LEN(@Foo)"); + var obj = new + { + ID = 0, + Foo = "abc", + Bar = 4 + }; + var args = new DynamicParameters(obj); + args.Add("ID", 0, direction: ParameterDirection.Output); + connection.Execute("#TestProcWithOutParameter", args, commandType: CommandType.StoredProcedure); + Assert.Equal(7, args.Get("ID")); + } + + [Fact] + public void TestProcWithOutAndReturnParameter() + { + connection.Execute( + @"CREATE PROCEDURE #TestProcWithOutAndReturnParameter + @ID int output, + @Foo varchar(100), + @Bar int + AS + SET @ID = @Bar + LEN(@Foo) + RETURN 42"); + var obj = new + { + ID = 0, + Foo = "abc", + Bar = 4 + }; + var args = new DynamicParameters(obj); + args.Add("ID", 0, direction: ParameterDirection.Output); + args.Add("result", 0, direction: ParameterDirection.ReturnValue); + connection.Execute("#TestProcWithOutAndReturnParameter", args, commandType: CommandType.StoredProcedure); + Assert.Equal(7, args.Get("ID")); + Assert.Equal(42, args.Get("result")); + } + + [Fact] + public void TestIssue17648290() + { + var p = new DynamicParameters(); + const int code = 1, getMessageControlId = 2; + p.Add("@Code", code); + p.Add("@MessageControlID", getMessageControlId); + p.Add("@SuccessCode", dbType: DbType.Int32, direction: ParameterDirection.Output); + p.Add("@ErrorDescription", dbType: DbType.String, direction: ParameterDirection.Output, size: 255); + connection.Execute( + @"CREATE PROCEDURE #up_MessageProcessed_get + @Code varchar(10), + @MessageControlID varchar(22), + @SuccessCode int OUTPUT, + @ErrorDescription varchar(255) OUTPUT + AS + BEGIN + Select 2 as MessageProcessID, 38349348 as StartNum, 3874900 as EndNum, GETDATE() as StartDate, GETDATE() as EndDate + SET @SuccessCode = 0 + SET @ErrorDescription = 'Completed successfully' + END"); + var result = connection.Query(sql: "#up_MessageProcessed_get", param: p, commandType: CommandType.StoredProcedure); + var row = result.Single(); + Assert.Equal(2, (int)row.MessageProcessID); + Assert.Equal(38349348, (int)row.StartNum); + Assert.Equal(3874900, (int)row.EndNum); + DateTime startDate = row.StartDate, endDate = row.EndDate; + Assert.Equal(0, p.Get("SuccessCode")); + Assert.Equal("Completed successfully", p.Get("ErrorDescription")); + } + + [Fact] + public void SO24605346_ProcsAndStrings() + { + connection.Execute( + @"create proc #GetPracticeRebateOrderByInvoiceNumber + @TaxInvoiceNumber nvarchar(20) + as + select @TaxInvoiceNumber as [fTaxInvoiceNumber]"); + const string InvoiceNumber = "INV0000000028PPN"; + var result = connection.Query("#GetPracticeRebateOrderByInvoiceNumber", new + { + TaxInvoiceNumber = InvoiceNumber + }, commandType: CommandType.StoredProcedure).FirstOrDefault(); + + Assert.Equal("INV0000000028PPN", result.TaxInvoiceNumber); + } + + private class PracticeRebateOrders + { + public string fTaxInvoiceNumber; +#if !NETCOREAPP1_0 + [System.Xml.Serialization.XmlElement(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] +#endif + public string TaxInvoiceNumber + { + get { return fTaxInvoiceNumber; } + set { fTaxInvoiceNumber = value; } + } + } + + [Fact] + public void Issue327_ReadEmptyProcedureResults() + { + // Actually testing for not erroring here on the mapping having no rows to map on in Read(); + connection.Execute(@" + CREATE PROCEDURE #TestEmptyResults + AS + SELECT Top 0 1 Id, 'Bob' Name; + SELECT Top 0 'Billy Goat' Creature, 'Unicorn' SpiritAnimal, 'Rainbow' Location;"); + var query = connection.QueryMultiple("#TestEmptyResults", commandType: CommandType.StoredProcedure); + var result1 = query.Read(); + var result2 = query.Read(); + Assert.False(result1.Any()); + Assert.False(result2.Any()); + } + + private class Issue327_Person + { + public int Id { get; set; } + public string Name { get; set; } + } + + private class Issue327_Magic + { + public string Creature { get; set; } + public string SpiritAnimal { get; set; } + public string Location { get; set; } + } + + [Fact] + public void TestProcSupport() + { + var p = new DynamicParameters(); + p.Add("a", 11); + p.Add("b", dbType: DbType.Int32, direction: ParameterDirection.Output); + p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); + + connection.Execute(@" + create proc #TestProc + @a int, + @b int output + as + begin + set @b = 999 + select 1111 + return @a + end"); + Assert.Equal(1111, connection.Query("#TestProc", p, commandType: CommandType.StoredProcedure).First()); + + Assert.Equal(11, p.Get("c")); + Assert.Equal(999, p.Get("b")); + } + + // https://stackoverflow.com/q/8593871 + [Fact] + public void TestListOfAnsiStrings() + { + var results = connection.Query("select * from (select 'a' str union select 'b' union select 'c') X where str in @strings", + new + { + strings = new[] { + new DbString { IsAnsi = true, Value = "a" }, + new DbString { IsAnsi = true, Value = "b" } + } + }).ToList(); + + Assert.Equal(2, results.Count); + results.Sort(); + Assert.Equal("a", results[0]); + Assert.Equal("b", results[1]); + } + + [Fact] + public void TestDateTime2PrecisionPreservedInDynamicParameters() + { + const string tempSPName = "#" + nameof(TestDateTime2PrecisionPreservedInDynamicParameters); + + DateTime datetimeDefault = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); + DateTime datetime2 = datetimeDefault.AddTicks(1); // Add 100 ns + + Assert.True(datetimeDefault < datetime2); + + connection.Execute( + $@"create proc {tempSPName} + @a datetime2, + @b datetime2 output + as + begin + set @b = @a + select DATEADD(ns, -100, @b) + end"); + + var p = new DynamicParameters(); + // Note: parameters declared as DateTime2 + p.Add("a", datetime2, dbType: DbType.DateTime2, direction: ParameterDirection.Input); + p.Add("b", dbType: DbType.DateTime2, direction: ParameterDirection.Output); + + DateTime fromSelect = connection.Query(tempSPName, p, commandType: CommandType.StoredProcedure).First(); + + Assert.Equal(datetimeDefault, fromSelect); + + Assert.Equal(datetime2, p.Get("b")); + } + + [Theory] + [InlineData(null)] + [InlineData(DbType.DateTime)] + public void TestDateTime2LosePrecisionInDynamicParameters(DbType? dbType) + { + const string tempSPName = "#" + nameof(TestDateTime2LosePrecisionInDynamicParameters); + + DateTime datetimeDefault = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); + DateTime datetime2 = datetimeDefault.AddTicks(1); // Add 100 ns + + Assert.True(datetimeDefault < datetime2); + + connection.Execute( + $@"create proc {tempSPName} + @a datetime2, + @b datetime2 output + as + begin + set @b = DATEADD(ns, 100, @a) + select @b + end"); + + var p = new DynamicParameters(); + // Note: input parameter declared as DateTime (or implicitly as this) but SP has DateTime2 + p.Add("a", datetime2, dbType: dbType, direction: ParameterDirection.Input); + p.Add("b", dbType: DbType.DateTime, direction: ParameterDirection.Output); + + DateTime fromSelect = connection.Query(tempSPName, p, commandType: CommandType.StoredProcedure).First(); + + // @a truncates to datetimeDefault when passed into SP by DynamicParameters, add 100ns and it comes out as DateTime2 + Assert.Equal(datetime2, fromSelect); + + // @b gets set to datetime2 value but is truncated back to DbType.DateTime by DynamicParameter's Output declaration + Assert.Equal(datetimeDefault, p.Get("b")); + } + + + [Fact] + public async Task Issue591_NoResultsAsync() + { + const string tempSPName = "#" + nameof(Issue591_NoResultsAsync); + + var result = await connection.QueryAsync( + $@"create proc {tempSPName} + as + begin + -- basically a failed if statement, so the select is not happening and the stored proc return nothing + if 1=0 + begin + select 1 as Num + end + end + + exec {tempSPName}"); + + Assert.Empty(result); + } + } +} diff --git a/Dapper.Tests/Providers/EntityFrameworkTests.cs b/Dapper.Tests/Providers/EntityFrameworkTests.cs new file mode 100644 index 000000000..1f991b01c --- /dev/null +++ b/Dapper.Tests/Providers/EntityFrameworkTests.cs @@ -0,0 +1,39 @@ +#if ENTITY_FRAMEWORK +using System.Data.Entity.Spatial; +using Xunit; + +namespace Dapper.Tests.Providers +{ + [Collection("TypeHandlerTests")] + public class EntityFrameworkTests : TestBase + { + public EntityFrameworkTests() + { + EntityFramework.Handlers.Register(); + } + + [Fact] + public void Issue570_DbGeo_HasValues() + { + EntityFramework.Handlers.Register(); + const string redmond = "POINT (122.1215 47.6740)"; + DbGeography point = DbGeography.PointFromText(redmond, DbGeography.DefaultCoordinateSystemId); + DbGeography orig = point.Buffer(20); + + var fromDb = connection.QuerySingle("declare @geos table(geo geography); insert @geos(geo) values(@val); select * from @geos", + new { val = orig }); + + Assert.NotNull(fromDb.Area); + Assert.Equal(orig.Area, fromDb.Area); + } + + [Fact] + public void Issue22_ExecuteScalar_EntityFramework() + { + var geo = DbGeography.LineFromText("LINESTRING(-122.360 47.656, -122.343 47.656 )", 4326); + var geo2 = connection.ExecuteScalar("select @geo", new { geo }); + Assert.NotNull(geo2); + } + } +} +#endif diff --git a/Dapper.Tests/Providers/FirebirdTests.cs b/Dapper.Tests/Providers/FirebirdTests.cs new file mode 100644 index 000000000..f6974e8b8 --- /dev/null +++ b/Dapper.Tests/Providers/FirebirdTests.cs @@ -0,0 +1,47 @@ +using FirebirdSql.Data.FirebirdClient; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests.Providers +{ + public class FirebirdTests : TestBase + { + [Fact(Skip = "Bug in Firebird; a PR to fix it has been submitted")] + public void Issue178_Firebird() + { + const string cs = "initial catalog=localhost:database;user id=SYSDBA;password=masterkey"; + + using (var connection = new FbConnection(cs)) + { + connection.Open(); + const string sql = "select count(*) from Issue178"; + try { connection.Execute("drop table Issue178"); } + catch { /* don't care */ } + connection.Execute("create table Issue178(id int not null)"); + connection.Execute("insert into Issue178(id) values(42)"); + // raw ADO.net + using (var sqlCmd = new FbCommand(sql, connection)) + using (IDataReader reader1 = sqlCmd.ExecuteReader()) + { + Assert.True(reader1.Read()); + Assert.Equal(1, reader1.GetInt32(0)); + Assert.False(reader1.Read()); + Assert.False(reader1.NextResult()); + } + + // dapper + using (var reader2 = connection.ExecuteReader(sql)) + { + Assert.True(reader2.Read()); + Assert.Equal(1, reader2.GetInt32(0)); + Assert.False(reader2.Read()); + Assert.False(reader2.NextResult()); + } + + var count = connection.Query(sql).Single(); + Assert.Equal(1, count); + } + } + } +} diff --git a/Dapper.Tests/Providers/Linq2SqlTests.cs b/Dapper.Tests/Providers/Linq2SqlTests.cs new file mode 100644 index 000000000..4e0691b7c --- /dev/null +++ b/Dapper.Tests/Providers/Linq2SqlTests.cs @@ -0,0 +1,63 @@ +#if LINQ2SQL +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +namespace Dapper.Tests +{ + public class Linq2SqlTests : TestBase + { + [Fact] + public void TestLinqBinaryToClass() + { + byte[] orig = new byte[20]; + new Random(123456).NextBytes(orig); + var input = new System.Data.Linq.Binary(orig); + + var output = connection.Query("select @input as [Value]", new { input }).First().Value; + + Assert.Equal(orig, output.ToArray()); + } + + [Fact] + public void TestLinqBinaryRaw() + { + byte[] orig = new byte[20]; + new Random(123456).NextBytes(orig); + var input = new System.Data.Linq.Binary(orig); + + var output = connection.Query("select @input as [Value]", new { input }).First(); + + Assert.Equal(orig, output.ToArray()); + } + + private class WithBinary + { + public System.Data.Linq.Binary Value { get; set; } + } + + private class NoDefaultConstructorWithBinary + { + public System.Data.Linq.Binary Value { get; set; } + public int Ynt { get; set; } + public NoDefaultConstructorWithBinary(System.Data.Linq.Binary val) + { + Value = val; + } + } + + [Fact] + public void TestNoDefaultConstructorBinary() + { + byte[] orig = new byte[20]; + new Random(123456).NextBytes(orig); + var input = new System.Data.Linq.Binary(orig); + var output = connection.Query("select @input as val", new { input }).First().Value; + Assert.Equal(orig, output.ToArray()); + } + } +} +#endif diff --git a/Dapper.Tests/Providers/MySQLTests.cs b/Dapper.Tests/Providers/MySQLTests.cs new file mode 100644 index 000000000..aa39a89ad --- /dev/null +++ b/Dapper.Tests/Providers/MySQLTests.cs @@ -0,0 +1,188 @@ +using System; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class MySQLTests : TestBase + { + private static MySql.Data.MySqlClient.MySqlConnection GetMySqlConnection(bool open = true, + bool convertZeroDatetime = false, bool allowZeroDatetime = false) + { + string cs = IsAppVeyor + ? "Server=localhost;Database=test;Uid=root;Pwd=Password12!;" + : "Server=localhost;Database=tests;Uid=test;Pwd=pass;"; + var csb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder(cs) + { + AllowZeroDateTime = allowZeroDatetime, + ConvertZeroDateTime = convertZeroDatetime + }; + var conn = new MySql.Data.MySqlClient.MySqlConnection(csb.ConnectionString); + if (open) conn.Open(); + return conn; + } + + [FactMySql] + public void DapperEnumValue_Mysql() + { + using (var conn = GetMySqlConnection()) + { + Common.DapperEnumValue(conn); + } + } + + [FactMySql(Skip = "See https://github.com/StackExchange/Dapper/issues/552, not resolved on the MySQL end.")] + public void Issue552_SignedUnsignedBooleans() + { + using (var conn = GetMySqlConnection(true, false, false)) + { + conn.Execute(@" +CREATE TEMPORARY TABLE IF NOT EXISTS `bar` ( + `id` INT NOT NULL, + `bool_val` BOOL NULL, + PRIMARY KEY (`id`)); + + truncate table bar; + insert bar (id, bool_val) values (1, null); + insert bar (id, bool_val) values (2, 0); + insert bar (id, bool_val) values (3, 1); + insert bar (id, bool_val) values (4, null); + insert bar (id, bool_val) values (5, 1); + insert bar (id, bool_val) values (6, 0); + insert bar (id, bool_val) values (7, null); + insert bar (id, bool_val) values (8, 1);"); + + var rows = conn.Query("select * from bar;").ToDictionary(x => x.Id); + + Assert.Null(rows[1].Bool_Val); + Assert.False(rows[2].Bool_Val); + Assert.True(rows[3].Bool_Val); + Assert.Null(rows[4].Bool_Val); + Assert.True(rows[5].Bool_Val); + Assert.False(rows[6].Bool_Val); + Assert.Null(rows[7].Bool_Val); + Assert.True(rows[8].Bool_Val); + } + } + + private class MySqlHasBool + { + public int Id { get; set; } + public bool? Bool_Val { get; set; } + } + + [FactMySql] + public void Issue295_NullableDateTime_MySql_Default() + { + using (var conn = GetMySqlConnection(true, false, false)) + { + Common.TestDateTime(conn); + } + } + + [FactMySql] + public void Issue295_NullableDateTime_MySql_ConvertZeroDatetime() + { + using (var conn = GetMySqlConnection(true, true, false)) + { + Common.TestDateTime(conn); + } + } + + [FactMySql(Skip = "See https://github.com/StackExchange/Dapper/issues/295, AllowZeroDateTime=True is not supported")] + public void Issue295_NullableDateTime_MySql_AllowZeroDatetime() + { + using (var conn = GetMySqlConnection(true, false, true)) + { + Common.TestDateTime(conn); + } + } + + [FactMySql(Skip = "See https://github.com/StackExchange/Dapper/issues/295, AllowZeroDateTime=True is not supported")] + public void Issue295_NullableDateTime_MySql_ConvertAllowZeroDatetime() + { + using (var conn = GetMySqlConnection(true, true, true)) + { + Common.TestDateTime(conn); + } + } + + [FactMySql] + public void Issue426_SO34439033_DateTimeGainsTicks() + { + using (var conn = GetMySqlConnection(true, true, true)) + { + try { conn.Execute("drop table Issue426_Test"); } catch { /* don't care */ } + try { conn.Execute("create table Issue426_Test (Id int not null, Time time not null)"); } catch { /* don't care */ } + const long ticks = 553440000000; + const int Id = 426; + + var localObj = new Issue426_Test + { + Id = Id, + Time = TimeSpan.FromTicks(ticks) // from code example + }; + conn.Execute("replace into Issue426_Test values (@Id,@Time)", localObj); + + var dbObj = conn.Query("select * from Issue426_Test where Id = @id", new { id = Id }).Single(); + Assert.Equal(Id, dbObj.Id); + Assert.Equal(ticks, dbObj.Time.Value.Ticks); + } + } + + [FactMySql] + public void SO36303462_Tinyint_Bools() + { + using (var conn = GetMySqlConnection(true, true, true)) + { + try { conn.Execute("drop table SO36303462_Test"); } catch { /* don't care */ } + conn.Execute("create table SO36303462_Test (Id int not null, IsBold tinyint not null);"); + conn.Execute("insert SO36303462_Test (Id, IsBold) values (1,1);"); + conn.Execute("insert SO36303462_Test (Id, IsBold) values (2,0);"); + conn.Execute("insert SO36303462_Test (Id, IsBold) values (3,1);"); + + var rows = conn.Query("select * from SO36303462_Test").ToDictionary(x => x.Id); + Assert.Equal(3, rows.Count); + Assert.True(rows[1].IsBold); + Assert.False(rows[2].IsBold); + Assert.True(rows[3].IsBold); + } + } + + private class SO36303462 + { + public int Id { get; set; } + public bool IsBold { get; set; } + } + + public class Issue426_Test + { + public long Id { get; set; } + public TimeSpan? Time { get; set; } + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class FactMySqlAttribute : FactAttribute + { + public override string Skip + { + get { return unavailable ?? base.Skip; } + set { base.Skip = value; } + } + + private static readonly string unavailable; + + static FactMySqlAttribute() + { + try + { + using (GetMySqlConnection(true)) { /* just trying to see if it works */ } + } + catch (Exception ex) + { + unavailable = $"MySql is unavailable: {ex.Message}"; + } + } + } + } +} diff --git a/Dapper.Tests/Providers/OLDEBTests.cs b/Dapper.Tests/Providers/OLDEBTests.cs new file mode 100644 index 000000000..932b5bfbf --- /dev/null +++ b/Dapper.Tests/Providers/OLDEBTests.cs @@ -0,0 +1,272 @@ +#if OLEDB +using System; +using System.Data.OleDb; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class OLDEBTests : TestBase + { + public static string OleDbConnectionString => + IsAppVeyor + ? @"Provider=SQLOLEDB;Data Source=(local)\SQL2016;Initial Catalog=tempdb;User Id=sa;Password=Password12!" + : "Provider=SQLOLEDB;Data Source=.;Initial Catalog=tempdb;Integrated Security=SSPI"; + + public OleDbConnection GetOleDbConnection() + { + var conn = new OleDbConnection(OleDbConnectionString); + conn.Open(); + return conn; + } + + // see https://stackoverflow.com/q/18847510/23354 + [Fact] + public void TestOleDbParameters() + { + using (var conn = GetOleDbConnection()) + { + var row = conn.Query("select Id = ?, Age = ?", + new { foo = 12, bar = 23 } // these names DO NOT MATTER!!! + ).Single(); + int age = row.Age; + int id = row.Id; + Assert.Equal(23, age); + Assert.Equal(12, id); + } + } + + [Fact] + public void PseudoPositionalParameters_Simple() + { + using (var connection = GetOleDbConnection()) + { + int value = connection.Query("select ?x? + ?y_2? + ?z?", new { x = 1, y_2 = 3, z = 5, z2 = 24 }).Single(); + Assert.Equal(9, value); + } + } + + [Fact] + public void Issue601_InternationalParameterNamesWork_OleDb() + { + // pseudo-positional + using (var connection = GetOleDbConnection()) + { + int value = connection.QuerySingle("select ?æøå٦?", new { æøå٦ = 42 }); + } + } + + [Fact] + public void PseudoPositionalParameters_Dynamic() + { + using (var connection = GetOleDbConnection()) + { + var args = new DynamicParameters(); + args.Add("x", 1); + args.Add("y_2", 3); + args.Add("z", 5); + args.Add("z2", 24); + int value = connection.Query("select ?x? + ?y_2? + ?z?", args).Single(); + Assert.Equal(9, value); + } + } + + [Fact] + public void PseudoPositionalParameters_ReusedParameter() + { + using (var connection = GetOleDbConnection()) + { + var ex = Assert.Throws(() => connection.Query("select ?x? + ?y_2? + ?x?", new { x = 1, y_2 = 3 }).Single()); + Assert.Equal("When passing parameters by position, each parameter can only be referenced once", ex.Message); + } + } + + [Fact] + public void Issue569_SO38527197_PseudoPositionalParameters_In() + { + using (var connection = GetOleDbConnection()) + { + int[] ids = { 1, 2, 5, 7 }; + var list = connection.Query("select * from string_split('1,2,3,4,5',',') where value in ?ids?", new { ids }).AsList(); + list.Sort(); + Assert.Equal("1,2,5", string.Join(",", list)); + } + } + + [Fact] + public void PseudoPositional_CanUseVariable() + { + using (var connection = GetOleDbConnection()) + { + const int id = 42; + var row = connection.QuerySingle("declare @id int = ?id?; select @id as [A], @id as [B];", new { id }); + int a = (int)row.A; + int b = (int)row.B; + Assert.Equal(42, a); + Assert.Equal(42, b); + } + } + + [Fact] + public void PseudoPositional_CannotUseParameterMultipleTimes() + { + using (var connection = GetOleDbConnection()) + { + var ex = Assert.Throws(() => + { + const int id = 42; + connection.QuerySingle("select ?id? as [A], ?id? as [B];", new { id }); + }); + Assert.Equal("When passing parameters by position, each parameter can only be referenced once", ex.Message); + } + } + + [Fact] + public void PseudoPositionalParameters_ExecSingle() + { + using (var connection = GetOleDbConnection()) + { + var data = new { x = 6 }; + connection.Execute("create table #named_single(val int not null)"); + int count = connection.Execute("insert #named_single (val) values (?x?)", data); + int sum = (int)connection.ExecuteScalar("select sum(val) from #named_single"); + Assert.Equal(1, count); + Assert.Equal(6, sum); + } + } + + [Fact] + public void PseudoPositionalParameters_ExecMulti() + { + using (var connection = GetOleDbConnection()) + { + var data = new[] + { + new { x = 1, y = 1 }, + new { x = 3, y = 1 }, + new { x = 6, y = 1 }, + }; + connection.Execute("create table #named_multi(val int not null)"); + int count = connection.Execute("insert #named_multi (val) values (?x?)", data); + int sum = (int)connection.ExecuteScalar("select sum(val) from #named_multi"); + Assert.Equal(3, count); + Assert.Equal(10, sum); + } + } + + [Fact] + public void Issue457_NullParameterValues() + { + const string sql = @" +DECLARE @since DATETIME, @customerCode nvarchar(10) +SET @since = ? -- ODBC parameter +SET @customerCode = ? -- ODBC parameter + +SELECT @since as [Since], @customerCode as [Code]"; + + using (var connection = GetOleDbConnection()) + { + DateTime? since = null; // DateTime.Now.Date; + const string code = null; // "abc"; + var row = connection.QuerySingle(sql, new + { + since, + customerCode = code + }); + var a = (DateTime?)row.Since; + var b = (string)row.Code; + + Assert.Equal(since, a); + Assert.Equal(code, b); + } + } + + [Fact] + public void Issue457_NullParameterValues_Named() + { + const string sql = @" +DECLARE @since DATETIME, @customerCode nvarchar(10) +SET @since = ?since? -- ODBC parameter +SET @customerCode = ?customerCode? -- ODBC parameter + +SELECT @since as [Since], @customerCode as [Code]"; + + using (var connection = GetOleDbConnection()) + { + DateTime? since = null; // DateTime.Now.Date; + const string code = null; // "abc"; + var row = connection.QuerySingle(sql, new + { + since, + customerCode = code + }); + var a = (DateTime?)row.Since; + var b = (string)row.Code; + + Assert.Equal(since, a); + Assert.Equal(code, b); + } + } + + [Fact] + public async void Issue457_NullParameterValues_MultiAsync() + { + const string sql = @" +DECLARE @since DATETIME, @customerCode nvarchar(10) +SET @since = ? -- ODBC parameter +SET @customerCode = ? -- ODBC parameter + +SELECT @since as [Since], @customerCode as [Code]"; + + using (var connection = GetOleDbConnection()) + { + DateTime? since = null; // DateTime.Now.Date; + const string code = null; // "abc"; + using (var multi = await connection.QueryMultipleAsync(sql, new + { + since, + customerCode = code + }).ConfigureAwait(false)) + { + var row = await multi.ReadSingleAsync().ConfigureAwait(false); + var a = (DateTime?)row.Since; + var b = (string)row.Code; + + Assert.Equal(a, since); + Assert.Equal(b, code); + } + } + } + + [Fact] + public async void Issue457_NullParameterValues_MultiAsync_Named() + { + const string sql = @" +DECLARE @since DATETIME, @customerCode nvarchar(10) +SET @since = ?since? -- ODBC parameter +SET @customerCode = ?customerCode? -- ODBC parameter + +SELECT @since as [Since], @customerCode as [Code]"; + + using (var connection = GetOleDbConnection()) + { + DateTime? since = null; // DateTime.Now.Date; + const string code = null; // "abc"; + using (var multi = await connection.QueryMultipleAsync(sql, new + { + since, + customerCode = code + }).ConfigureAwait(false)) + { + var row = await multi.ReadSingleAsync().ConfigureAwait(false); + var a = (DateTime?)row.Since; + var b = (string)row.Code; + + Assert.Equal(a, since); + Assert.Equal(b, code); + } + } + } + } +} +#endif diff --git a/Dapper.Tests/Providers/PostgresqlTests.cs b/Dapper.Tests/Providers/PostgresqlTests.cs new file mode 100644 index 000000000..6ec20c3db --- /dev/null +++ b/Dapper.Tests/Providers/PostgresqlTests.cs @@ -0,0 +1,83 @@ +using System; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class PostcresqlTests : TestBase + { + private static Npgsql.NpgsqlConnection GetOpenNpgsqlConnection() + { + string cs = IsAppVeyor + ? "Server=localhost;Port=5432;User Id=postgres;Password=Password12!;Database=test" + : "Server=localhost;Port=5432;User Id=dappertest;Password=dapperpass;Database=dappertest"; // ;Encoding = UNICODE + var conn = new Npgsql.NpgsqlConnection(cs); + conn.Open(); + return conn; + } + + private class Cat + { + public int Id { get; set; } + public string Breed { get; set; } + public string Name { get; set; } + } + + private readonly Cat[] Cats = + { + new Cat() { Breed = "Abyssinian", Name="KACTUS"}, + new Cat() { Breed = "Aegean cat", Name="KADAFFI"}, + new Cat() { Breed = "American Bobtail", Name="KANJI"}, + new Cat() { Breed = "Balinese", Name="MACARONI"}, + new Cat() { Breed = "Bombay", Name="MACAULAY"}, + new Cat() { Breed = "Burmese", Name="MACBETH"}, + new Cat() { Breed = "Chartreux", Name="MACGYVER"}, + new Cat() { Breed = "German Rex", Name="MACKENZIE"}, + new Cat() { Breed = "Javanese", Name="MADISON"}, + new Cat() { Breed = "Persian", Name="MAGNA"} + }; + + [FactPostgresql] + public void TestPostgresqlArrayParameters() + { + using (var conn = GetOpenNpgsqlConnection()) + { + IDbTransaction transaction = conn.BeginTransaction(); + conn.Execute("create table tcat ( id serial not null, breed character varying(20) not null, name character varying (20) not null);"); + conn.Execute("insert into tcat(breed, name) values(:breed, :name) ", Cats); + + var r = conn.Query("select * from tcat where id=any(:catids)", new { catids = new[] { 1, 3, 5 } }); + Assert.Equal(3, r.Count()); + Assert.Equal(1, r.Count(c => c.Id == 1)); + Assert.Equal(1, r.Count(c => c.Id == 3)); + Assert.Equal(1, r.Count(c => c.Id == 5)); + transaction.Rollback(); + } + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class FactPostgresqlAttribute : FactAttribute + { + public override string Skip + { + get { return unavailable ?? base.Skip; } + set { base.Skip = value; } + } + + private static readonly string unavailable; + + static FactPostgresqlAttribute() + { + try + { + using (GetOpenNpgsqlConnection()) { /* just trying to see if it works */ } + } + catch (Exception ex) + { + unavailable = $"Postgresql is unavailable: {ex.Message}"; + } + } + } + } +} \ No newline at end of file diff --git a/Dapper.Tests/Providers/SQLCETests.cs b/Dapper.Tests/Providers/SQLCETests.cs new file mode 100644 index 000000000..f435bd4e8 --- /dev/null +++ b/Dapper.Tests/Providers/SQLCETests.cs @@ -0,0 +1,56 @@ +#if SQL_CE +using System.Data.SqlServerCe; +using System.IO; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class SQLCETests : TestBase + { + [Fact] + public void MultiRSSqlCE() + { + if (File.Exists("Test.DB.sdf")) + File.Delete("Test.DB.sdf"); + + const string cnnStr = "Data Source = Test.DB.sdf;"; + var engine = new SqlCeEngine(cnnStr); + engine.CreateDatabase(); + + using (var cnn = new SqlCeConnection(cnnStr)) + { + cnn.Open(); + + cnn.Execute("create table Posts (ID int, Title nvarchar(50), Body nvarchar(50), AuthorID int)"); + cnn.Execute("create table Authors (ID int, Name nvarchar(50))"); + + cnn.Execute("insert Posts values (1,'title','body',1)"); + cnn.Execute("insert Posts values(2,'title2','body2',null)"); + cnn.Execute("insert Authors values(1,'sam')"); + + var data = cnn.Query("select * from Posts p left join Authors a on a.ID = p.AuthorID", (post, author) => { post.Author = author; return post; }).ToList(); + var firstPost = data[0]; + Assert.Equal("title", firstPost.Title); + Assert.Equal("sam", firstPost.Author.Name); + Assert.Null(data[1].Author); + } + } + + public class PostCE + { + public int ID { get; set; } + public string Title { get; set; } + public string Body { get; set; } + + public AuthorCE Author { get; set; } + } + + public class AuthorCE + { + public int ID { get; set; } + public string Name { get; set; } + } + } +} +#endif diff --git a/Dapper.Tests/Providers/SqliteTests.cs b/Dapper.Tests/Providers/SqliteTests.cs new file mode 100644 index 000000000..8aa750791 --- /dev/null +++ b/Dapper.Tests/Providers/SqliteTests.cs @@ -0,0 +1,120 @@ +using Microsoft.Data.Sqlite; +using System; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Dapper.Tests +{ + public class SqliteTests : TestBase + { + protected static SqliteConnection GetSQLiteConnection(bool open = true) + { + var connection = new SqliteConnection("Data Source=:memory:"); + if (open) connection.Open(); + return connection; + } + + [FactSqlite] + public void DapperEnumValue_Sqlite() + { + using (var connection = GetSQLiteConnection()) + { + Common.DapperEnumValue(connection); + } + } + + [Collection(NonParallelDefinition.Name)] + public class SqliteTypeHandlerTests : TestBase + { + [FactSqlite] + public void Issue466_SqliteHatesOptimizations() + { + using (var connection = GetSQLiteConnection()) + { + SqlMapper.ResetTypeHandlers(); + var row = connection.Query("select 42 as Id").First(); + Assert.Equal(42, row.Id); + row = connection.Query("select 42 as Id").First(); + Assert.Equal(42, row.Id); + + SqlMapper.ResetTypeHandlers(); + row = connection.QueryFirst("select 42 as Id"); + Assert.Equal(42, row.Id); + row = connection.QueryFirst("select 42 as Id"); + Assert.Equal(42, row.Id); + } + } + + [FactSqlite] + public async Task Issue466_SqliteHatesOptimizations_Async() + { + using (var connection = GetSQLiteConnection()) + { + SqlMapper.ResetTypeHandlers(); + var row = (await connection.QueryAsync("select 42 as Id").ConfigureAwait(false)).First(); + Assert.Equal(42, row.Id); + row = (await connection.QueryAsync("select 42 as Id").ConfigureAwait(false)).First(); + Assert.Equal(42, row.Id); + + SqlMapper.ResetTypeHandlers(); + row = await connection.QueryFirstAsync("select 42 as Id").ConfigureAwait(false); + Assert.Equal(42, row.Id); + row = await connection.QueryFirstAsync("select 42 as Id").ConfigureAwait(false); + Assert.Equal(42, row.Id); + } + } + } + + [FactSqlite] + public void Isse467_SqliteLikesParametersWithPrefix() + { + Isse467_SqliteParameterNaming(true); + } + + [FactSqlite] + public void Isse467_SqliteLikesParametersWithoutPrefix() + { // see issue 375 / 467; note: fixed from RC2 onwards + Isse467_SqliteParameterNaming(false); + } + + private void Isse467_SqliteParameterNaming(bool prefix) + { + using (var connection = GetSQLiteConnection()) + { + var cmd = connection.CreateCommand(); + cmd.CommandText = "select @foo"; + const SqliteType type = SqliteType.Integer; + cmd.Parameters.Add(prefix ? "@foo" : "foo", type).Value = 42; + var i = Convert.ToInt32(cmd.ExecuteScalar()); + Assert.Equal(42, i); + } + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class FactSqliteAttribute : FactAttribute + { + public override string Skip + { + get { return unavailable ?? base.Skip; } + set { base.Skip = value; } + } + + private static readonly string unavailable; + + static FactSqliteAttribute() + { + try + { + using (GetSQLiteConnection()) + { + } + } + catch (Exception ex) + { + unavailable = $"Sqlite is unavailable: {ex.Message}"; + } + } + } + } +} \ No newline at end of file diff --git a/Dapper.Tests/QueryMultipleTests.cs b/Dapper.Tests/QueryMultipleTests.cs new file mode 100644 index 000000000..19dcb557f --- /dev/null +++ b/Dapper.Tests/QueryMultipleTests.cs @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class QueryMultipleTests : TestBase + { + [Fact] + public void TestQueryMultipleBuffered() + { + using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) + { + var a = grid.Read(); + var b = grid.Read(); + var c = grid.Read(); + var d = grid.Read(); + + Assert.Equal(1, a.Single()); + Assert.Equal(2, b.Single()); + Assert.Equal(3, c.Single()); + Assert.Equal(4, d.Single()); + } + } + + [Fact] + public void TestQueryMultipleNonBufferedIncorrectOrder() + { + using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) + { + var a = grid.Read(false); + try + { + var b = grid.Read(false); + throw new InvalidOperationException(); // should have thrown + } + catch (InvalidOperationException) + { + // that's expected + } + } + } + + [Fact] + public void TestQueryMultipleNonBufferedCorrectOrder() + { + using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) + { + var a = grid.Read(false).Single(); + var b = grid.Read(false).Single(); + var c = grid.Read(false).Single(); + var d = grid.Read(false).Single(); + + Assert.Equal(1, a); + Assert.Equal(2, b); + Assert.Equal(3, c); + Assert.Equal(4, d); + } + } + + [Fact] + public void TestMultiReaderBasic() + { + const string sql = "select 1 as Id union all select 2 as Id select 'abc' as name select 1 as Id union all select 2 as Id"; + int i, j; + string s; + using (var multi = connection.QueryMultiple(sql)) + { + i = multi.Read().First(); + s = multi.Read().Single(); + j = multi.Read().Sum(); + } + Assert.Equal(1, i); + Assert.Equal("abc", s); + Assert.Equal(3, j); + } + + [Fact] + public void TestReadDynamicWithGridReader() + { + const string createSql = @" + create table #Users (Id int, Name varchar(20)) + create table #Posts (Id int, OwnerId int, Content varchar(20)) + + insert #Users values(99, 'Sam') + insert #Users values(2, 'I am') + + insert #Posts values(1, 99, 'Sams Post1') + insert #Posts values(2, 99, 'Sams Post2') + insert #Posts values(3, null, 'no ones post')"; + try + { + connection.Execute(createSql); + + const string sql = @"SELECT * FROM #Users ORDER BY Id + SELECT * FROM #Posts ORDER BY Id DESC"; + + var grid = connection.QueryMultiple(sql); + + var users = grid.Read().ToList(); + var posts = grid.Read().ToList(); + + Assert.Equal(2, users.Count); + Assert.Equal(3, posts.Count); + + Assert.Equal(2, (int)users[0].Id); + Assert.Equal(3, (int)posts[0].Id); + } + finally + { + connection.Execute("drop table #Users drop table #Posts"); + } + } + + [Fact] + public void Issue268_ReturnQueryMultiple() + { + connection.Execute(@"create proc #TestProc268 (@a int, @b int, @c int)as +begin +select @a; + +select @b + +return @c; +end"); + var p = new DynamicParameters(new { a = 1, b = 2, c = 3 }); + p.Add("RetVal", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); + + using (var reader = connection.QueryMultiple("#TestProc268", p, commandType: CommandType.StoredProcedure)) + { + reader.Read(); + } + var retVal = p.Get("RetVal"); + Assert.Equal(3, retVal); + } + + [Fact] + public void Issue524_QueryMultiple_Cast() + { + // aka: Read should work even if the data is a + // using regular API + Assert.Equal(42, connection.Query("select cast(42 as bigint)").Single()); + Assert.Equal(42, connection.QuerySingle("select cast(42 as bigint)")); + + // using multi-reader API + using (var reader = connection.QueryMultiple("select cast(42 as bigint); select cast(42 as bigint)")) + { + Assert.Equal(42, reader.Read().Single()); + Assert.Equal(42, reader.ReadSingle()); + } + } + + [Fact] + public void QueryMultipleFromClosed() + { + using (var conn = GetClosedConnection()) + { + using (var multi = conn.QueryMultiple("select 1; select 'abc';")) + { + Assert.Equal(1, multi.Read().Single()); + Assert.Equal("abc", multi.Read().Single()); + } + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void QueryMultiple2FromClosed() + { + using (var conn = GetClosedConnection()) + { + Assert.Equal(ConnectionState.Closed, conn.State); + using (var multi = conn.QueryMultiple("select 1 select 2 select 3")) + { + Assert.Equal(1, multi.Read().Single()); + Assert.Equal(2, multi.Read().Single()); + // not reading 3 is intentional here + } + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void SO35554284_QueryMultipleUntilConsumed() + { + using (var reader = connection.QueryMultiple("select 1 as Id; select 2 as Id; select 3 as Id;")) + { + var items = new List(); + while (!reader.IsConsumed) + { + items.AddRange(reader.Read()); + } + Assert.Equal(3, items.Count); + Assert.Equal(1, items[0].Id); + Assert.Equal(2, items[1].Id); + Assert.Equal(3, items[2].Id); + } + } + + [Fact] + public void QueryMultipleInvalidFromClosed() + { + using (var conn = GetClosedConnection()) + { + Assert.ThrowsAny(() => conn.QueryMultiple("select gibberish")); + Assert.Equal(ConnectionState.Closed, conn.State); + } + } + + [Fact] + public void TestMultiSelectWithSomeEmptyGridsUnbuffered() => TestMultiSelectWithSomeEmptyGrids(false); + + [Fact] + public void TestMultiSelectWithSomeEmptyGridsBuffered() => TestMultiSelectWithSomeEmptyGrids(true); + + private void TestMultiSelectWithSomeEmptyGrids(bool buffered) + { + using (var reader = connection.QueryMultiple("select 1; select 2 where 1 = 0; select 3 where 1 = 0; select 4;")) + { + var one = reader.Read(buffered: buffered).ToArray(); + var two = reader.Read(buffered: buffered).ToArray(); + var three = reader.Read(buffered: buffered).ToArray(); + var four = reader.Read(buffered: buffered).ToArray(); + try + { // only returned four grids; expect a fifth read to fail + reader.Read(buffered: buffered); + throw new InvalidOperationException("this should not have worked!"); + } + catch (ObjectDisposedException ex) + { // expected; success + Assert.Equal("The reader has been disposed; this can happen after all data has been consumed\r\nObject name: 'Dapper.SqlMapper+GridReader'.", ex.Message); + } + + Assert.Single(one); + Assert.Equal(1, one[0]); + Assert.Empty(two); + Assert.Empty(three); + Assert.Single(four); + Assert.Equal(4, four[0]); + } + } + + [Fact] + public void TypeBasedViaTypeMulti() + { + Type type = Common.GetSomeType(); + + dynamic first, second; + using (var multi = connection.QueryMultiple("select @A as [A], @B as [B]; select @C as [A], @D as [B]", + new { A = 123, B = "abc", C = 456, D = "def" })) + { + first = multi.Read(type).Single(); + second = multi.Read(type).Single(); + } + Assert.Equal(((object)first).GetType(), type); + int a = first.A; + string b = first.B; + Assert.Equal(123, a); + Assert.Equal("abc", b); + + Assert.Equal(((object)second).GetType(), type); + a = second.A; + b = second.B; + Assert.Equal(456, a); + Assert.Equal("def", b); + } + } +} diff --git a/Dapper.Tests/SharedTypes/Address.cs b/Dapper.Tests/SharedTypes/Address.cs new file mode 100644 index 000000000..3aaa5a560 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Address.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dapper.Tests +{ + public class Address + { + public int AddressId { get; set; } + public string Name { get; set; } + public int PersonId { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Bar1.cs b/Dapper.Tests/SharedTypes/Bar1.cs new file mode 100644 index 000000000..306d6b96c --- /dev/null +++ b/Dapper.Tests/SharedTypes/Bar1.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class Bar1 + { + public int BarId; + public string Name { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Category.cs b/Dapper.Tests/SharedTypes/Category.cs new file mode 100644 index 000000000..e51ef2008 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Category.cs @@ -0,0 +1,9 @@ +namespace Dapper.Tests +{ + public class Category + { + public int Id { get; set; } + public string Name { get; set; } + public string Description { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Comment.cs b/Dapper.Tests/SharedTypes/Comment.cs new file mode 100644 index 000000000..568b0a01d --- /dev/null +++ b/Dapper.Tests/SharedTypes/Comment.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class Comment + { + public int Id { get; set; } + public string CommentData { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Dog.cs b/Dapper.Tests/SharedTypes/Dog.cs new file mode 100644 index 000000000..9a5212922 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Dog.cs @@ -0,0 +1,14 @@ +using System; + +namespace Dapper.Tests +{ + public class Dog + { + public int? Age { get; set; } + public Guid Id { get; set; } + public string Name { get; set; } + public float? Weight { get; set; } + + public int IgnoredProperty => 1; + } +} diff --git a/Dapper.Tests/SharedTypes/Enums.cs b/Dapper.Tests/SharedTypes/Enums.cs new file mode 100644 index 000000000..15acaa2d3 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Enums.cs @@ -0,0 +1,14 @@ +namespace Dapper.Tests +{ + internal enum AnEnum + { + A = 2, + B = 1 + } + + internal enum AnotherEnum : byte + { + A = 2, + B = 1 + } +} diff --git a/Dapper.Tests/SharedTypes/Foo1.cs b/Dapper.Tests/SharedTypes/Foo1.cs new file mode 100644 index 000000000..00d3151fd --- /dev/null +++ b/Dapper.Tests/SharedTypes/Foo1.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class Foo1 + { + public int Id; + public int BarId { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/HazNameId.cs b/Dapper.Tests/SharedTypes/HazNameId.cs new file mode 100644 index 000000000..7bc44a5a2 --- /dev/null +++ b/Dapper.Tests/SharedTypes/HazNameId.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class HazNameId + { + public string Name { get; set; } + public int Id { get; set; } + } +} \ No newline at end of file diff --git a/Dapper.Tests/SharedTypes/Person.cs b/Dapper.Tests/SharedTypes/Person.cs new file mode 100644 index 000000000..269eff0ad --- /dev/null +++ b/Dapper.Tests/SharedTypes/Person.cs @@ -0,0 +1,11 @@ +namespace Dapper.Tests +{ + public class Person + { + public int PersonId { get; set; } + public string Name { get; set; } + public string Occupation { get; private set; } + public int NumberOfLegs = 2; + public Address Address { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Post.cs b/Dapper.Tests/SharedTypes/Post.cs new file mode 100644 index 000000000..9c017d6d7 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Post.cs @@ -0,0 +1,10 @@ +namespace Dapper.Tests +{ + public class Post + { + public int Id { get; set; } + public User Owner { get; set; } + public string Content { get; set; } + public Comment Comment { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/Product.cs b/Dapper.Tests/SharedTypes/Product.cs new file mode 100644 index 000000000..0e07da3a4 --- /dev/null +++ b/Dapper.Tests/SharedTypes/Product.cs @@ -0,0 +1,9 @@ +namespace Dapper.Tests +{ + public class Product + { + public int Id { get; set; } + public string Name { get; set; } + public Category Category { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/ReviewBoard.cs b/Dapper.Tests/SharedTypes/ReviewBoard.cs new file mode 100644 index 000000000..06a5473a7 --- /dev/null +++ b/Dapper.Tests/SharedTypes/ReviewBoard.cs @@ -0,0 +1,17 @@ +namespace Dapper.Tests +{ + public class ReviewBoard + { + public int Id { get; set; } + public string Name { get; set; } + public User User1 { get; set; } + public User User2 { get; set; } + public User User3 { get; set; } + public User User4 { get; set; } + public User User5 { get; set; } + public User User6 { get; set; } + public User User7 { get; set; } + public User User8 { get; set; } + public User User9 { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/ShortEnum.cs b/Dapper.Tests/SharedTypes/ShortEnum.cs new file mode 100644 index 000000000..33254f30b --- /dev/null +++ b/Dapper.Tests/SharedTypes/ShortEnum.cs @@ -0,0 +1,13 @@ +namespace Dapper.Tests +{ + public enum ShortEnum : short + { + Zero = 0, + One = 1, + Two = 2, + Three = 3, + Four = 4, + Five = 5, + Six = 6 + } +} diff --git a/Dapper.Tests/SharedTypes/SomeType.cs b/Dapper.Tests/SharedTypes/SomeType.cs new file mode 100644 index 000000000..b86f8371b --- /dev/null +++ b/Dapper.Tests/SharedTypes/SomeType.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class SomeType + { + public int A { get; set; } + public string B { get; set; } + } +} diff --git a/Dapper.Tests/SharedTypes/User.cs b/Dapper.Tests/SharedTypes/User.cs new file mode 100644 index 000000000..84d8d8524 --- /dev/null +++ b/Dapper.Tests/SharedTypes/User.cs @@ -0,0 +1,8 @@ +namespace Dapper.Tests +{ + public class User + { + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Dapper.Tests/TestBase.cs b/Dapper.Tests/TestBase.cs new file mode 100644 index 000000000..312356206 --- /dev/null +++ b/Dapper.Tests/TestBase.cs @@ -0,0 +1,91 @@ +using System; +using System.Data; +using System.Data.SqlClient; +using System.Globalization; +using Xunit; +#if !NETCOREAPP1_0 +using System.Threading; +#endif + +namespace Dapper.Tests +{ + public abstract class TestBase : IDisposable + { + protected static readonly bool IsAppVeyor = Environment.GetEnvironmentVariable("Appveyor")?.ToUpperInvariant() == "TRUE"; + + public static string ConnectionString => + IsAppVeyor + ? @"Server=(local)\SQL2016;Database=tempdb;User ID=sa;Password=Password12!" + : "Data Source=.;Initial Catalog=tempdb;Integrated Security=True"; + + protected SqlConnection _connection; + protected SqlConnection connection => _connection ?? (_connection = GetOpenConnection()); + + public static SqlConnection GetOpenConnection(bool mars = false) + { + var cs = ConnectionString; + if (mars) + { + var scsb = new SqlConnectionStringBuilder(cs) + { + MultipleActiveResultSets = true + }; + cs = scsb.ConnectionString; + } + var connection = new SqlConnection(cs); + connection.Open(); + return connection; + } + + public SqlConnection GetClosedConnection() + { + var conn = new SqlConnection(ConnectionString); + if (conn.State != ConnectionState.Closed) throw new InvalidOperationException("should be closed!"); + return conn; + } + + protected static CultureInfo ActiveCulture + { +#if NETCOREAPP1_0 + get { return CultureInfo.CurrentCulture; } + set { CultureInfo.CurrentCulture = value; } +#else + get { return Thread.CurrentThread.CurrentCulture; } + set { Thread.CurrentThread.CurrentCulture = value; } +#endif + } + + static TestBase() + { + Console.WriteLine("Dapper: " + typeof(SqlMapper).AssemblyQualifiedName); + Console.WriteLine("Using Connectionstring: {0}", ConnectionString); +#if NETCOREAPP1_0 + Console.WriteLine("CoreCLR (netcoreapp1.0)"); +#else + Console.WriteLine(".NET: " + Environment.Version); + Console.Write("Loading native assemblies for SQL types..."); + try + { + SqlServerTypesLoader.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); + Console.WriteLine("done."); + } + catch (Exception ex) + { + Console.WriteLine("failed."); + Console.Error.WriteLine(ex.Message); + } +#endif + } + + public void Dispose() + { + _connection?.Dispose(); + } + } + + [CollectionDefinition(Name, DisableParallelization = true)] + public class NonParallelDefinition : TestBase + { + public const string Name = "NonParallel"; + } +} diff --git a/Dapper.Tests/TransactionTests.cs b/Dapper.Tests/TransactionTests.cs new file mode 100644 index 000000000..84519feee --- /dev/null +++ b/Dapper.Tests/TransactionTests.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +namespace Dapper.Tests +{ + public class TransactionTests : TestBase + { + [Fact] + public void TestTransactionCommit() + { + try + { + connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); + + using (var transaction = connection.BeginTransaction()) + { + connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction); + + transaction.Commit(); + } + + Assert.Equal(1, connection.Query("select count(*) from #TransactionTest;").Single()); + } + finally + { + connection.Execute("drop table #TransactionTest;"); + } + } + + [Fact] + public void TestTransactionRollback() + { + connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); + + try + { + using (var transaction = connection.BeginTransaction()) + { + connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction); + + transaction.Rollback(); + } + + Assert.Equal(0, connection.Query("select count(*) from #TransactionTest;").Single()); + } + finally + { + connection.Execute("drop table #TransactionTest;"); + } + } + + [Fact] + public void TestCommandWithInheritedTransaction() + { + connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); + + try + { + using (var transaction = connection.BeginTransaction()) + { + var transactedConnection = new TransactedConnection(connection, transaction); + + transactedConnection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');"); + + transaction.Rollback(); + } + + Assert.Equal(0, connection.Query("select count(*) from #TransactionTest;").Single()); + } + finally + { + connection.Execute("drop table #TransactionTest;"); + } + } + } +} diff --git a/Dapper.Tests/TupleTests.cs b/Dapper.Tests/TupleTests.cs new file mode 100644 index 000000000..562397b7e --- /dev/null +++ b/Dapper.Tests/TupleTests.cs @@ -0,0 +1,55 @@ +using System; +using Xunit; + +namespace Dapper.Tests +{ + public class TupleTests : TestBase + { + [Fact] + public void TupleStructParameter_Fails_HelpfulMessage() + { + var ex = Assert.Throws(() => connection.QuerySingle("select @id", (id: 42, name: "Fred"))); + Assert.Equal("ValueTuple should not be used for parameters - the language-level names are not available to use as parameter names, and it adds unnecessary boxing", ex.Message); + } + + [Fact] + public void TupleClassParameter_Works() + { + Assert.Equal(42, connection.QuerySingle("select @Item1", Tuple.Create(42, "Fred"))); + } + + [Fact] + public void TupleReturnValue_Works_ByPosition() + { + var val = connection.QuerySingle<(int id, string name)>("select 42, 'Fred'"); + Assert.Equal(42, val.id); + Assert.Equal("Fred", val.name); + } + + [Fact] + public void TupleReturnValue_TooManyColumns_Ignored() + { + var val = connection.QuerySingle<(int id, string name)>("select 42, 'Fred', 123"); + Assert.Equal(42, val.id); + Assert.Equal("Fred", val.name); + } + + [Fact] + public void TupleReturnValue_TooFewColumns_Unmapped() + { + // I'm very wary of making this throw, but I can also see some sense in pointing out the oddness + var val = connection.QuerySingle<(int id, string name, int extra)>("select 42, 'Fred'"); + Assert.Equal(42, val.id); + Assert.Equal("Fred", val.name); + Assert.Equal(0, val.extra); + } + + [Fact] + public void TupleReturnValue_Works_NamesIgnored() + { + var val = connection.QuerySingle<(int id, string name)>("select 42 as [Item2], 'Fred' as [Item1]"); + Assert.Equal(42, val.id); + Assert.Equal("Fred", val.name); + } + } +} diff --git a/Dapper.Tests/TypeHandlerTests.cs b/Dapper.Tests/TypeHandlerTests.cs new file mode 100644 index 000000000..3478835ca --- /dev/null +++ b/Dapper.Tests/TypeHandlerTests.cs @@ -0,0 +1,733 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Linq; +using System.Reflection; +using Xunit; + +namespace Dapper.Tests +{ + [Collection(NonParallelDefinition.Name)] + public class TypeHandlerTests : TestBase + { + [Fact] + public void TestChangingDefaultStringTypeMappingToAnsiString() + { + const string sql = "SELECT SQL_VARIANT_PROPERTY(CONVERT(sql_variant, @testParam),'BaseType') AS BaseType"; + var param = new { testParam = "TestString" }; + + var result01 = connection.Query(sql, param).FirstOrDefault(); + Assert.Equal("nvarchar", result01); + + SqlMapper.PurgeQueryCache(); + + SqlMapper.AddTypeMap(typeof(string), DbType.AnsiString); // Change Default String Handling to AnsiString + var result02 = connection.Query(sql, param).FirstOrDefault(); + Assert.Equal("varchar", result02); + + SqlMapper.PurgeQueryCache(); + SqlMapper.AddTypeMap(typeof(string), DbType.String); // Restore Default to Unicode String + } + + [Fact] + public void TestChangingDefaultStringTypeMappingToAnsiStringFirstOrDefault() + { + const string sql = "SELECT SQL_VARIANT_PROPERTY(CONVERT(sql_variant, @testParam),'BaseType') AS BaseType"; + var param = new { testParam = "TestString" }; + + var result01 = connection.QueryFirstOrDefault(sql, param); + Assert.Equal("nvarchar", result01); + + SqlMapper.PurgeQueryCache(); + + SqlMapper.AddTypeMap(typeof(string), DbType.AnsiString); // Change Default String Handling to AnsiString + var result02 = connection.QueryFirstOrDefault(sql, param); + Assert.Equal("varchar", result02); + + SqlMapper.PurgeQueryCache(); + SqlMapper.AddTypeMap(typeof(string), DbType.String); // Restore Default to Unicode String + } + + [Fact] + public void TestCustomTypeMap() + { + // default mapping + var item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); + Assert.Equal("AVal", item.A); + Assert.Equal("BVal", item.B); + + // custom mapping + var map = new CustomPropertyTypeMap(typeof(TypeWithMapping), + (type, columnName) => type.GetProperties().FirstOrDefault(prop => GetDescriptionFromAttribute(prop) == columnName)); + SqlMapper.SetTypeMap(typeof(TypeWithMapping), map); + + item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); + Assert.Equal("BVal", item.A); + Assert.Equal("AVal", item.B); + + // reset to default + SqlMapper.SetTypeMap(typeof(TypeWithMapping), null); + item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); + Assert.Equal("AVal", item.A); + Assert.Equal("BVal", item.B); + } + + private static string GetDescriptionFromAttribute(MemberInfo member) + { + if (member == null) return null; +#if NETCOREAPP1_0 + var data = member.CustomAttributes.FirstOrDefault(x => x.AttributeType == typeof(DescriptionAttribute)); + return (string)data?.ConstructorArguments.Single().Value; +#else + var attrib = (DescriptionAttribute)Attribute.GetCustomAttribute(member, typeof(DescriptionAttribute), false); + return attrib?.Description; +#endif + } + + public class TypeWithMapping + { + [Description("B")] + public string A { get; set; } + + [Description("A")] + public string B { get; set; } + } + + [Fact] + public void Issue136_ValueTypeHandlers() + { + SqlMapper.ResetTypeHandlers(); + SqlMapper.AddTypeHandler(typeof(LocalDate), LocalDateHandler.Default); + var param = new LocalDateResult + { + NotNullable = new LocalDate { Year = 2014, Month = 7, Day = 25 }, + NullableNotNull = new LocalDate { Year = 2014, Month = 7, Day = 26 }, + NullableIsNull = null, + }; + + var result = connection.Query("SELECT @NotNullable AS NotNullable, @NullableNotNull AS NullableNotNull, @NullableIsNull AS NullableIsNull", param).Single(); + + SqlMapper.ResetTypeHandlers(); + SqlMapper.AddTypeHandler(typeof(LocalDate?), LocalDateHandler.Default); + result = connection.Query("SELECT @NotNullable AS NotNullable, @NullableNotNull AS NullableNotNull, @NullableIsNull AS NullableIsNull", param).Single(); + } + + public class LocalDateHandler : SqlMapper.TypeHandler + { + private LocalDateHandler() { /* private constructor */ } + + // Make the field type ITypeHandler to ensure it cannot be used with SqlMapper.AddTypeHandler(TypeHandler) + // by mistake. + public static readonly SqlMapper.ITypeHandler Default = new LocalDateHandler(); + + public override LocalDate Parse(object value) + { + var date = (DateTime)value; + return new LocalDate { Year = date.Year, Month = date.Month, Day = date.Day }; + } + + public override void SetValue(IDbDataParameter parameter, LocalDate value) + { + parameter.DbType = DbType.DateTime; + parameter.Value = new DateTime(value.Year, value.Month, value.Day); + } + } + + public struct LocalDate + { + public int Year { get; set; } + public int Month { get; set; } + public int Day { get; set; } + } + + public class LocalDateResult + { + public LocalDate NotNullable { get; set; } + public LocalDate? NullableNotNull { get; set; } + public LocalDate? NullableIsNull { get; set; } + } + + public class LotsOfNumerics + { + public enum E_Byte : byte { A = 0, B = 1 } + public enum E_SByte : sbyte { A = 0, B = 1 } + public enum E_Short : short { A = 0, B = 1 } + public enum E_UShort : ushort { A = 0, B = 1 } + public enum E_Int : int { A = 0, B = 1 } + public enum E_UInt : uint { A = 0, B = 1 } + public enum E_Long : long { A = 0, B = 1 } + public enum E_ULong : ulong { A = 0, B = 1 } + + public E_Byte P_Byte { get; set; } + public E_SByte P_SByte { get; set; } + public E_Short P_Short { get; set; } + public E_UShort P_UShort { get; set; } + public E_Int P_Int { get; set; } + public E_UInt P_UInt { get; set; } + public E_Long P_Long { get; set; } + public E_ULong P_ULong { get; set; } + + public bool N_Bool { get; set; } + public byte N_Byte { get; set; } + public sbyte N_SByte { get; set; } + public short N_Short { get; set; } + public ushort N_UShort { get; set; } + public int N_Int { get; set; } + public uint N_UInt { get; set; } + public long N_Long { get; set; } + public ulong N_ULong { get; set; } + + public float N_Float { get; set; } + public double N_Double { get; set; } + public decimal N_Decimal { get; set; } + + public E_Byte? N_P_Byte { get; set; } + public E_SByte? N_P_SByte { get; set; } + public E_Short? N_P_Short { get; set; } + public E_UShort? N_P_UShort { get; set; } + public E_Int? N_P_Int { get; set; } + public E_UInt? N_P_UInt { get; set; } + public E_Long? N_P_Long { get; set; } + public E_ULong? N_P_ULong { get; set; } + + public bool? N_N_Bool { get; set; } + public byte? N_N_Byte { get; set; } + public sbyte? N_N_SByte { get; set; } + public short? N_N_Short { get; set; } + public ushort? N_N_UShort { get; set; } + public int? N_N_Int { get; set; } + public uint? N_N_UInt { get; set; } + public long? N_N_Long { get; set; } + public ulong? N_N_ULong { get; set; } + + public float? N_N_Float { get; set; } + public double? N_N_Double { get; set; } + public decimal? N_N_Decimal { get; set; } + } + + [Fact] + public void TestBigIntForEverythingWorks() + { + TestBigIntForEverythingWorks_ByDataType("bigint"); + TestBigIntForEverythingWorks_ByDataType("int"); + TestBigIntForEverythingWorks_ByDataType("tinyint"); + TestBigIntForEverythingWorks_ByDataType("smallint"); + TestBigIntForEverythingWorks_ByDataType("bit"); + TestBigIntForEverythingWorks_ByDataType("float(24)"); + TestBigIntForEverythingWorks_ByDataType("float(53)"); + } + + private void TestBigIntForEverythingWorks_ByDataType(string dbType) + { + using (var reader = connection.ExecuteReader("select cast(1 as " + dbType + ")")) + { + Assert.True(reader.Read()); + reader.GetFieldType(0).Equals(typeof(T)); + Assert.False(reader.Read()); + Assert.False(reader.NextResult()); + } + + string sql = "select " + string.Join(",", typeof(LotsOfNumerics).GetProperties().Select( + x => "cast (1 as " + dbType + ") as [" + x.Name + "]")); + var row = connection.Query(sql).Single(); + + Assert.True(row.N_Bool); + Assert.Equal(row.N_SByte, (sbyte)1); + Assert.Equal(row.N_Byte, (byte)1); + Assert.Equal(row.N_Int, (int)1); + Assert.Equal(row.N_UInt, (uint)1); + Assert.Equal(row.N_Short, (short)1); + Assert.Equal(row.N_UShort, (ushort)1); + Assert.Equal(row.N_Long, (long)1); + Assert.Equal(row.N_ULong, (ulong)1); + Assert.Equal(row.N_Float, (float)1); + Assert.Equal(row.N_Double, (double)1); + Assert.Equal(row.N_Decimal, (decimal)1); + + Assert.Equal(LotsOfNumerics.E_Byte.B, row.P_Byte); + Assert.Equal(LotsOfNumerics.E_SByte.B, row.P_SByte); + Assert.Equal(LotsOfNumerics.E_Short.B, row.P_Short); + Assert.Equal(LotsOfNumerics.E_UShort.B, row.P_UShort); + Assert.Equal(LotsOfNumerics.E_Int.B, row.P_Int); + Assert.Equal(LotsOfNumerics.E_UInt.B, row.P_UInt); + Assert.Equal(LotsOfNumerics.E_Long.B, row.P_Long); + Assert.Equal(LotsOfNumerics.E_ULong.B, row.P_ULong); + + Assert.True(row.N_N_Bool.Value); + Assert.Equal(row.N_N_SByte.Value, (sbyte)1); + Assert.Equal(row.N_N_Byte.Value, (byte)1); + Assert.Equal(row.N_N_Int.Value, (int)1); + Assert.Equal(row.N_N_UInt.Value, (uint)1); + Assert.Equal(row.N_N_Short.Value, (short)1); + Assert.Equal(row.N_N_UShort.Value, (ushort)1); + Assert.Equal(row.N_N_Long.Value, (long)1); + Assert.Equal(row.N_N_ULong.Value, (ulong)1); + Assert.Equal(row.N_N_Float.Value, (float)1); + Assert.Equal(row.N_N_Double.Value, (double)1); + Assert.Equal(row.N_N_Decimal, (decimal)1); + + Assert.Equal(LotsOfNumerics.E_Byte.B, row.N_P_Byte.Value); + Assert.Equal(LotsOfNumerics.E_SByte.B, row.N_P_SByte.Value); + Assert.Equal(LotsOfNumerics.E_Short.B, row.N_P_Short.Value); + Assert.Equal(LotsOfNumerics.E_UShort.B, row.N_P_UShort.Value); + Assert.Equal(LotsOfNumerics.E_Int.B, row.N_P_Int.Value); + Assert.Equal(LotsOfNumerics.E_UInt.B, row.N_P_UInt.Value); + Assert.Equal(LotsOfNumerics.E_Long.B, row.N_P_Long.Value); + Assert.Equal(LotsOfNumerics.E_ULong.B, row.N_P_ULong.Value); + + TestBigIntForEverythingWorksGeneric(true, dbType); + TestBigIntForEverythingWorksGeneric((sbyte)1, dbType); + TestBigIntForEverythingWorksGeneric((byte)1, dbType); + TestBigIntForEverythingWorksGeneric((int)1, dbType); + TestBigIntForEverythingWorksGeneric((uint)1, dbType); + TestBigIntForEverythingWorksGeneric((short)1, dbType); + TestBigIntForEverythingWorksGeneric((ushort)1, dbType); + TestBigIntForEverythingWorksGeneric((long)1, dbType); + TestBigIntForEverythingWorksGeneric((ulong)1, dbType); + TestBigIntForEverythingWorksGeneric((float)1, dbType); + TestBigIntForEverythingWorksGeneric((double)1, dbType); + TestBigIntForEverythingWorksGeneric((decimal)1, dbType); + + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Byte.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_SByte.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Int.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_UInt.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Short.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_UShort.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Long.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_ULong.B, dbType); + + TestBigIntForEverythingWorksGeneric(true, dbType); + TestBigIntForEverythingWorksGeneric((sbyte)1, dbType); + TestBigIntForEverythingWorksGeneric((byte)1, dbType); + TestBigIntForEverythingWorksGeneric((int)1, dbType); + TestBigIntForEverythingWorksGeneric((uint)1, dbType); + TestBigIntForEverythingWorksGeneric((short)1, dbType); + TestBigIntForEverythingWorksGeneric((ushort)1, dbType); + TestBigIntForEverythingWorksGeneric((long)1, dbType); + TestBigIntForEverythingWorksGeneric((ulong)1, dbType); + TestBigIntForEverythingWorksGeneric((float)1, dbType); + TestBigIntForEverythingWorksGeneric((double)1, dbType); + TestBigIntForEverythingWorksGeneric((decimal)1, dbType); + + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Byte.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_SByte.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Int.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_UInt.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Short.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_UShort.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_Long.B, dbType); + TestBigIntForEverythingWorksGeneric(LotsOfNumerics.E_ULong.B, dbType); + } + + private void TestBigIntForEverythingWorksGeneric(T expected, string dbType) + { + var query = connection.Query("select cast(1 as " + dbType + ")").Single(); + Assert.Equal(query, expected); + + var scalar = connection.ExecuteScalar("select cast(1 as " + dbType + ")"); + Assert.Equal(scalar, expected); + } + + [Fact] + public void TestSubsequentQueriesSuccess() + { + var data0 = connection.Query("select 1 as [Id] where 1 = 0").ToList(); + Assert.Empty(data0); + + var data1 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList(); + Assert.Empty(data1); + + var data2 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList(); + Assert.Empty(data2); + + data0 = connection.Query("select 1 as [Id] where 1 = 0").ToList(); + Assert.Empty(data0); + + data1 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList(); + Assert.Empty(data1); + + data2 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList(); + Assert.Empty(data2); + } + + private class Fooz0 + { + public int Id { get; set; } + } + + private class Fooz1 + { + public int Id { get; set; } + } + + private class Fooz2 + { + public int Id { get; set; } + } + + public class RatingValueHandler : SqlMapper.TypeHandler + { + private RatingValueHandler() + { + } + + public static readonly RatingValueHandler Default = new RatingValueHandler(); + + public override RatingValue Parse(object value) + { + if (value is int) + { + return new RatingValue() { Value = (int)value }; + } + + throw new FormatException("Invalid conversion to RatingValue"); + } + + public override void SetValue(IDbDataParameter parameter, RatingValue value) + { + // ... null, range checks etc ... + parameter.DbType = System.Data.DbType.Int32; + parameter.Value = value.Value; + } + } + + public class RatingValue + { + public int Value { get; set; } + // ... some other properties etc ... + } + + public class MyResult + { + public string CategoryName { get; set; } + public RatingValue CategoryRating { get; set; } + } + + [Fact] + public void SO24740733_TestCustomValueHandler() + { + SqlMapper.AddTypeHandler(RatingValueHandler.Default); + var foo = connection.Query("SELECT 'Foo' AS CategoryName, 200 AS CategoryRating").Single(); + + Assert.Equal("Foo", foo.CategoryName); + Assert.Equal(200, foo.CategoryRating.Value); + } + + [Fact] + public void SO24740733_TestCustomValueSingleColumn() + { + SqlMapper.AddTypeHandler(RatingValueHandler.Default); + var foo = connection.Query("SELECT 200 AS CategoryRating").Single(); + + Assert.Equal(200, foo.Value); + } + + public class StringListTypeHandler : SqlMapper.TypeHandler> + { + private StringListTypeHandler() + { + } + + public static readonly StringListTypeHandler Default = new StringListTypeHandler(); + //Just a simple List type handler implementation + public override void SetValue(IDbDataParameter parameter, List value) + { + parameter.Value = string.Join(",", value); + } + + public override List Parse(object value) + { + return ((value as string) ?? "").Split(',').ToList(); + } + } + + public class MyObjectWithStringList + { + public List Names { get; set; } + } + + [Fact] + public void Issue253_TestIEnumerableTypeHandlerParsing() + { + SqlMapper.ResetTypeHandlers(); + SqlMapper.AddTypeHandler(StringListTypeHandler.Default); + var foo = connection.Query("SELECT 'Sam,Kyro' AS Names").Single(); + Assert.Equal(new[] { "Sam", "Kyro" }, foo.Names); + } + + [Fact] + public void Issue253_TestIEnumerableTypeHandlerSetParameterValue() + { + SqlMapper.ResetTypeHandlers(); + SqlMapper.AddTypeHandler(StringListTypeHandler.Default); + + connection.Execute("CREATE TABLE #Issue253 (Names VARCHAR(50) NOT NULL);"); + try + { + const string names = "Sam,Kyro"; + List names_list = names.Split(',').ToList(); + var foo = connection.Query("INSERT INTO #Issue253 (Names) VALUES (@Names); SELECT Names FROM #Issue253;", new { Names = names_list }).Single(); + Assert.Equal(foo, names); + } + finally + { + connection.Execute("DROP TABLE #Issue253;"); + } + } + + public class RecordingTypeHandler : SqlMapper.TypeHandler + { + public override void SetValue(IDbDataParameter parameter, T value) + { + SetValueWasCalled = true; + parameter.Value = value; + } + + public override T Parse(object value) + { + ParseWasCalled = true; + return (T)value; + } + + public bool SetValueWasCalled { get; set; } + public bool ParseWasCalled { get; set; } + } + + [Fact] + public void Test_RemoveTypeMap() + { + SqlMapper.ResetTypeHandlers(); + SqlMapper.RemoveTypeMap(typeof(DateTime)); + + var dateTimeHandler = new RecordingTypeHandler(); + SqlMapper.AddTypeHandler(dateTimeHandler); + + connection.Execute("CREATE TABLE #Test_RemoveTypeMap (x datetime NOT NULL);"); + + try + { + connection.Execute("INSERT INTO #Test_RemoveTypeMap VALUES (@Now)", new { DateTime.Now }); + connection.Query("SELECT * FROM #Test_RemoveTypeMap"); + + Assert.True(dateTimeHandler.ParseWasCalled); + Assert.True(dateTimeHandler.SetValueWasCalled); + } + finally + { + connection.Execute("DROP TABLE #Test_RemoveTypeMap"); + SqlMapper.AddTypeMap(typeof(DateTime), DbType.DateTime); // or an option to reset type map? + } + } + + [Fact] + public void TestReaderWhenResultsChange() + { + try + { + connection.Execute("create table #ResultsChange (X int);create table #ResultsChange2 (Y int);insert #ResultsChange (X) values(1);insert #ResultsChange2 (Y) values(1);"); + + var obj1 = connection.Query("select * from #ResultsChange").Single(); + Assert.Equal(1, obj1.X); + Assert.Equal(0, obj1.Y); + Assert.Equal(0, obj1.Z); + + var obj2 = connection.Query("select * from #ResultsChange rc inner join #ResultsChange2 rc2 on rc2.Y=rc.X").Single(); + Assert.Equal(1, obj2.X); + Assert.Equal(1, obj2.Y); + Assert.Equal(0, obj2.Z); + + connection.Execute("alter table #ResultsChange add Z int null"); + connection.Execute("update #ResultsChange set Z = 2"); + + var obj3 = connection.Query("select * from #ResultsChange").Single(); + Assert.Equal(1, obj3.X); + Assert.Equal(0, obj3.Y); + Assert.Equal(2, obj3.Z); + + var obj4 = connection.Query("select * from #ResultsChange rc inner join #ResultsChange2 rc2 on rc2.Y=rc.X").Single(); + Assert.Equal(1, obj4.X); + Assert.Equal(1, obj4.Y); + Assert.Equal(2, obj4.Z); + } + finally + { + connection.Execute("drop table #ResultsChange;drop table #ResultsChange2;"); + } + } + + private class ResultsChangeType + { + public int X { get; set; } + public int Y { get; set; } + public int Z { get; set; } + } + + public class WrongTypes + { + public int A { get; set; } + public double B { get; set; } + public long C { get; set; } + public bool D { get; set; } + } + + [Fact] + public void TestWrongTypes_WithRightTypes() + { + var item = connection.Query("select 1 as A, cast(2.0 as float) as B, cast(3 as bigint) as C, cast(1 as bit) as D").Single(); + Assert.Equal(1, item.A); + Assert.Equal(2.0, item.B); + Assert.Equal(3L, item.C); + Assert.True(item.D); + } + + [Fact] + public void TestWrongTypes_WithWrongTypes() + { + var item = connection.Query("select cast(1.0 as float) as A, 2 as B, 3 as C, cast(1 as bigint) as D").Single(); + Assert.Equal(1, item.A); + Assert.Equal(2.0, item.B); + Assert.Equal(3L, item.C); + Assert.True(item.D); + } + + [Fact] + public void SO24607639_NullableBools() + { + var obj = connection.Query( + @"declare @vals table (A bit null, B bit null, C bit null); + insert @vals (A,B,C) values (1,0,null); + select * from @vals").Single(); + Assert.NotNull(obj); + Assert.True(obj.A.Value); + Assert.False(obj.B.Value); + Assert.Null(obj.C); + } + + private class HazBools + { + public bool? A { get; set; } + public bool? B { get; set; } + public bool? C { get; set; } + } + + [Fact] + public void Issue130_IConvertible() + { + dynamic row = connection.Query("select 1 as [a], '2' as [b]").Single(); + int a = row.a; + string b = row.b; + Assert.Equal(1, a); + Assert.Equal("2", b); + + row = connection.Query("select 3 as [a], '4' as [b]").Single(); + a = row.a; + b = row.b; + Assert.Equal(3, a); + Assert.Equal("4", b); + } + + [Fact] + public void Issue149_TypeMismatch_SequentialAccess() + { + Guid guid = Guid.Parse("cf0ef7ac-b6fe-4e24-aeda-a2b45bb5654e"); + var ex = Assert.ThrowsAny(() => connection.Query("select @guid as Id", new { guid }).First()); + Assert.Equal("Error parsing column 0 (Id=cf0ef7ac-b6fe-4e24-aeda-a2b45bb5654e - Object)", ex.Message); + } + + public class Issue149_Person { public string Id { get; set; } } + + [Fact] + public void Issue295_NullableDateTime_SqlServer() => Common.TestDateTime(connection); + + [Fact] + public void SO29343103_UtcDates() + { + const string sql = "select @date"; + var date = DateTime.UtcNow; + var returned = connection.Query(sql, new { date }).Single(); + var delta = returned - date; + Assert.True(delta.TotalMilliseconds >= -10 && delta.TotalMilliseconds <= 10); + } + + [Fact] + public void Issue461_TypeHandlerWorksInConstructor() + { + SqlMapper.AddTypeHandler(new Issue461_BlargHandler()); + + connection.Execute(@"CREATE TABLE #Issue461 ( + Id int not null IDENTITY(1,1), + SomeValue nvarchar(50), + SomeBlargValue nvarchar(200), + )"); + const string Expected = "abc123def"; + var blarg = new Blarg(Expected); + connection.Execute( + "INSERT INTO #Issue461 (SomeValue, SomeBlargValue) VALUES (@value, @blarg)", + new { value = "what up?", blarg }); + + // test: without constructor + var parameterlessWorks = connection.QuerySingle("SELECT * FROM #Issue461"); + Assert.Equal(1, parameterlessWorks.Id); + Assert.Equal("what up?", parameterlessWorks.SomeValue); + Assert.Equal(parameterlessWorks.SomeBlargValue.Value, Expected); + + // test: via constructor + var parameterDoesNot = connection.QuerySingle("SELECT * FROM #Issue461"); + Assert.Equal(1, parameterDoesNot.Id); + Assert.Equal("what up?", parameterDoesNot.SomeValue); + Assert.Equal(parameterDoesNot.SomeBlargValue.Value, Expected); + } + + // I would usually expect this to be a struct; using a class + // so that we can't pass unexpectedly due to forcing an unsafe cast - want + // to see an InvalidCastException if it is wrong + private class Blarg + { + public Blarg(string value) { Value = value; } + public string Value { get; } + public override string ToString() + { + return Value; + } + } + + private class Issue461_BlargHandler : SqlMapper.TypeHandler + { + public override void SetValue(IDbDataParameter parameter, Blarg value) + { + parameter.Value = ((object)value.Value) ?? DBNull.Value; + } + + public override Blarg Parse(object value) + { + string s = (value == null || value is DBNull) ? null : Convert.ToString(value); + return new Blarg(s); + } + } + + private class Issue461_ParameterlessTypeConstructor + { + public int Id { get; set; } + + public string SomeValue { get; set; } + public Blarg SomeBlargValue { get; set; } + } + + private class Issue461_ParameterisedTypeConstructor + { + public Issue461_ParameterisedTypeConstructor(int id, string someValue, Blarg someBlargValue) + { + Id = id; + SomeValue = someValue; + SomeBlargValue = someBlargValue; + } + + public int Id { get; } + + public string SomeValue { get; } + public Blarg SomeBlargValue { get; } + } + } +} diff --git a/Dapper.Tests/XmlTests.cs b/Dapper.Tests/XmlTests.cs new file mode 100644 index 000000000..50aa322fb --- /dev/null +++ b/Dapper.Tests/XmlTests.cs @@ -0,0 +1,34 @@ +using System.Xml; +using System.Xml.Linq; +using Xunit; + +namespace Dapper.Tests +{ + public class XmlTests : TestBase + { + [Fact] + public void CommonXmlTypesSupported() + { + var xml = new XmlDocument(); + xml.LoadXml(""); + + var foo = new Foo + { + A = xml, + B = XDocument.Parse(""), + C = XElement.Parse("") + }; + var bar = connection.QuerySingle("select @a as [A], @b as [B], @c as [C]", new { a = foo.A, b = foo.B, c = foo.C }); + Assert.Equal("abc", bar.A.DocumentElement.Name); + Assert.Equal("def", bar.B.Root.Name.LocalName); + Assert.Equal("ghi", bar.C.Name.LocalName); + } + + public class Foo + { + public XmlDocument A { get; set; } + public XDocument B { get; set; } + public XElement C { get; set; } + } + } +} diff --git a/Dapper.sln b/Dapper.sln index 3e0deb07a..adb25c8a1 100644 --- a/Dapper.sln +++ b/Dapper.sln @@ -1,289 +1,110 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22728.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.8 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DapperTests NET40", "Tests\DapperTests NET40.csproj", "{A2A80512-11F4-4028-A995-505463632C84}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET35", "Dapper NET35\Dapper NET35.csproj", "{B26305D8-3A89-4D68-A981-9BBF378B81FA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Contrib", "Dapper.Contrib\Dapper.Contrib.csproj", "{C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Contrib.Tests", "Dapper.Contrib.Tests\Dapper.Contrib.Tests.csproj", "{A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DapperTests NET35", "DapperTests NET35\DapperTests NET35.csproj", "{3BAA9F79-BA0A-4092-B47B-20170DD47989}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.SqlBuilder", "Dapper.SqlBuilder\Dapper.SqlBuilder.csproj", "{BF782EF1-2B0F-42FA-9DD0-928454A94C6D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Rainbow", "Dapper.Rainbow\Dapper.Rainbow.csproj", "{21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{E043638B-9516-477C-A75A-254DD55D4113}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET40", "Dapper NET40\Dapper NET40.csproj", "{DAF737E1-05B5-4189-A5AA-DAC6233B64D7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET45", "Dapper NET45\Dapper NET45.csproj", "{0FFF5BC7-0A4B-4D87-835E-4FAD70937507}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E757192C-9411-458D-8815-8DAB34E12D03}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A34907DF-958A-4E4C-8491-84CF303FD13E}" ProjectSection(SolutionItems) = preProject - Dapper.Contrib.nuspec = Dapper.Contrib.nuspec - Dapper.EntityFramework.nuspec = Dapper.EntityFramework.nuspec - Dapper.EntityFramework.StrongName.nuspec = Dapper.EntityFramework.StrongName.nuspec - Dapper.nuspec = Dapper.nuspec - Dapper.Rainbow.nuspec = Dapper.Rainbow.nuspec - Dapper.SqlBuilder.nuspec = Dapper.SqlBuilder.nuspec - Dapper.StrongName.nuspec = Dapper.StrongName.nuspec + .editorconfig = .editorconfig + appveyor.yml = appveyor.yml + build.ps1 = build.ps1 + build.sh = build.sh License.txt = License.txt + nuget.config = nuget.config + Readme.md = Readme.md + semver.txt = semver.txt EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DapperTests NET45", "DapperTests NET45\DapperTests NET45.csproj", "{5A5183F5-B774-42C9-A992-0A9C85FBE770}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper", "Dapper\Dapper.csproj", "{FAC24C3F-68F9-4247-A4B9-21D487E99275}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.EntityFramework NET45", "Dapper.EntityFramework NET45\Dapper.EntityFramework NET45.csproj", "{C4FF57CD-F033-40D3-892C-EE5290BA3999}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.StrongName", "Dapper.StrongName\Dapper.StrongName.csproj", "{549C51A1-222B-4E12-96F1-3AEFF45A7709}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.EntityFramework NET40", "Dapper.EntityFramework NET40\Dapper.EntityFramework NET40.csproj", "{2544DFBA-7F64-4003-9C36-D8337F770A36}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Tests", "Dapper.Tests\Dapper.Tests.csproj", "{052C0817-DB26-4925-8929-8C5E42D148D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Contrib NET45", "Dapper.Contrib NET45\Dapper.Contrib NET45.csproj", "{302EC82F-A81B-48C5-B653-B5C75D2BD103}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Contrib", "Dapper.Contrib\Dapper.Contrib.csproj", "{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Rainbow NET45", "Dapper.Rainbow NET45\Dapper.Rainbow NET45.csproj", "{DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.EntityFramework", "Dapper.EntityFramework\Dapper.EntityFramework.csproj", "{BE401F7B-8611-4A1E-AEAA-5CB700128C16}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Contrib.Tests NET45", "Dapper.Contrib.Tests NET45\Dapper.Contrib.Tests NET45.csproj", "{7A85178F-4ADC-4E4C-BF08-17FC99488A9A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Tests.Contrib", "Dapper.Tests.Contrib\Dapper.Tests.Contrib.csproj", "{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET35 SNK", "Dapper NET35 SNK\Dapper NET35 SNK.csproj", "{02BA5431-EBE0-4E06-A01C-71C1A0D74379}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.SqlBuilder", "Dapper.SqlBuilder\Dapper.SqlBuilder.csproj", "{196928F0-7052-4585-90E8-817BD720F5E3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET40 SNK", "Dapper NET40 SNK\Dapper NET40 SNK.csproj", "{437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Rainbow", "Dapper.Rainbow\Dapper.Rainbow.csproj", "{8A74F0B6-188F-45D2-8A4B-51E4F211805A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper NET45 SNK", "Dapper NET45 SNK\Dapper NET45 SNK.csproj", "{7140725C-8898-4F58-B566-628A80DB4EFA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4E956F6B-6BD8-46F5-BC85-49292FF8F9AB}" + ProjectSection(SolutionItems) = preProject + Directory.build.props = Directory.build.props + EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.EntityFramework NET40 SNK", "Dapper.EntityFramework NET40 SNK\Dapper.EntityFramework NET40 SNK.csproj", "{9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{568BD46C-1C65-4D44-870C-12CD72563262}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.EntityFramework NET45 SNK", "Dapper.EntityFramework NET45 SNK\Dapper.EntityFramework NET45 SNK.csproj", "{7169A2C1-F57E-4288-B22D-52394DD2EC06}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.EntityFramework.StrongName", "Dapper.EntityFramework.StrongName\Dapper.EntityFramework.StrongName.csproj", "{39D3EEB6-9C05-4F4A-8C01-7B209742A7EB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.SqlBuilder NET45", "Dapper.SqlBuilder NET45\Dapper.SqlBuilder NET45.csproj", "{B83D86B2-79C0-46AA-B51B-03730256FAAC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Tests.Performance", "Dapper.Tests.Performance\Dapper.Tests.Performance.csproj", "{F017075A-2969-4A8E-8971-26F154EB420F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A2A80512-11F4-4028-A995-505463632C84}.Debug|Any CPU.ActiveCfg = Debug|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Debug|x86.ActiveCfg = Debug|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Debug|x86.Build.0 = Debug|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Release|Any CPU.ActiveCfg = Release|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Release|Mixed Platforms.Build.0 = Release|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Release|x86.ActiveCfg = Release|x86 - {A2A80512-11F4-4028-A995-505463632C84}.Release|x86.Build.0 = Release|x86 - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Debug|x86.ActiveCfg = Debug|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Release|Any CPU.Build.0 = Release|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B26305D8-3A89-4D68-A981-9BBF378B81FA}.Release|x86.ActiveCfg = Release|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Debug|x86.ActiveCfg = Debug|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Release|Any CPU.Build.0 = Release|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB}.Release|x86.ActiveCfg = Release|Any CPU - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Debug|Any CPU.ActiveCfg = Debug|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Debug|x86.ActiveCfg = Debug|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Debug|x86.Build.0 = Debug|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Release|Any CPU.ActiveCfg = Release|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Release|Mixed Platforms.Build.0 = Release|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Release|x86.ActiveCfg = Release|x86 - {A4F4A06E-D179-4251-A232-AEF4CE9AD9B5}.Release|x86.Build.0 = Release|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Debug|Any CPU.ActiveCfg = Debug|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Debug|x86.ActiveCfg = Debug|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Debug|x86.Build.0 = Debug|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Release|Any CPU.ActiveCfg = Release|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Release|Mixed Platforms.Build.0 = Release|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Release|x86.ActiveCfg = Release|x86 - {3BAA9F79-BA0A-4092-B47B-20170DD47989}.Release|x86.Build.0 = Release|x86 - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Debug|x86.ActiveCfg = Debug|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Release|Any CPU.Build.0 = Release|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BF782EF1-2B0F-42FA-9DD0-928454A94C6D}.Release|x86.ActiveCfg = Release|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Debug|x86.ActiveCfg = Debug|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Release|Any CPU.Build.0 = Release|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {21BC6EA8-3D10-4CC9-A1B3-9FAD59F7D1BB}.Release|x86.ActiveCfg = Release|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Debug|x86.ActiveCfg = Debug|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Release|Any CPU.Build.0 = Release|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DAF737E1-05B5-4189-A5AA-DAC6233B64D7}.Release|x86.ActiveCfg = Release|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Debug|x86.ActiveCfg = Debug|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Release|Any CPU.Build.0 = Release|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0FFF5BC7-0A4B-4D87-835E-4FAD70937507}.Release|x86.ActiveCfg = Release|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Debug|x86.ActiveCfg = Debug|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Release|Any CPU.Build.0 = Release|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770}.Release|x86.ActiveCfg = Release|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Debug|x86.ActiveCfg = Debug|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Release|Any CPU.Build.0 = Release|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C4FF57CD-F033-40D3-892C-EE5290BA3999}.Release|x86.ActiveCfg = Release|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Debug|x86.ActiveCfg = Debug|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Release|Any CPU.Build.0 = Release|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2544DFBA-7F64-4003-9C36-D8337F770A36}.Release|x86.ActiveCfg = Release|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Debug|Any CPU.Build.0 = Debug|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Debug|x86.ActiveCfg = Debug|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Release|Any CPU.ActiveCfg = Release|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Release|Any CPU.Build.0 = Release|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {302EC82F-A81B-48C5-B653-B5C75D2BD103}.Release|x86.ActiveCfg = Release|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Debug|x86.ActiveCfg = Debug|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Release|Any CPU.Build.0 = Release|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DB42428F-3C2B-4C9E-9B7A-5E43B53D6613}.Release|x86.ActiveCfg = Release|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Debug|x86.ActiveCfg = Debug|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Release|Any CPU.Build.0 = Release|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7A85178F-4ADC-4E4C-BF08-17FC99488A9A}.Release|x86.ActiveCfg = Release|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Debug|x86.ActiveCfg = Debug|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Release|Any CPU.Build.0 = Release|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {02BA5431-EBE0-4E06-A01C-71C1A0D74379}.Release|x86.ActiveCfg = Release|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Debug|x86.ActiveCfg = Debug|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Release|Any CPU.Build.0 = Release|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {437F12A2-6AB5-43BF-86BA-DD62DE17C2A7}.Release|x86.ActiveCfg = Release|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Debug|x86.ActiveCfg = Debug|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Release|Any CPU.Build.0 = Release|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7140725C-8898-4F58-B566-628A80DB4EFA}.Release|x86.ActiveCfg = Release|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Debug|x86.ActiveCfg = Debug|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Release|Any CPU.Build.0 = Release|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9ABD1B44-8EEB-4CA9-9ED2-A6C462DE4FBF}.Release|x86.ActiveCfg = Release|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Debug|x86.ActiveCfg = Debug|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Release|Any CPU.Build.0 = Release|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7169A2C1-F57E-4288-B22D-52394DD2EC06}.Release|x86.ActiveCfg = Release|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Debug|x86.ActiveCfg = Debug|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Release|Any CPU.Build.0 = Release|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B83D86B2-79C0-46AA-B51B-03730256FAAC}.Release|x86.ActiveCfg = Release|Any CPU + {FAC24C3F-68F9-4247-A4B9-21D487E99275}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAC24C3F-68F9-4247-A4B9-21D487E99275}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAC24C3F-68F9-4247-A4B9-21D487E99275}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAC24C3F-68F9-4247-A4B9-21D487E99275}.Release|Any CPU.Build.0 = Release|Any CPU + {549C51A1-222B-4E12-96F1-3AEFF45A7709}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {549C51A1-222B-4E12-96F1-3AEFF45A7709}.Debug|Any CPU.Build.0 = Debug|Any CPU + {549C51A1-222B-4E12-96F1-3AEFF45A7709}.Release|Any CPU.ActiveCfg = Release|Any CPU + {549C51A1-222B-4E12-96F1-3AEFF45A7709}.Release|Any CPU.Build.0 = Release|Any CPU + {052C0817-DB26-4925-8929-8C5E42D148D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {052C0817-DB26-4925-8929-8C5E42D148D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {052C0817-DB26-4925-8929-8C5E42D148D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {052C0817-DB26-4925-8929-8C5E42D148D5}.Release|Any CPU.Build.0 = Release|Any CPU + {4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Release|Any CPU.Build.0 = Release|Any CPU + {BE401F7B-8611-4A1E-AEAA-5CB700128C16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE401F7B-8611-4A1E-AEAA-5CB700128C16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE401F7B-8611-4A1E-AEAA-5CB700128C16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE401F7B-8611-4A1E-AEAA-5CB700128C16}.Release|Any CPU.Build.0 = Release|Any CPU + {DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Release|Any CPU.Build.0 = Release|Any CPU + {196928F0-7052-4585-90E8-817BD720F5E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {196928F0-7052-4585-90E8-817BD720F5E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {196928F0-7052-4585-90E8-817BD720F5E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {196928F0-7052-4585-90E8-817BD720F5E3}.Release|Any CPU.Build.0 = Release|Any CPU + {8A74F0B6-188F-45D2-8A4B-51E4F211805A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A74F0B6-188F-45D2-8A4B-51E4F211805A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A74F0B6-188F-45D2-8A4B-51E4F211805A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A74F0B6-188F-45D2-8A4B-51E4F211805A}.Release|Any CPU.Build.0 = Release|Any CPU + {39D3EEB6-9C05-4F4A-8C01-7B209742A7EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39D3EEB6-9C05-4F4A-8C01-7B209742A7EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39D3EEB6-9C05-4F4A-8C01-7B209742A7EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39D3EEB6-9C05-4F4A-8C01-7B209742A7EB}.Release|Any CPU.Build.0 = Release|Any CPU + {F017075A-2969-4A8E-8971-26F154EB420F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F017075A-2969-4A8E-8971-26F154EB420F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F017075A-2969-4A8E-8971-26F154EB420F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F017075A-2969-4A8E-8971-26F154EB420F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {FAC24C3F-68F9-4247-A4B9-21D487E99275} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {549C51A1-222B-4E12-96F1-3AEFF45A7709} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {052C0817-DB26-4925-8929-8C5E42D148D5} = {568BD46C-1C65-4D44-870C-12CD72563262} + {4E409F8F-CFBB-4332-8B0A-FD5A283051FD} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {BE401F7B-8611-4A1E-AEAA-5CB700128C16} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A} = {568BD46C-1C65-4D44-870C-12CD72563262} + {196928F0-7052-4585-90E8-817BD720F5E3} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {8A74F0B6-188F-45D2-8A4B-51E4F211805A} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {39D3EEB6-9C05-4F4A-8C01-7B209742A7EB} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB} + {F017075A-2969-4A8E-8971-26F154EB420F} = {568BD46C-1C65-4D44-870C-12CD72563262} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {928A4226-96F3-409A-8A83-9E7444488710} + EndGlobalSection EndGlobal diff --git a/Dapper.sln.DotSettings b/Dapper.sln.DotSettings new file mode 100644 index 000000000..c4eeb5921 --- /dev/null +++ b/Dapper.sln.DotSettings @@ -0,0 +1,5 @@ + + CE + SQ + SQL + TVP \ No newline at end of file diff --git a/Dapper/CommandDefinition.cs b/Dapper/CommandDefinition.cs new file mode 100644 index 000000000..110cd5b2b --- /dev/null +++ b/Dapper/CommandDefinition.cs @@ -0,0 +1,185 @@ +using System; +using System.Data; +using System.Reflection; +using System.Reflection.Emit; +using System.Threading; + +namespace Dapper +{ + /// + /// Represents the key aspects of a sql operation + /// + public struct CommandDefinition + { + internal static CommandDefinition ForCallback(object parameters) + { + if (parameters is DynamicParameters) + { + return new CommandDefinition(parameters); + } + else + { + return default(CommandDefinition); + } + } + + internal void OnCompleted() + { + (Parameters as SqlMapper.IParameterCallbacks)?.OnCompleted(); + } + + /// + /// The command (sql or a stored-procedure name) to execute + /// + public string CommandText { get; } + + /// + /// The parameters associated with the command + /// + public object Parameters { get; } + + /// + /// The active transaction for the command + /// + public IDbTransaction Transaction { get; } + + /// + /// The effective timeout for the command + /// + public int? CommandTimeout { get; } + + /// + /// The type of command that the command-text represents + /// + public CommandType? CommandType { get; } + + /// + /// Should data be buffered before returning? + /// + public bool Buffered => (Flags & CommandFlags.Buffered) != 0; + + /// + /// Should the plan for this query be cached? + /// + internal bool AddToCache => (Flags & CommandFlags.NoCache) == 0; + + /// + /// Additional state flags against this command + /// + public CommandFlags Flags { get; } + + /// + /// Can async queries be pipelined? + /// + public bool Pipelined => (Flags & CommandFlags.Pipelined) != 0; + + /// + /// Initialize the command definition + /// + /// The text for this command. + /// The parameters for this command. + /// The transaction for this command to participate in. + /// The timeout (in seconds) for this command. + /// The for this command. + /// The behavior flags for this command. + /// The cancellation token for this command. + public CommandDefinition(string commandText, object parameters = null, IDbTransaction transaction = null, int? commandTimeout = null, + CommandType? commandType = null, CommandFlags flags = CommandFlags.Buffered + , CancellationToken cancellationToken = default(CancellationToken) + ) + { + CommandText = commandText; + Parameters = parameters; + Transaction = transaction; + CommandTimeout = commandTimeout; + CommandType = commandType; + Flags = flags; + CancellationToken = cancellationToken; + } + + private CommandDefinition(object parameters) : this() + { + Parameters = parameters; + } + + /// + /// For asynchronous operations, the cancellation-token + /// + public CancellationToken CancellationToken { get; } + + internal IDbCommand SetupCommand(IDbConnection cnn, Action paramReader) + { + var cmd = cnn.CreateCommand(); + var init = GetInit(cmd.GetType()); + init?.Invoke(cmd); + if (Transaction != null) + cmd.Transaction = Transaction; + cmd.CommandText = CommandText; + if (CommandTimeout.HasValue) + { + cmd.CommandTimeout = CommandTimeout.Value; + } + else if (SqlMapper.Settings.CommandTimeout.HasValue) + { + cmd.CommandTimeout = SqlMapper.Settings.CommandTimeout.Value; + } + if (CommandType.HasValue) + cmd.CommandType = CommandType.Value; + paramReader?.Invoke(cmd, Parameters); + return cmd; + } + + private static SqlMapper.Link> commandInitCache; + + private static Action GetInit(Type commandType) + { + if (commandType == null) + return null; // GIGO + if (SqlMapper.Link>.TryGet(commandInitCache, commandType, out Action action)) + { + return action; + } + var bindByName = GetBasicPropertySetter(commandType, "BindByName", typeof(bool)); + var initialLongFetchSize = GetBasicPropertySetter(commandType, "InitialLONGFetchSize", typeof(int)); + + action = null; + if (bindByName != null || initialLongFetchSize != null) + { + var method = new DynamicMethod(commandType.Name + "_init", null, new Type[] { typeof(IDbCommand) }); + var il = method.GetILGenerator(); + + if (bindByName != null) + { + // .BindByName = true + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Castclass, commandType); + il.Emit(OpCodes.Ldc_I4_1); + il.EmitCall(OpCodes.Callvirt, bindByName, null); + } + if (initialLongFetchSize != null) + { + // .InitialLONGFetchSize = -1 + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Castclass, commandType); + il.Emit(OpCodes.Ldc_I4_M1); + il.EmitCall(OpCodes.Callvirt, initialLongFetchSize, null); + } + il.Emit(OpCodes.Ret); + action = (Action)method.CreateDelegate(typeof(Action)); + } + // cache it + SqlMapper.Link>.TryAdd(ref commandInitCache, commandType, ref action); + return action; + } + + private static MethodInfo GetBasicPropertySetter(Type declaringType, string name, Type expectedType) + { + var prop = declaringType.GetProperty(name, BindingFlags.Public | BindingFlags.Instance); + if (prop?.CanWrite == true && prop.PropertyType == expectedType && prop.GetIndexParameters().Length == 0) + { + return prop.GetSetMethod(); + } + return null; + } + } +} diff --git a/Dapper/CommandFlags.cs b/Dapper/CommandFlags.cs new file mode 100644 index 000000000..45cd45d3e --- /dev/null +++ b/Dapper/CommandFlags.cs @@ -0,0 +1,28 @@ +using System; + +namespace Dapper +{ + /// + /// Additional state flags that control command behaviour + /// + [Flags] + public enum CommandFlags + { + /// + /// No additional flags + /// + None = 0, + /// + /// Should data be buffered before returning? + /// + Buffered = 1, + /// + /// Can async queries be pipelined? + /// + Pipelined = 2, + /// + /// Should the plan cache be bypassed? + /// + NoCache = 4, + } +} diff --git a/Dapper/CustomPropertyTypeMap.cs b/Dapper/CustomPropertyTypeMap.cs new file mode 100644 index 000000000..9228db2b0 --- /dev/null +++ b/Dapper/CustomPropertyTypeMap.cs @@ -0,0 +1,62 @@ +using System; +using System.Reflection; + +namespace Dapper +{ + /// + /// Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping) + /// + public sealed class CustomPropertyTypeMap : SqlMapper.ITypeMap + { + private readonly Type _type; + private readonly Func _propertySelector; + + /// + /// Creates custom property mapping + /// + /// Target entity type + /// Property selector based on target type and DataReader column name + public CustomPropertyTypeMap(Type type, Func propertySelector) + { + _type = type ?? throw new ArgumentNullException(nameof(type)); + _propertySelector = propertySelector ?? throw new ArgumentNullException(nameof(propertySelector)); + } + + /// + /// Always returns default constructor + /// + /// DataReader column names + /// DataReader column types + /// Default constructor + public ConstructorInfo FindConstructor(string[] names, Type[] types) => + _type.GetConstructor(new Type[0]); + + /// + /// Always returns null + /// + /// + public ConstructorInfo FindExplicitConstructor() => null; + + /// + /// Not implemented as far as default constructor used for all cases + /// + /// + /// + /// + public SqlMapper.IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName) + { + throw new NotSupportedException(); + } + + /// + /// Returns property based on selector strategy + /// + /// DataReader column name + /// Poperty member map + public SqlMapper.IMemberMap GetMember(string columnName) + { + var prop = _propertySelector(_type, columnName); + return prop != null ? new SimpleMemberMap(columnName, prop) : null; + } + } +} diff --git a/Dapper/Dapper.csproj b/Dapper/Dapper.csproj new file mode 100644 index 000000000..c62cb33ad --- /dev/null +++ b/Dapper/Dapper.csproj @@ -0,0 +1,30 @@ + + + Dapper + orm;sql;micro-orm + Dapper + A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc.. + Sam Saffron;Marc Gravell;Nick Craver + net451;netstandard1.3;netstandard2.0 + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dapper/Dapper.xproj b/Dapper/Dapper.xproj deleted file mode 100644 index f33220d29..000000000 --- a/Dapper/Dapper.xproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 088d8cc4-e71e-44b6-9b87-4060b043983d - Dapper - ..\artifacts\obj\$(MSBuildProjectName) - ..\artifacts\bin\$(MSBuildProjectName)\ - - - Dapper - - - Dapper - - - 2.0 - - - True - - - True - - - \ No newline at end of file diff --git a/Dapper/DataTableHandler.cs b/Dapper/DataTableHandler.cs new file mode 100644 index 000000000..f9b2b5fe6 --- /dev/null +++ b/Dapper/DataTableHandler.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +#if !NETSTANDARD1_3 +namespace Dapper +{ + internal sealed class DataTableHandler : SqlMapper.ITypeHandler + { + public object Parse(Type destinationType, object value) + { + throw new NotImplementedException(); + } + + public void SetValue(IDbDataParameter parameter, object value) + { + TableValuedParameter.Set(parameter, value as DataTable, null); + } + } +} +#endif \ No newline at end of file diff --git a/Dapper/DbString.cs b/Dapper/DbString.cs new file mode 100644 index 000000000..58a7b80c9 --- /dev/null +++ b/Dapper/DbString.cs @@ -0,0 +1,87 @@ +using System; +using System.Data; + +namespace Dapper +{ + /// + /// 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 + /// + public sealed class DbString : SqlMapper.ICustomQueryParameter + { + /// + /// Default value for IsAnsi. + /// + public static bool IsAnsiDefault { get; set; } + + /// + /// 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. + /// + public const int DefaultLength = 4000; + + /// + /// Create a new DbString + /// + public DbString() + { + Length = -1; + IsAnsi = IsAnsiDefault; + } + /// + /// Ansi vs Unicode + /// + public bool IsAnsi { get; set; } + /// + /// Fixed length + /// + public bool IsFixedLength { get; set; } + /// + /// Length of the string -1 for max + /// + public int Length { get; set; } + /// + /// The value of the string + /// + public string Value { get; set; } + /// + /// Add the parameter to the command... internal use only + /// + /// + /// + public void AddParameter(IDbCommand command, string name) + { + if (IsFixedLength && Length == -1) + { + throw new InvalidOperationException("If specifying IsFixedLength, a Length must also be specified"); + } + bool add = !command.Parameters.Contains(name); + IDbDataParameter param; + if (add) + { + param = command.CreateParameter(); + param.ParameterName = name; + } + else + { + param = (IDbDataParameter)command.Parameters[name]; + } +#pragma warning disable 0618 + param.Value = SqlMapper.SanitizeParameterValue(Value); +#pragma warning restore 0618 + if (Length == -1 && Value != null && Value.Length <= DefaultLength) + { + param.Size = DefaultLength; + } + else + { + param.Size = Length; + } + param.DbType = IsAnsi ? (IsFixedLength ? DbType.AnsiStringFixedLength : DbType.AnsiString) : (IsFixedLength ? DbType.StringFixedLength : DbType.String); + if (add) + { + command.Parameters.Add(param); + } + } + } +} diff --git a/Dapper/DefaultTypeMap.cs b/Dapper/DefaultTypeMap.cs new file mode 100644 index 000000000..88859a08b --- /dev/null +++ b/Dapper/DefaultTypeMap.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace Dapper +{ + /// + /// Represents default type mapping strategy used by Dapper + /// + public sealed class DefaultTypeMap : SqlMapper.ITypeMap + { + private readonly List _fields; + private readonly Type _type; + + /// + /// Creates default type map + /// + /// Entity type + public DefaultTypeMap(Type type) + { + if (type == null) + throw new ArgumentNullException(nameof(type)); + + _fields = GetSettableFields(type); + Properties = GetSettableProps(type); + _type = type; + } +#if NETSTANDARD1_3 + private static bool IsParameterMatch(ParameterInfo[] x, ParameterInfo[] y) + { + if (ReferenceEquals(x, y)) return true; + if (x == null || y == null) return false; + if (x.Length != y.Length) return false; + for (int i = 0; i < x.Length; i++) + if (x[i].ParameterType != y[i].ParameterType) return false; + return true; + } +#endif + internal static MethodInfo GetPropertySetter(PropertyInfo propertyInfo, Type type) + { + if (propertyInfo.DeclaringType == type) return propertyInfo.GetSetMethod(true); +#if NETSTANDARD1_3 + return propertyInfo.DeclaringType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) + .Single(x => x.Name == propertyInfo.Name + && x.PropertyType == propertyInfo.PropertyType + && IsParameterMatch(x.GetIndexParameters(), propertyInfo.GetIndexParameters()) + ).GetSetMethod(true); +#else + return propertyInfo.DeclaringType.GetProperty( + propertyInfo.Name, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + Type.DefaultBinder, + propertyInfo.PropertyType, + propertyInfo.GetIndexParameters().Select(p => p.ParameterType).ToArray(), + null).GetSetMethod(true); +#endif + } + + internal static List GetSettableProps(Type t) + { + return t + .GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) + .Where(p => GetPropertySetter(p, t) != null) + .ToList(); + } + + internal static List GetSettableFields(Type t) + { + return t.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).ToList(); + } + + /// + /// Finds best constructor + /// + /// DataReader column names + /// DataReader column types + /// Matching constructor or default one + public ConstructorInfo FindConstructor(string[] names, Type[] types) + { + var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + foreach (ConstructorInfo ctor in constructors.OrderBy(c => c.IsPublic ? 0 : (c.IsPrivate ? 2 : 1)).ThenBy(c => c.GetParameters().Length)) + { + ParameterInfo[] ctorParameters = ctor.GetParameters(); + if (ctorParameters.Length == 0) + return ctor; + + if (ctorParameters.Length != types.Length) + continue; + + int i = 0; + for (; i < ctorParameters.Length; i++) + { + if (!string.Equals(ctorParameters[i].Name, names[i], StringComparison.OrdinalIgnoreCase)) + break; + if (types[i] == typeof(byte[]) && ctorParameters[i].ParameterType.FullName == SqlMapper.LinqBinary) + continue; + var unboxedType = Nullable.GetUnderlyingType(ctorParameters[i].ParameterType) ?? ctorParameters[i].ParameterType; + if ((unboxedType != types[i] && !SqlMapper.HasTypeHandler(unboxedType)) + && !(unboxedType.IsEnum() && Enum.GetUnderlyingType(unboxedType) == types[i]) + && !(unboxedType == typeof(char) && types[i] == typeof(string)) + && !(unboxedType.IsEnum() && types[i] == typeof(string))) + { + break; + } + } + + if (i == ctorParameters.Length) + return ctor; + } + + return null; + } + + /// + /// Returns the constructor, if any, that has the ExplicitConstructorAttribute on it. + /// + public ConstructorInfo FindExplicitConstructor() + { + var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); +#if NETSTANDARD1_3 + var withAttr = constructors.Where(c => c.CustomAttributes.Any(x => x.AttributeType == typeof(ExplicitConstructorAttribute))).ToList(); +#else + var withAttr = constructors.Where(c => c.GetCustomAttributes(typeof(ExplicitConstructorAttribute), true).Length > 0).ToList(); +#endif + + if (withAttr.Count == 1) + { + return withAttr[0]; + } + + return null; + } + + /// + /// Gets mapping for constructor parameter + /// + /// Constructor to resolve + /// DataReader column name + /// Mapping implementation + public SqlMapper.IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName) + { + var parameters = constructor.GetParameters(); + + return new SimpleMemberMap(columnName, parameters.FirstOrDefault(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase))); + } + + /// + /// Gets member mapping for column + /// + /// DataReader column name + /// Mapping implementation + public SqlMapper.IMemberMap GetMember(string columnName) + { + var property = Properties.Find(p => string.Equals(p.Name, columnName, StringComparison.Ordinal)) + ?? Properties.Find(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase)); + + if (property == null && MatchNamesWithUnderscores) + { + property = Properties.Find(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.Ordinal)) + ?? Properties.Find(p => string.Equals(p.Name, columnName.Replace("_", ""), StringComparison.OrdinalIgnoreCase)); + } + + if (property != null) + return new SimpleMemberMap(columnName, property); + + // roslyn automatically implemented properties, in particular for get-only properties: <{Name}>k__BackingField; + var backingFieldName = "<" + columnName + ">k__BackingField"; + + // preference order is: + // exact match over underscre match, exact case over wrong case, backing fields over regular fields, match-inc-underscores over match-exc-underscores + var field = _fields.Find(p => string.Equals(p.Name, columnName, StringComparison.Ordinal)) + ?? _fields.Find(p => string.Equals(p.Name, backingFieldName, StringComparison.Ordinal)) + ?? _fields.Find(p => string.Equals(p.Name, columnName, StringComparison.OrdinalIgnoreCase)) + ?? _fields.Find(p => string.Equals(p.Name, backingFieldName, StringComparison.OrdinalIgnoreCase)); + + if (field == null && MatchNamesWithUnderscores) + { + var effectiveColumnName = columnName.Replace("_", ""); + backingFieldName = "<" + effectiveColumnName + ">k__BackingField"; + + field = _fields.Find(p => string.Equals(p.Name, effectiveColumnName, StringComparison.Ordinal)) + ?? _fields.Find(p => string.Equals(p.Name, backingFieldName, StringComparison.Ordinal)) + ?? _fields.Find(p => string.Equals(p.Name, effectiveColumnName, StringComparison.OrdinalIgnoreCase)) + ?? _fields.Find(p => string.Equals(p.Name, backingFieldName, StringComparison.OrdinalIgnoreCase)); + } + + if (field != null) + return new SimpleMemberMap(columnName, field); + + return null; + } + /// + /// Should column names like User_Id be allowed to match properties/fields like UserId ? + /// + public static bool MatchNamesWithUnderscores { get; set; } + + /// + /// The settable properties for this typemap + /// + public List Properties { get; } + } +} diff --git a/Dapper/DynamicParameters.CachedOutputSetters.cs b/Dapper/DynamicParameters.CachedOutputSetters.cs new file mode 100644 index 000000000..5a5b23e76 --- /dev/null +++ b/Dapper/DynamicParameters.CachedOutputSetters.cs @@ -0,0 +1,16 @@ +using System.Collections; + +namespace Dapper +{ + public partial class DynamicParameters + { + // The type here is used to differentiate the cache by type via generics + // ReSharper disable once UnusedTypeParameter + internal static class CachedOutputSetters + { + // Intentional, abusing generics to get our cache splits + // ReSharper disable once StaticMemberInGenericType + public static readonly Hashtable Cache = new Hashtable(); + } + } +} diff --git a/Dapper/DynamicParameters.ParamInfo.cs b/Dapper/DynamicParameters.ParamInfo.cs new file mode 100644 index 000000000..67c9c117e --- /dev/null +++ b/Dapper/DynamicParameters.ParamInfo.cs @@ -0,0 +1,24 @@ +using System; +using System.Data; + +namespace Dapper +{ + public partial class DynamicParameters + { + private sealed class ParamInfo + { + public string Name { get; set; } + public object Value { get; set; } + public ParameterDirection ParameterDirection { get; set; } + public DbType? DbType { get; set; } + public int? Size { get; set; } + public IDbDataParameter AttachedParam { get; set; } + internal Action OutputCallback { get; set; } + internal object OutputTarget { get; set; } + internal bool CameFromTemplate { get; set; } + + public byte? Precision { get; set; } + public byte? Scale { get; set; } + } + } +} diff --git a/Dapper/DynamicParameters.cs b/Dapper/DynamicParameters.cs new file mode 100644 index 000000000..83038656c --- /dev/null +++ b/Dapper/DynamicParameters.cs @@ -0,0 +1,504 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Reflection.Emit; + +#if NETSTANDARD1_3 +using ApplicationException = System.InvalidOperationException; +#endif + +namespace Dapper +{ + /// + /// A bag of parameters that can be passed to the Dapper Query and Execute methods + /// + public partial class DynamicParameters : SqlMapper.IDynamicParameters, SqlMapper.IParameterLookup, SqlMapper.IParameterCallbacks + { + internal const DbType EnumerableMultiParameter = (DbType)(-1); + private static readonly Dictionary> paramReaderCache = new Dictionary>(); + private readonly Dictionary parameters = new Dictionary(); + private List templates; + + object SqlMapper.IParameterLookup.this[string name] => + parameters.TryGetValue(name, out ParamInfo param) ? param.Value : null; + + /// + /// construct a dynamic parameter bag + /// + public DynamicParameters() + { + RemoveUnused = true; + } + + /// + /// construct a dynamic parameter bag + /// + /// can be an anonymous type or a DynamicParameters bag + public DynamicParameters(object template) + { + RemoveUnused = true; + AddDynamicParams(template); + } + + /// + /// 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 + /// + /// + public void AddDynamicParams(object param) + { + var obj = param; + if (obj != null) + { + var subDynamic = obj as DynamicParameters; + if (subDynamic == null) + { + var dictionary = obj as IEnumerable>; + if (dictionary == null) + { + templates = templates ?? new List(); + templates.Add(obj); + } + else + { + foreach (var kvp in dictionary) + { + Add(kvp.Key, kvp.Value, null, null, null); + } + } + } + else + { + if (subDynamic.parameters != null) + { + foreach (var kvp in subDynamic.parameters) + { + parameters.Add(kvp.Key, kvp.Value); + } + } + + if (subDynamic.templates != null) + { + templates = templates ?? new List(); + foreach (var t in subDynamic.templates) + { + templates.Add(t); + } + } + } + } + } + + /// + /// Add a parameter to this dynamic parameter list. + /// + /// The name of the parameter. + /// The value of the parameter. + /// The type of the parameter. + /// The in or out direction of the parameter. + /// The size of the parameter. + public void Add(string name, object value, DbType? dbType, ParameterDirection? direction, int? size) + { + parameters[Clean(name)] = new ParamInfo + { + Name = name, + Value = value, + ParameterDirection = direction ?? ParameterDirection.Input, + DbType = dbType, + Size = size + }; + } + + /// + /// Add a parameter to this dynamic parameter list. + /// + /// The name of the parameter. + /// The value of the parameter. + /// The type of the parameter. + /// The in or out direction of the parameter. + /// The size of the parameter. + /// The precision of the parameter. + /// The scale of the parameter. + public void Add(string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null, byte? precision = null, byte? scale = null) + { + parameters[Clean(name)] = new ParamInfo + { + Name = name, + Value = value, + ParameterDirection = direction ?? ParameterDirection.Input, + DbType = dbType, + Size = size, + Precision = precision, + Scale = scale + }; + } + + private static string Clean(string name) + { + if (!string.IsNullOrEmpty(name)) + { + switch (name[0]) + { + case '@': + case ':': + case '?': + return name.Substring(1); + } + } + return name; + } + + void SqlMapper.IDynamicParameters.AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + AddParameters(command, identity); + } + + /// + /// If true, the command-text is inspected and only values that are clearly used are included on the connection + /// + public bool RemoveUnused { get; set; } + + /// + /// Add all the parameters needed to the command just before it executes + /// + /// The raw command prior to execution + /// Information about the query + protected void AddParameters(IDbCommand command, SqlMapper.Identity identity) + { + var literals = SqlMapper.GetLiteralTokens(identity.sql); + + if (templates != null) + { + foreach (var template in templates) + { + var newIdent = identity.ForDynamicParameters(template.GetType()); + Action appender; + + lock (paramReaderCache) + { + if (!paramReaderCache.TryGetValue(newIdent, out appender)) + { + appender = SqlMapper.CreateParamInfoGenerator(newIdent, true, RemoveUnused, literals); + paramReaderCache[newIdent] = appender; + } + } + + appender(command, template); + } + + // The parameters were added to the command, but not the + // DynamicParameters until now. + foreach (IDbDataParameter param in command.Parameters) + { + // If someone makes a DynamicParameters with a template, + // then explicitly adds a parameter of a matching name, + // it will already exist in 'parameters'. + if (!parameters.ContainsKey(param.ParameterName)) + { + parameters.Add(param.ParameterName, new ParamInfo + { + AttachedParam = param, + CameFromTemplate = true, + DbType = param.DbType, + Name = param.ParameterName, + ParameterDirection = param.Direction, + Size = param.Size, + Value = param.Value + }); + } + } + + // Now that the parameters are added to the command, let's place our output callbacks + var tmp = outputCallbacks; + if (tmp != null) + { + foreach (var generator in tmp) + { + generator(); + } + } + } + + foreach (var param in parameters.Values) + { + if (param.CameFromTemplate) continue; + + var dbType = param.DbType; + var val = param.Value; + string name = Clean(param.Name); + var isCustomQueryParameter = val is SqlMapper.ICustomQueryParameter; + + SqlMapper.ITypeHandler handler = null; + if (dbType == null && val != null && !isCustomQueryParameter) + { +#pragma warning disable 618 + dbType = SqlMapper.LookupDbType(val.GetType(), name, true, out handler); +#pragma warning disable 618 + } + if (isCustomQueryParameter) + { + ((SqlMapper.ICustomQueryParameter)val).AddParameter(command, name); + } + else if (dbType == EnumerableMultiParameter) + { +#pragma warning disable 612, 618 + SqlMapper.PackListParameters(command, name, val); +#pragma warning restore 612, 618 + } + else + { + bool add = !command.Parameters.Contains(name); + IDbDataParameter p; + if (add) + { + p = command.CreateParameter(); + p.ParameterName = name; + } + else + { + p = (IDbDataParameter)command.Parameters[name]; + } + + p.Direction = param.ParameterDirection; + if (handler == null) + { +#pragma warning disable 0618 + p.Value = SqlMapper.SanitizeParameterValue(val); +#pragma warning restore 0618 + if (dbType != null && p.DbType != dbType) + { + p.DbType = dbType.Value; + } + var s = val as string; + if (s?.Length <= DbString.DefaultLength) + { + p.Size = DbString.DefaultLength; + } + if (param.Size != null) p.Size = param.Size.Value; + if (param.Precision != null) p.Precision = param.Precision.Value; + if (param.Scale != null) p.Scale = param.Scale.Value; + } + else + { + if (dbType != null) p.DbType = dbType.Value; + if (param.Size != null) p.Size = param.Size.Value; + if (param.Precision != null) p.Precision = param.Precision.Value; + if (param.Scale != null) p.Scale = param.Scale.Value; + handler.SetValue(p, val ?? DBNull.Value); + } + + if (add) + { + command.Parameters.Add(p); + } + param.AttachedParam = p; + } + } + + // note: most non-priveleged implementations would use: this.ReplaceLiterals(command); + if (literals.Count != 0) SqlMapper.ReplaceLiterals(this, command, literals); + } + + /// + /// All the names of the param in the bag, use Get to yank them out + /// + public IEnumerable ParameterNames => parameters.Select(p => p.Key); + + /// + /// Get the value of a parameter + /// + /// + /// + /// The value, note DBNull.Value is not returned, instead the value is returned as null + public T Get(string name) + { + var paramInfo = parameters[Clean(name)]; + var attachedParam = paramInfo.AttachedParam; + object val = attachedParam == null ? paramInfo.Value : attachedParam.Value; + if (val == DBNull.Value) + { + if (default(T) != null) + { + throw new ApplicationException("Attempting to cast a DBNull to a non nullable type! Note that out/return parameters will not have updated values until the data stream completes (after the 'foreach' for Query(..., buffered: false), or after the GridReader has been disposed for QueryMultiple)"); + } + return default(T); + } + return (T)val; + } + + /// + /// 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 + public DynamicParameters Output(T target, Expression> expression, DbType? dbType = null, int? size = null) + { + var failMessage = "Expression must be a property/field chain off of a(n) {0} instance"; + failMessage = string.Format(failMessage, typeof(T).Name); + Action @throw = () => throw new InvalidOperationException(failMessage); + + // Is it even a MemberExpression? + var lastMemberAccess = expression.Body as MemberExpression; + + if (lastMemberAccess == null + || (!(lastMemberAccess.Member is PropertyInfo) + && !(lastMemberAccess.Member is FieldInfo))) + { + if (expression.Body.NodeType == ExpressionType.Convert + && expression.Body.Type == typeof(object) + && ((UnaryExpression)expression.Body).Operand is MemberExpression) + { + // It's got to be unboxed + lastMemberAccess = (MemberExpression)((UnaryExpression)expression.Body).Operand; + } + else + { + @throw(); + } + } + + // Does the chain consist of MemberExpressions leading to a ParameterExpression of type T? + MemberExpression diving = lastMemberAccess; + // Retain a list of member names and the member expressions so we can rebuild the chain. + List names = new List(); + List chain = new List(); + + do + { + // Insert the names in the right order so expression + // "Post.Author.Name" becomes parameter "PostAuthorName" + names.Insert(0, diving?.Member.Name); + chain.Insert(0, diving); + + var constant = diving?.Expression as ParameterExpression; + diving = diving?.Expression as MemberExpression; + + if (constant != null && constant.Type == typeof(T)) + { + break; + } + else if (diving == null + || (!(diving.Member is PropertyInfo) + && !(diving.Member is FieldInfo))) + { + @throw(); + } + } + while (diving != null); + + var dynamicParamName = string.Concat(names.ToArray()); + + // Before we get all emitty... + var lookup = string.Join("|", names.ToArray()); + + var cache = CachedOutputSetters.Cache; + var setter = (Action)cache[lookup]; + if (setter != null) goto MAKECALLBACK; + + // Come on let's build a method, let's build it, let's build it now! + var dm = new DynamicMethod("ExpressionParam" + Guid.NewGuid().ToString(), null, new[] { typeof(object), GetType() }, true); + var il = dm.GetILGenerator(); + + il.Emit(OpCodes.Ldarg_0); // [object] + il.Emit(OpCodes.Castclass, typeof(T)); // [T] + + // Count - 1 to skip the last member access + var i = 0; + for (; i < (chain.Count - 1); i++) + { + var member = chain[0].Member; + + if (member is PropertyInfo) + { + var get = ((PropertyInfo)member).GetGetMethod(true); + il.Emit(OpCodes.Callvirt, get); // [Member{i}] + } + else // Else it must be a field! + { + il.Emit(OpCodes.Ldfld, (FieldInfo)member); // [Member{i}] + } + } + + var paramGetter = GetType().GetMethod("Get", new Type[] { typeof(string) }).MakeGenericMethod(lastMemberAccess.Type); + + il.Emit(OpCodes.Ldarg_1); // [target] [DynamicParameters] + il.Emit(OpCodes.Ldstr, dynamicParamName); // [target] [DynamicParameters] [ParamName] + il.Emit(OpCodes.Callvirt, paramGetter); // [target] [value], it's already typed thanks to generic method + + // GET READY + var lastMember = lastMemberAccess.Member; + if (lastMember is PropertyInfo) + { + var set = ((PropertyInfo)lastMember).GetSetMethod(true); + il.Emit(OpCodes.Callvirt, set); // SET + } + else + { + il.Emit(OpCodes.Stfld, (FieldInfo)lastMember); // SET + } + + il.Emit(OpCodes.Ret); // GO + + setter = (Action)dm.CreateDelegate(typeof(Action)); + lock (cache) + { + cache[lookup] = setter; + } + + // Queue the preparation to be fired off when adding parameters to the DbCommand + MAKECALLBACK: + (outputCallbacks ?? (outputCallbacks = new List())).Add(() => + { + // Finally, prep the parameter and attach the callback to it + var targetMemberType = lastMemberAccess?.Type; + int sizeToSet = (!size.HasValue && targetMemberType == typeof(string)) ? DbString.DefaultLength : size ?? 0; + + if (parameters.TryGetValue(dynamicParamName, out ParamInfo parameter)) + { + parameter.ParameterDirection = parameter.AttachedParam.Direction = ParameterDirection.InputOutput; + + if (parameter.AttachedParam.Size == 0) + { + parameter.Size = parameter.AttachedParam.Size = sizeToSet; + } + } + else + { + dbType = (!dbType.HasValue) +#pragma warning disable 618 + ? SqlMapper.LookupDbType(targetMemberType, targetMemberType?.Name, true, out SqlMapper.ITypeHandler handler) +#pragma warning restore 618 + : dbType; + + // CameFromTemplate property would not apply here because this new param + // Still needs to be added to the command + Add(dynamicParamName, expression.Compile().Invoke(target), null, ParameterDirection.InputOutput, sizeToSet); + } + + parameter = parameters[dynamicParamName]; + parameter.OutputCallback = setter; + parameter.OutputTarget = target; + }); + + return this; + } + + private List outputCallbacks; + + void SqlMapper.IParameterCallbacks.OnCompleted() + { + foreach (var param in from p in parameters select p.Value) + { + param.OutputCallback?.Invoke(param.OutputTarget, this); + } + } + } +} diff --git a/Dapper/ExplicitConstructorAttribute.cs b/Dapper/ExplicitConstructorAttribute.cs new file mode 100644 index 000000000..d801af345 --- /dev/null +++ b/Dapper/ExplicitConstructorAttribute.cs @@ -0,0 +1,12 @@ +using System; + +namespace Dapper +{ + /// + /// Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters + /// + [AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false)] + public sealed class ExplicitConstructorAttribute : Attribute + { + } +} diff --git a/Dapper/FeatureSupport.cs b/Dapper/FeatureSupport.cs new file mode 100644 index 000000000..402d86e48 --- /dev/null +++ b/Dapper/FeatureSupport.cs @@ -0,0 +1,36 @@ +using System; +using System.Data; + +namespace Dapper +{ + /// + /// Handles variances in features per DBMS + /// + internal class FeatureSupport + { + private static readonly FeatureSupport + Default = new FeatureSupport(false), + Postgres = new FeatureSupport(true); + + /// + /// Gets the feature set based on the passed connection + /// + /// The connection to get supported features for. + public static FeatureSupport Get(IDbConnection connection) + { + string name = connection?.GetType().Name; + if (string.Equals(name, "npgsqlconnection", StringComparison.OrdinalIgnoreCase)) return Postgres; + return Default; + } + + private FeatureSupport(bool arrays) + { + Arrays = arrays; + } + + /// + /// True if the db supports array columns e.g. Postgresql + /// + public bool Arrays { get; } + } +} diff --git a/Dapper/SimpleMemberMap.cs b/Dapper/SimpleMemberMap.cs new file mode 100644 index 000000000..6c9ede863 --- /dev/null +++ b/Dapper/SimpleMemberMap.cs @@ -0,0 +1,69 @@ +using System; +using System.Reflection; + +namespace Dapper +{ + /// + /// Represents simple member map for one of target parameter or property or field to source DataReader column + /// + internal sealed class SimpleMemberMap : SqlMapper.IMemberMap + { + /// + /// Creates instance for simple property mapping + /// + /// DataReader column name + /// Target property + public SimpleMemberMap(string columnName, PropertyInfo property) + { + ColumnName = columnName ?? throw new ArgumentNullException(nameof(columnName)); + Property = property ?? throw new ArgumentNullException(nameof(property)); + } + + /// + /// Creates instance for simple field mapping + /// + /// DataReader column name + /// Target property + public SimpleMemberMap(string columnName, FieldInfo field) + { + ColumnName = columnName ?? throw new ArgumentNullException(nameof(columnName)); + Field = field ?? throw new ArgumentNullException(nameof(field)); + } + + /// + /// Creates instance for simple constructor parameter mapping + /// + /// DataReader column name + /// Target constructor parameter + public SimpleMemberMap(string columnName, ParameterInfo parameter) + { + ColumnName = columnName ?? throw new ArgumentNullException(nameof(columnName)); + Parameter = parameter ?? throw new ArgumentNullException(nameof(parameter)); + } + + /// + /// DataReader column name + /// + public string ColumnName { get; } + + /// + /// Target member type + /// + public Type MemberType => Field?.FieldType ?? Property?.PropertyType ?? Parameter?.ParameterType; + + /// + /// Target property + /// + public PropertyInfo Property { get; } + + /// + /// Target field + /// + public FieldInfo Field { get; } + + /// + /// Target constructor parameter + /// + public ParameterInfo Parameter { get; } + } +} diff --git a/Dapper/SqlDataRecordHandler.cs b/Dapper/SqlDataRecordHandler.cs new file mode 100644 index 000000000..301aa36ab --- /dev/null +++ b/Dapper/SqlDataRecordHandler.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Data; + +namespace Dapper +{ + internal sealed class SqlDataRecordHandler : SqlMapper.ITypeHandler + { + public object Parse(Type destinationType, object value) + { + throw new NotSupportedException(); + } + + public void SetValue(IDbDataParameter parameter, object value) + { + SqlDataRecordListTVPParameter.Set(parameter, value as IEnumerable, null); + } + } +} diff --git a/Dapper/SqlDataRecordListTVPParameter.cs b/Dapper/SqlDataRecordListTVPParameter.cs new file mode 100644 index 000000000..8e8384705 --- /dev/null +++ b/Dapper/SqlDataRecordListTVPParameter.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Data; + +namespace Dapper +{ + /// + /// Used to pass a IEnumerable<SqlDataRecord> as a SqlDataRecordListTVPParameter + /// + internal sealed class SqlDataRecordListTVPParameter : SqlMapper.ICustomQueryParameter + { + private readonly IEnumerable data; + private readonly string typeName; + /// + /// Create a new instance of . + /// + /// The data records to convert into TVPs. + /// The parameter type name. + public SqlDataRecordListTVPParameter(IEnumerable data, string typeName) + { + this.data = data; + this.typeName = typeName; + } + + void SqlMapper.ICustomQueryParameter.AddParameter(IDbCommand command, string name) + { + var param = command.CreateParameter(); + param.ParameterName = name; + Set(param, data, typeName); + command.Parameters.Add(param); + } + + internal static void Set(IDbDataParameter parameter, IEnumerable data, string typeName) + { + parameter.Value = (object)data ?? DBNull.Value; + if (parameter is System.Data.SqlClient.SqlParameter sqlParam) + { + sqlParam.SqlDbType = SqlDbType.Structured; + sqlParam.TypeName = typeName; + } + } + } +} diff --git a/Dapper/SqlMapper.Async.cs b/Dapper/SqlMapper.Async.cs new file mode 100644 index 000000000..c25f06cfe --- /dev/null +++ b/Dapper/SqlMapper.Async.cs @@ -0,0 +1,1228 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Globalization; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task> QueryAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryAsync(cnn, typeof(DapperRow), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The command used to query on this connection. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command) => + QueryAsync(cnn, typeof(DapperRow), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The command used to query on this connection. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task QueryFirstAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.First, typeof(DapperRow), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The command used to query on this connection. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.FirstOrDefault, typeof(DapperRow), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The command used to query on this connection. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task QuerySingleAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.Single, typeof(DapperRow), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The command used to query on this connection. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.SingleOrDefault, typeof(DapperRow), command); + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The type of results to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// A sequence of data of ; 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). + /// + public static Task> QueryAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryAsync(cnn, typeof(T), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QueryFirstAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.First, typeof(T), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.FirstOrDefault, typeof(T), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QuerySingleAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.Single, typeof(T), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.SingleOrDefault, typeof(T), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QueryFirstAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.First, typeof(DapperRow), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.FirstOrDefault, typeof(DapperRow), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QuerySingleAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.Single, typeof(DapperRow), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryRowAsync(cnn, Row.SingleOrDefault, typeof(DapperRow), new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + public static Task> QueryAsync(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return QueryAsync(cnn, type, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); + } + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + public static Task QueryFirstAsync(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return QueryRowAsync(cnn, Row.First, type, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + } + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return QueryRowAsync(cnn, Row.FirstOrDefault, type, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + } + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + public static Task QuerySingleAsync(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return QueryRowAsync(cnn, Row.Single, type, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + } + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return QueryRowAsync(cnn, Row.SingleOrDefault, type, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None, default(CancellationToken))); + } + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// A sequence of data of ; 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). + /// + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command) => + QueryAsync(cnn, typeof(T), command); + + /// + /// Execute a query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The command used to query on this connection. + public static Task> QueryAsync(this IDbConnection cnn, Type type, CommandDefinition command) => + QueryAsync(cnn, type, command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The command used to query on this connection. + public static Task QueryFirstAsync(this IDbConnection cnn, Type type, CommandDefinition command) => + QueryRowAsync(cnn, Row.First, type, command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The command used to query on this connection. + public static Task QueryFirstAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.First, typeof(T), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The command used to query on this connection. + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, Type type, CommandDefinition command) => + QueryRowAsync(cnn, Row.FirstOrDefault, type, command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The command used to query on this connection. + public static Task QueryFirstOrDefaultAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.FirstOrDefault, typeof(T), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The command used to query on this connection. + public static Task QuerySingleAsync(this IDbConnection cnn, Type type, CommandDefinition command) => + QueryRowAsync(cnn, Row.Single, type, command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The command used to query on this connection. + public static Task QuerySingleAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.Single, typeof(T), command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The type to return. + /// The command used to query on this connection. + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, Type type, CommandDefinition command) => + QueryRowAsync(cnn, Row.SingleOrDefault, type, command); + + /// + /// Execute a single-row query asynchronously using .NET 4.5 Task. + /// + /// The type to return. + /// The connection to query on. + /// The command used to query on this connection. + public static Task QuerySingleOrDefaultAsync(this IDbConnection cnn, CommandDefinition command) => + QueryRowAsync(cnn, Row.SingleOrDefault, typeof(T), command); + + private static Task ExecuteReaderWithFlagsFallbackAsync(DbCommand cmd, bool wasClosed, CommandBehavior behavior, CancellationToken cancellationToken) + { + var task = cmd.ExecuteReaderAsync(GetBehavior(wasClosed, behavior), cancellationToken); + if (task.Status == TaskStatus.Faulted && Settings.DisableCommandBehaviorOptimizations(behavior, task.Exception.InnerException)) + { // we can retry; this time it will have different flags + return cmd.ExecuteReaderAsync(GetBehavior(wasClosed, behavior), cancellationToken); + } + return task; + } + + /// + /// Attempts to open a connection asynchronously, with a better error message for unsupported usages. + /// + private static Task TryOpenAsync(this IDbConnection cnn, CancellationToken cancel) + { + if (cnn is DbConnection dbConn) + { + return dbConn.OpenAsync(cancel); + } + else + { + throw new InvalidOperationException("Async operations require use of a DbConnection or an already-open IDbConnection"); + } + } + + /// + /// Attempts setup a on a , with a better error message for unsupported usages. + /// + private static DbCommand TrySetupAsyncCommand(this CommandDefinition command, IDbConnection cnn, Action paramReader) + { + if (command.SetupCommand(cnn, paramReader) is DbCommand dbCommand) + { + return dbCommand; + } + else + { + throw new InvalidOperationException("Async operations require use of a DbConnection or an IDbConnection where .CreateCommand() returns a DbCommand"); + } + } + + private static async Task> QueryAsync(this IDbConnection cnn, Type effectiveType, CommandDefinition command) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType(), null); + var info = GetCacheInfo(identity, param, command.AddToCache); + bool wasClosed = cnn.State == ConnectionState.Closed; + var cancel = command.CancellationToken; + using (var cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader)) + { + DbDataReader reader = null; + try + { + if (wasClosed) await cnn.TryOpenAsync(cancel).ConfigureAwait(false); + reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult, cancel).ConfigureAwait(false); + + var tuple = info.Deserializer; + int hash = GetColumnHash(reader); + if (tuple.Func == null || tuple.Hash != hash) + { + if (reader.FieldCount == 0) + return Enumerable.Empty(); + tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); + if (command.AddToCache) SetQueryCache(identity, info); + } + + var func = tuple.Func; + + if (command.Buffered) + { + var buffer = new List(); + var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; + while (await reader.ReadAsync(cancel).ConfigureAwait(false)) + { + object val = func(reader); + if (val == null || val is T) + { + buffer.Add((T)val); + } + else + { + buffer.Add((T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture)); + } + } + while (await reader.NextResultAsync(cancel).ConfigureAwait(false)) { /* ignore subsequent result sets */ } + command.OnCompleted(); + return buffer; + } + else + { + // can't use ReadAsync / cancellation; but this will have to do + wasClosed = false; // don't close if handing back an open reader; rely on the command-behavior + var deferred = ExecuteReaderSync(reader, func, command.Parameters); + reader = null; // to prevent it being disposed before the caller gets to see it + return deferred; + } + } + finally + { + using (reader) { /* dispose if non-null */ } + if (wasClosed) cnn.Close(); + } + } + } + + private static async Task QueryRowAsync(this IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType(), null); + var info = GetCacheInfo(identity, param, command.AddToCache); + bool wasClosed = cnn.State == ConnectionState.Closed; + var cancel = command.CancellationToken; + using (var cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader)) + { + DbDataReader reader = null; + try + { + if (wasClosed) await cnn.TryOpenAsync(cancel).ConfigureAwait(false); + reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, (row & Row.Single) != 0 + ? CommandBehavior.SequentialAccess | CommandBehavior.SingleResult // need to allow multiple rows, to check fail condition + : CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow, cancel).ConfigureAwait(false); + + T result = default(T); + if (await reader.ReadAsync(cancel).ConfigureAwait(false) && reader.FieldCount != 0) + { + var tuple = info.Deserializer; + int hash = GetColumnHash(reader); + if (tuple.Func == null || tuple.Hash != hash) + { + tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); + if (command.AddToCache) SetQueryCache(identity, info); + } + + var func = tuple.Func; + + object val = func(reader); + if (val == null || val is T) + { + result = (T)val; + } + else + { + var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; + result = (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); + } + if ((row & Row.Single) != 0 && await reader.ReadAsync(cancel).ConfigureAwait(false)) ThrowMultipleRows(row); + while (await reader.ReadAsync(cancel).ConfigureAwait(false)) { /* ignore rows after the first */ } + } + else if ((row & Row.FirstOrDefault) == 0) // demanding a row, and don't have one + { + ThrowZeroRows(row); + } + while (await reader.NextResultAsync(cancel).ConfigureAwait(false)) { /* ignore result sets after the first */ } + return result; + } + finally + { + using (reader) { /* dispose if non-null */ } + if (wasClosed) cnn.Close(); + } + } + } + + /// + /// Execute a command asynchronously using .NET 4.5 Task. + /// + /// The connection to query on. + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The number of rows affected. + public static Task ExecuteAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + ExecuteAsync(cnn, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered, default(CancellationToken))); + + /// + /// Execute a command asynchronously using .NET 4.5 Task. + /// + /// The connection to execute on. + /// The command to execute on this connection. + /// The number of rows affected. + public static Task ExecuteAsync(this IDbConnection cnn, CommandDefinition command) + { + object param = command.Parameters; + IEnumerable multiExec = GetMultiExec(param); + if (multiExec != null) + { + return ExecuteMultiImplAsync(cnn, command, multiExec); + } + else + { + return ExecuteImplAsync(cnn, command, param); + } + } + + private struct AsyncExecState + { + public readonly DbCommand Command; + public readonly Task Task; + public AsyncExecState(DbCommand command, Task task) + { + Command = command; + Task = task; + } + } + + private static async Task ExecuteMultiImplAsync(IDbConnection cnn, CommandDefinition command, IEnumerable multiExec) + { + bool isFirst = true; + int total = 0; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + + CacheInfo info = null; + string masterSql = null; + if ((command.Flags & CommandFlags.Pipelined) != 0) + { + const int MAX_PENDING = 100; + var pending = new Queue(MAX_PENDING); + DbCommand cmd = null; + try + { + foreach (var obj in multiExec) + { + if (isFirst) + { + isFirst = false; + cmd = command.TrySetupAsyncCommand(cnn, null); + masterSql = cmd.CommandText; + var identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); + info = GetCacheInfo(identity, obj, command.AddToCache); + } + else if (pending.Count >= MAX_PENDING) + { + var recycled = pending.Dequeue(); + total += await recycled.Task.ConfigureAwait(false); + cmd = recycled.Command; + cmd.CommandText = masterSql; // because we do magic replaces on "in" etc + cmd.Parameters.Clear(); // current code is Add-tastic + } + else + { + cmd = command.TrySetupAsyncCommand(cnn, null); + } + info.ParamReader(cmd, obj); + + var task = cmd.ExecuteNonQueryAsync(command.CancellationToken); + pending.Enqueue(new AsyncExecState(cmd, task)); + cmd = null; // note the using in the finally: this avoids a double-dispose + } + while (pending.Count != 0) + { + var pair = pending.Dequeue(); + using (pair.Command) { /* dispose commands */ } + total += await pair.Task.ConfigureAwait(false); + } + } + finally + { + // this only has interesting work to do if there are failures + using (cmd) { /* dispose commands */ } + while (pending.Count != 0) + { // dispose tasks even in failure + using (pending.Dequeue().Command) { /* dispose commands */ } + } + } + } + else + { + using (var cmd = command.TrySetupAsyncCommand(cnn, null)) + { + foreach (var obj in multiExec) + { + if (isFirst) + { + masterSql = cmd.CommandText; + isFirst = false; + var identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); + info = GetCacheInfo(identity, obj, command.AddToCache); + } + else + { + cmd.CommandText = masterSql; // because we do magic replaces on "in" etc + cmd.Parameters.Clear(); // current code is Add-tastic + } + info.ParamReader(cmd, obj); + total += await cmd.ExecuteNonQueryAsync(command.CancellationToken).ConfigureAwait(false); + } + } + } + + command.OnCompleted(); + } + finally + { + if (wasClosed) cnn.Close(); + } + return total; + } + + private static async Task ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, object param) + { + var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param?.GetType(), null); + var info = GetCacheInfo(identity, param, command.AddToCache); + bool wasClosed = cnn.State == ConnectionState.Closed; + using (var cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader)) + { + try + { + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + var result = await cmd.ExecuteNonQueryAsync(command.CancellationToken).ConfigureAwait(false); + command.OnCompleted(); + return result; + } + finally + { + if (wasClosed) cnn.Close(); + } + } + } + + /// + /// Perform a asynchronous multi-mapping query with 2 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 2 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 3 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 3 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 4 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 4 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 5 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 5 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 6 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 6 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + /// + /// Perform a asynchronous multi-mapping query with 7 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The seventh type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMapAsync(cnn, + new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)), map, splitOn); + + /// + /// Perform an asynchronous multi-mapping query with 7 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The seventh type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The field we should split and read the second object from (default: "Id"). + /// The command to execute. + /// The function to map row types to the return type. + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, CommandDefinition command, Func map, string splitOn = "Id") => + MultiMapAsync(cnn, command, map, splitOn); + + private static async Task> MultiMapAsync(this IDbConnection cnn, CommandDefinition command, Delegate map, string splitOn) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(TFirst), param?.GetType(), new[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }); + var info = GetCacheInfo(identity, param, command.AddToCache); + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + using (var cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader)) + using (var reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult, command.CancellationToken).ConfigureAwait(false)) + { + if (!command.Buffered) wasClosed = false; // handing back open reader; rely on command-behavior + var results = MultiMapImpl(null, CommandDefinition.ForCallback(command.Parameters), map, splitOn, reader, identity, true); + return command.Buffered ? results.ToList() : results; + } + } + finally + { + if (wasClosed) cnn.Close(); + } + } + + /// + /// Perform a asynchronous multi-mapping query with an arbitrary number of input types. + /// This returns a single type, combined from the raw types via . + /// + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// Array of types in the recordset. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static Task> QueryAsync(this IDbConnection cnn, string sql, Type[] types, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None, default(CancellationToken)); + return MultiMapAsync(cnn, command, types, map, splitOn); + } + + private static async Task> MultiMapAsync(this IDbConnection cnn, CommandDefinition command, Type[] types, Func map, string splitOn) + { + if (types.Length < 1) + { + throw new ArgumentException("you must provide at least one type to deserialize"); + } + + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, types[0], param?.GetType(), types); + var info = GetCacheInfo(identity, param, command.AddToCache); + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + using (var cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader)) + using (var reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult, command.CancellationToken).ConfigureAwait(false)) + { + var results = MultiMapImpl(null, default(CommandDefinition), types, map, splitOn, reader, identity, true); + return command.Buffered ? results.ToList() : results; + } + } + finally + { + if (wasClosed) cnn.Close(); + } + } + + private static IEnumerable ExecuteReaderSync(IDataReader reader, Func func, object parameters) + { + using (reader) + { + while (reader.Read()) + { + yield return (T)func(reader); + } + while (reader.NextResult()) { /* ignore subsequent result sets */ } + (parameters as IParameterCallbacks)?.OnCompleted(); + } + } + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The connection to query on. + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + public static Task QueryMultipleAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryMultipleAsync(cnn, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered)); + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The connection to query on. + /// The command to execute for this query. + public static async Task QueryMultipleAsync(this IDbConnection cnn, CommandDefinition command) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(GridReader), param?.GetType(), null); + CacheInfo info = GetCacheInfo(identity, param, command.AddToCache); + + DbCommand cmd = null; + IDataReader reader = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + cmd = command.TrySetupAsyncCommand(cnn, info.ParamReader); + reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, CommandBehavior.SequentialAccess, command.CancellationToken).ConfigureAwait(false); + + var result = new GridReader(cmd, reader, identity, command.Parameters as DynamicParameters, command.AddToCache, command.CancellationToken); + wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader + // with the CloseConnection flag, so the reader will deal with the connection; we + // still need something in the "finally" to ensure that broken SQL still results + // in the connection closing itself + return result; + } + catch + { + if (reader != null) + { + if (!reader.IsClosed) + { + try { cmd.Cancel(); } + catch + { /* don't spoil the existing exception */ + } + } + reader.Dispose(); + } + cmd?.Dispose(); + if (wasClosed) cnn.Close(); + throw; + } + } + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// 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 . + /// + /// + /// + /// + /// + /// + public static Task ExecuteReaderAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + ExecuteReaderImplAsync(cnn, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered), CommandBehavior.Default); + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The command to execute. + /// 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 . + /// + public static Task ExecuteReaderAsync(this IDbConnection cnn, CommandDefinition command) => + ExecuteReaderImplAsync(cnn, command, CommandBehavior.Default); + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The command to execute. + /// The flags for this reader. + /// 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 . + /// + public static Task ExecuteReaderAsync(this IDbConnection cnn, CommandDefinition command, CommandBehavior commandBehavior) => + ExecuteReaderImplAsync(cnn, command, commandBehavior); + + private static async Task ExecuteReaderImplAsync(IDbConnection cnn, CommandDefinition command, CommandBehavior commandBehavior) + { + Action paramReader = GetParameterReader(cnn, ref command); + + DbCommand cmd = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + cmd = command.TrySetupAsyncCommand(cnn, paramReader); + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + var reader = await ExecuteReaderWithFlagsFallbackAsync(cmd, wasClosed, commandBehavior, command.CancellationToken).ConfigureAwait(false); + wasClosed = false; + return reader; + } + finally + { + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + } + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The first cell returned, as . + public static Task ExecuteScalarAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + ExecuteScalarImplAsync(cnn, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered)); + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The type to return. + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The first cell returned, as . + public static Task ExecuteScalarAsync(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + ExecuteScalarImplAsync(cnn, new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered)); + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The connection to execute on. + /// The command to execute. + /// The first cell selected as . + public static Task ExecuteScalarAsync(this IDbConnection cnn, CommandDefinition command) => + ExecuteScalarImplAsync(cnn, command); + + /// + /// Execute parameterized SQL that selects a single value + /// + /// The type to return. + /// The connection to execute on. + /// The command to execute. + /// The first cell selected as . + public static Task ExecuteScalarAsync(this IDbConnection cnn, CommandDefinition command) => + ExecuteScalarImplAsync(cnn, command); + + private static async Task ExecuteScalarImplAsync(IDbConnection cnn, CommandDefinition command) + { + Action paramReader = null; + object param = command.Parameters; + if (param != null) + { + var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); + paramReader = GetCacheInfo(identity, command.Parameters, command.AddToCache).ParamReader; + } + + DbCommand cmd = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + object result; + try + { + cmd = command.TrySetupAsyncCommand(cnn, paramReader); + if (wasClosed) await cnn.TryOpenAsync(command.CancellationToken).ConfigureAwait(false); + result = await cmd.ExecuteScalarAsync(command.CancellationToken).ConfigureAwait(false); + command.OnCompleted(); + } + finally + { + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + return Parse(result); + } + } +} diff --git a/Dapper/SqlMapper.CacheInfo.cs b/Dapper/SqlMapper.CacheInfo.cs new file mode 100644 index 000000000..409ea3411 --- /dev/null +++ b/Dapper/SqlMapper.CacheInfo.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Threading; + +namespace Dapper +{ + public static partial class SqlMapper + { + private class CacheInfo + { + public DeserializerState Deserializer { get; set; } + public Func[] OtherDeserializers { get; set; } + public Action ParamReader { get; set; } + private int hitCount; + public int GetHitCount() { return Interlocked.CompareExchange(ref hitCount, 0, 0); } + public void RecordHit() { Interlocked.Increment(ref hitCount); } + } + } +} diff --git a/Dapper/SqlMapper.DapperRow.cs b/Dapper/SqlMapper.DapperRow.cs new file mode 100644 index 000000000..f4ebaedc5 --- /dev/null +++ b/Dapper/SqlMapper.DapperRow.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace Dapper +{ + public static partial class SqlMapper + { + private sealed class DapperRow + : System.Dynamic.IDynamicMetaObjectProvider + , IDictionary + , IReadOnlyDictionary + { + private readonly DapperTable table; + private object[] values; + + public DapperRow(DapperTable table, object[] values) + { + this.table = table ?? throw new ArgumentNullException(nameof(table)); + this.values = values ?? throw new ArgumentNullException(nameof(values)); + } + + private sealed class DeadValue + { + public static readonly DeadValue Default = new DeadValue(); + private DeadValue() { /* hiding constructor */ } + } + + int ICollection>.Count + { + get + { + int count = 0; + for (int i = 0; i < values.Length; i++) + { + if (!(values[i] is DeadValue)) count++; + } + return count; + } + } + + public bool TryGetValue(string key, out object value) + { + var index = table.IndexOfName(key); + if (index < 0) + { // doesn't exist + value = null; + return false; + } + // exists, **even if** we don't have a value; consider table rows heterogeneous + value = index < values.Length ? values[index] : null; + if (value is DeadValue) + { // pretend it isn't here + value = null; + return false; + } + return true; + } + + public override string ToString() + { + var sb = GetStringBuilder().Append("{DapperRow"); + foreach (var kv in this) + { + var value = kv.Value; + sb.Append(", ").Append(kv.Key); + if (value != null) + { + sb.Append(" = '").Append(kv.Value).Append('\''); + } + else + { + sb.Append(" = NULL"); + } + } + + return sb.Append('}').__ToStringRecycle(); + } + + System.Dynamic.DynamicMetaObject System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject( + System.Linq.Expressions.Expression parameter) + { + return new DapperRowMetaObject(parameter, System.Dynamic.BindingRestrictions.Empty, this); + } + + public IEnumerator> GetEnumerator() + { + var names = table.FieldNames; + for (var i = 0; i < names.Length; i++) + { + object value = i < values.Length ? values[i] : null; + if (!(value is DeadValue)) + { + yield return new KeyValuePair(names[i], value); + } + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + #region Implementation of ICollection> + + void ICollection>.Add(KeyValuePair item) + { + IDictionary dic = this; + dic.Add(item.Key, item.Value); + } + + void ICollection>.Clear() + { // removes values for **this row**, but doesn't change the fundamental table + for (int i = 0; i < values.Length; i++) + values[i] = DeadValue.Default; + } + + bool ICollection>.Contains(KeyValuePair item) + { + return TryGetValue(item.Key, out object value) && Equals(value, item.Value); + } + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) + { + foreach (var kv in this) + { + array[arrayIndex++] = kv; // if they didn't leave enough space; not our fault + } + } + + bool ICollection>.Remove(KeyValuePair item) + { + IDictionary dic = this; + return dic.Remove(item.Key); + } + + bool ICollection>.IsReadOnly => false; + #endregion + + #region Implementation of IDictionary + + bool IDictionary.ContainsKey(string key) + { + int index = table.IndexOfName(key); + if (index < 0 || index >= values.Length || values[index] is DeadValue) return false; + return true; + } + + void IDictionary.Add(string key, object value) + { + SetValue(key, value, true); + } + + bool IDictionary.Remove(string key) + { + int index = table.IndexOfName(key); + if (index < 0 || index >= values.Length || values[index] is DeadValue) return false; + values[index] = DeadValue.Default; + return true; + } + + object IDictionary.this[string key] + { + get { TryGetValue(key, out object val); return val; } + set { SetValue(key, value, false); } + } + + public object SetValue(string key, object value) + { + return SetValue(key, value, false); + } + + private object SetValue(string key, object value, bool isAdd) + { + if (key == null) throw new ArgumentNullException(nameof(key)); + int index = table.IndexOfName(key); + if (index < 0) + { + index = table.AddField(key); + } + else if (isAdd && index < values.Length && !(values[index] is DeadValue)) + { + // then semantically, this value already exists + throw new ArgumentException("An item with the same key has already been added", nameof(key)); + } + int oldLength = values.Length; + if (oldLength <= index) + { + // we'll assume they're doing lots of things, and + // grow it to the full width of the table + Array.Resize(ref values, table.FieldCount); + for (int i = oldLength; i < values.Length; i++) + { + values[i] = DeadValue.Default; + } + } + return values[index] = value; + } + + ICollection IDictionary.Keys + { + get { return this.Select(kv => kv.Key).ToArray(); } + } + + ICollection IDictionary.Values + { + get { return this.Select(kv => kv.Value).ToArray(); } + } + + #endregion + + + #region Implementation of IReadOnlyDictionary + + + int IReadOnlyCollection>.Count + { + get + { + return values.Count(t => !(t is DeadValue)); + } + } + + bool IReadOnlyDictionary.ContainsKey(string key) + { + int index = table.IndexOfName(key); + return index >= 0 && index < values.Length && !(values[index] is DeadValue); + } + + object IReadOnlyDictionary.this[string key] + { + get { TryGetValue(key, out object val); return val; } + } + + IEnumerable IReadOnlyDictionary.Keys + { + get { return this.Select(kv => kv.Key); } + } + + IEnumerable IReadOnlyDictionary.Values + { + get { return this.Select(kv => kv.Value); } + } + + #endregion + } + } +} diff --git a/Dapper/SqlMapper.DapperRowMetaObject.cs b/Dapper/SqlMapper.DapperRowMetaObject.cs new file mode 100644 index 000000000..789ec680d --- /dev/null +++ b/Dapper/SqlMapper.DapperRowMetaObject.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +namespace Dapper +{ + public static partial class SqlMapper + { + private sealed class DapperRowMetaObject : System.Dynamic.DynamicMetaObject + { + private static readonly MethodInfo getValueMethod = typeof(IDictionary).GetProperty("Item").GetGetMethod(); + private static readonly MethodInfo setValueMethod = typeof(DapperRow).GetMethod("SetValue", new Type[] { typeof(string), typeof(object) }); + + public DapperRowMetaObject( + System.Linq.Expressions.Expression expression, + System.Dynamic.BindingRestrictions restrictions + ) + : base(expression, restrictions) + { + } + + public DapperRowMetaObject( + System.Linq.Expressions.Expression expression, + System.Dynamic.BindingRestrictions restrictions, + object value + ) + : base(expression, restrictions, value) + { + } + + private System.Dynamic.DynamicMetaObject CallMethod( + MethodInfo method, + System.Linq.Expressions.Expression[] parameters + ) + { + var callMethod = new System.Dynamic.DynamicMetaObject( + System.Linq.Expressions.Expression.Call( + System.Linq.Expressions.Expression.Convert(Expression, LimitType), + method, + parameters), + System.Dynamic.BindingRestrictions.GetTypeRestriction(Expression, LimitType) + ); + return callMethod; + } + + public override System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.GetMemberBinder binder) + { + var parameters = new System.Linq.Expressions.Expression[] + { + System.Linq.Expressions.Expression.Constant(binder.Name) + }; + + var callMethod = CallMethod(getValueMethod, parameters); + + return callMethod; + } + + // Needed for Visual basic dynamic support + public override System.Dynamic.DynamicMetaObject BindInvokeMember(System.Dynamic.InvokeMemberBinder binder, System.Dynamic.DynamicMetaObject[] args) + { + var parameters = new System.Linq.Expressions.Expression[] + { + System.Linq.Expressions.Expression.Constant(binder.Name) + }; + + var callMethod = CallMethod(getValueMethod, parameters); + + return callMethod; + } + + public override System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder binder, System.Dynamic.DynamicMetaObject value) + { + var parameters = new System.Linq.Expressions.Expression[] + { + System.Linq.Expressions.Expression.Constant(binder.Name), + value.Expression, + }; + + var callMethod = CallMethod(setValueMethod, parameters); + + return callMethod; + } + } + } +} diff --git a/Dapper/SqlMapper.DapperTable.cs b/Dapper/SqlMapper.DapperTable.cs new file mode 100644 index 000000000..f827286f9 --- /dev/null +++ b/Dapper/SqlMapper.DapperTable.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; + +namespace Dapper +{ + public static partial class SqlMapper + { + private sealed class DapperTable + { + private string[] fieldNames; + private readonly Dictionary fieldNameLookup; + + internal string[] FieldNames => fieldNames; + + public DapperTable(string[] fieldNames) + { + this.fieldNames = fieldNames ?? throw new ArgumentNullException(nameof(fieldNames)); + + fieldNameLookup = new Dictionary(fieldNames.Length, StringComparer.Ordinal); + // if there are dups, we want the **first** key to be the "winner" - so iterate backwards + for (int i = fieldNames.Length - 1; i >= 0; i--) + { + string key = fieldNames[i]; + if (key != null) fieldNameLookup[key] = i; + } + } + + internal int IndexOfName(string name) + { + return (name != null && fieldNameLookup.TryGetValue(name, out int result)) ? result : -1; + } + + internal int AddField(string name) + { + if (name == null) throw new ArgumentNullException(nameof(name)); + if (fieldNameLookup.ContainsKey(name)) throw new InvalidOperationException("Field already exists: " + name); + int oldLen = fieldNames.Length; + Array.Resize(ref fieldNames, oldLen + 1); // yes, this is sub-optimal, but this is not the expected common case + fieldNames[oldLen] = name; + fieldNameLookup[name] = oldLen; + return oldLen; + } + + internal bool FieldExists(string key) => key != null && fieldNameLookup.ContainsKey(key); + + public int FieldCount => fieldNames.Length; + } + } +} diff --git a/Dapper/SqlMapper.DeserializerState.cs b/Dapper/SqlMapper.DeserializerState.cs new file mode 100644 index 000000000..26b176cc1 --- /dev/null +++ b/Dapper/SqlMapper.DeserializerState.cs @@ -0,0 +1,20 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + private struct DeserializerState + { + public readonly int Hash; + public readonly Func Func; + + public DeserializerState(int hash, Func func) + { + Hash = hash; + Func = func; + } + } + } +} diff --git a/Dapper/SqlMapper.DontMap.cs b/Dapper/SqlMapper.DontMap.cs new file mode 100644 index 000000000..a97c5811e --- /dev/null +++ b/Dapper/SqlMapper.DontMap.cs @@ -0,0 +1,10 @@ +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Dummy type for excluding from multi-map + /// + private class DontMap { /* hiding constructor */ } + } +} diff --git a/Dapper/SqlMapper.GridReader.Async.cs b/Dapper/SqlMapper.GridReader.Async.cs new file mode 100644 index 000000000..89528826b --- /dev/null +++ b/Dapper/SqlMapper.GridReader.Async.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Dapper +{ + public static partial class SqlMapper + { + public partial class GridReader + { + private readonly CancellationToken cancel; + internal GridReader(IDbCommand command, IDataReader reader, Identity identity, DynamicParameters dynamicParams, bool addToCache, CancellationToken cancel) + : this(command, reader, identity, dynamicParams, addToCache) + { + this.cancel = cancel; + } + + /// + /// 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> + /// Whether to buffer the results. + public Task> ReadAsync(bool buffered = true) => ReadAsyncImpl(typeof(DapperRow), buffered); + + /// + /// 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> + public Task ReadFirstAsync() => ReadRowAsyncImpl(typeof(DapperRow), Row.First); + + /// + /// 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> + public Task ReadFirstOrDefaultAsync() => ReadRowAsyncImpl(typeof(DapperRow), Row.FirstOrDefault); + + /// + /// 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> + public Task ReadSingleAsync() => ReadRowAsyncImpl(typeof(DapperRow), Row.Single); + + /// + /// 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> + public Task ReadSingleOrDefaultAsync() => ReadRowAsyncImpl(typeof(DapperRow), Row.SingleOrDefault); + + /// + /// Read the next grid of results + /// + /// The type to read. + /// Whether to buffer the results. + /// is null. + public Task> ReadAsync(Type type, bool buffered = true) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadAsyncImpl(type, buffered); + } + + /// + /// Read an individual row of the next grid of results + /// + /// The type to read. + /// is null. + public Task ReadFirstAsync(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRowAsyncImpl(type, Row.First); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public Task ReadFirstOrDefaultAsync(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRowAsyncImpl(type, Row.FirstOrDefault); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public Task ReadSingleAsync(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRowAsyncImpl(type, Row.Single); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public Task ReadSingleOrDefaultAsync(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRowAsyncImpl(type, Row.SingleOrDefault); + } + + /// + /// Read the next grid of results. + /// + /// The type to read. + /// Whether the results should be buffered in memory. + public Task> ReadAsync(bool buffered = true) => ReadAsyncImpl(typeof(T), buffered); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public Task ReadFirstAsync() => ReadRowAsyncImpl(typeof(T), Row.First); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public Task ReadFirstOrDefaultAsync() => ReadRowAsyncImpl(typeof(T), Row.FirstOrDefault); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public Task ReadSingleAsync() => ReadRowAsyncImpl(typeof(T), Row.Single); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public Task ReadSingleOrDefaultAsync() => ReadRowAsyncImpl(typeof(T), Row.SingleOrDefault); + + private async Task NextResultAsync() + { + if (await ((DbDataReader)reader).NextResultAsync(cancel).ConfigureAwait(false)) + { + readCount++; + gridIndex++; + IsConsumed = false; + } + else + { + // happy path; close the reader cleanly - no + // need for "Cancel" etc + reader.Dispose(); + reader = null; + callbacks?.OnCompleted(); + Dispose(); + } + } + + private Task> ReadAsyncImpl(Type type, bool buffered) + { + if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); + if (IsConsumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); + var typedIdentity = identity.ForGrid(type, gridIndex); + CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); + var deserializer = cache.Deserializer; + + int hash = GetColumnHash(reader); + if (deserializer.Func == null || deserializer.Hash != hash) + { + deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); + cache.Deserializer = deserializer; + } + IsConsumed = true; + if (buffered && reader is DbDataReader) + { + return ReadBufferedAsync(gridIndex, deserializer.Func); + } + else + { + var result = ReadDeferred(gridIndex, deserializer.Func, type); + if (buffered) result = result.ToList(); // for the "not a DbDataReader" scenario + return Task.FromResult(result); + } + } + + private Task ReadRowAsyncImpl(Type type, Row row) + { + if (reader is DbDataReader dbReader) return ReadRowAsyncImplViaDbReader(dbReader, type, row); + + // no async API available; use non-async and fake it + return Task.FromResult(ReadRow(type, row)); + } + + private async Task ReadRowAsyncImplViaDbReader(DbDataReader reader, Type type, Row row) + { + if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); + if (IsConsumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); + + IsConsumed = true; + T result = default(T); + if (await reader.ReadAsync(cancel).ConfigureAwait(false) && reader.FieldCount != 0) + { + var typedIdentity = identity.ForGrid(type, gridIndex); + CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); + var deserializer = cache.Deserializer; + + int hash = GetColumnHash(reader); + if (deserializer.Func == null || deserializer.Hash != hash) + { + deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); + cache.Deserializer = deserializer; + } + result = (T)deserializer.Func(reader); + if ((row & Row.Single) != 0 && await reader.ReadAsync(cancel).ConfigureAwait(false)) ThrowMultipleRows(row); + while (await reader.ReadAsync(cancel).ConfigureAwait(false)) { /* ignore subsequent rows */ } + } + else if ((row & Row.FirstOrDefault) == 0) // demanding a row, and don't have one + { + ThrowZeroRows(row); + } + await NextResultAsync().ConfigureAwait(false); + return result; + } + + private async Task> ReadBufferedAsync(int index, Func deserializer) + { + try + { + var reader = (DbDataReader)this.reader; + var buffer = new List(); + while (index == gridIndex && await reader.ReadAsync(cancel).ConfigureAwait(false)) + { + buffer.Add((T)deserializer(reader)); + } + return buffer; + } + finally // finally so that First etc progresses things even when multiple rows + { + if (index == gridIndex) + { + await NextResultAsync().ConfigureAwait(false); + } + } + } + } + } +} diff --git a/Dapper/SqlMapper.GridReader.cs b/Dapper/SqlMapper.GridReader.cs new file mode 100644 index 000000000..e4c697c1b --- /dev/null +++ b/Dapper/SqlMapper.GridReader.cs @@ -0,0 +1,445 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Globalization; +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// The grid reader provides interfaces for reading multiple result sets from a Dapper query + /// + public partial class GridReader : IDisposable + { + private IDataReader reader; + private readonly Identity identity; + private readonly bool addToCache; + + internal GridReader(IDbCommand command, IDataReader reader, Identity identity, IParameterCallbacks callbacks, bool addToCache) + { + Command = command; + this.reader = reader; + this.identity = identity; + this.callbacks = callbacks; + this.addToCache = addToCache; + } + + /// + /// Read the next grid of results, returned as a dynamic object. + /// + /// Whether the results should be buffered in memory. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public IEnumerable Read(bool buffered = true) => ReadImpl(typeof(DapperRow), buffered); + + /// + /// 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> + public dynamic ReadFirst() => ReadRow(typeof(DapperRow), Row.First); + + /// + /// 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> + public dynamic ReadFirstOrDefault() => ReadRow(typeof(DapperRow), Row.FirstOrDefault); + + /// + /// 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> + public dynamic ReadSingle() => ReadRow(typeof(DapperRow), Row.Single); + + /// + /// 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> + public dynamic ReadSingleOrDefault() => ReadRow(typeof(DapperRow), Row.SingleOrDefault); + + /// + /// Read the next grid of results. + /// + /// The type to read. + /// Whether the results should be buffered in memory. + public IEnumerable Read(bool buffered = true) => ReadImpl(typeof(T), buffered); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public T ReadFirst() => ReadRow(typeof(T), Row.First); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public T ReadFirstOrDefault() => ReadRow(typeof(T), Row.FirstOrDefault); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public T ReadSingle() => ReadRow(typeof(T), Row.Single); + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + public T ReadSingleOrDefault() => ReadRow(typeof(T), Row.SingleOrDefault); + + /// + /// Read the next grid of results. + /// + /// The type to read. + /// Whether to buffer the results. + /// is null. + public IEnumerable Read(Type type, bool buffered = true) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadImpl(type, buffered); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public object ReadFirst(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRow(type, Row.First); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public object ReadFirstOrDefault(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRow(type, Row.FirstOrDefault); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public object ReadSingle(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRow(type, Row.Single); + } + + /// + /// Read an individual row of the next grid of results. + /// + /// The type to read. + /// is null. + public object ReadSingleOrDefault(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + return ReadRow(type, Row.SingleOrDefault); + } + + private IEnumerable ReadImpl(Type type, bool buffered) + { + if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); + if (IsConsumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); + var typedIdentity = identity.ForGrid(type, gridIndex); + CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); + var deserializer = cache.Deserializer; + + int hash = GetColumnHash(reader); + if (deserializer.Func == null || deserializer.Hash != hash) + { + deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); + cache.Deserializer = deserializer; + } + IsConsumed = true; + var result = ReadDeferred(gridIndex, deserializer.Func, type); + return buffered ? result.ToList() : result; + } + + private T ReadRow(Type type, Row row) + { + if (reader == null) throw new ObjectDisposedException(GetType().FullName, "The reader has been disposed; this can happen after all data has been consumed"); + if (IsConsumed) throw new InvalidOperationException("Query results must be consumed in the correct order, and each result can only be consumed once"); + IsConsumed = true; + + T result = default(T); + if (reader.Read() && reader.FieldCount != 0) + { + var typedIdentity = identity.ForGrid(type, gridIndex); + CacheInfo cache = GetCacheInfo(typedIdentity, null, addToCache); + var deserializer = cache.Deserializer; + + int hash = GetColumnHash(reader); + if (deserializer.Func == null || deserializer.Hash != hash) + { + deserializer = new DeserializerState(hash, GetDeserializer(type, reader, 0, -1, false)); + cache.Deserializer = deserializer; + } + object val = deserializer.Func(reader); + if (val == null || val is T) + { + result = (T)val; + } + else + { + var convertToType = Nullable.GetUnderlyingType(type) ?? type; + result = (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); + } + if ((row & Row.Single) != 0 && reader.Read()) ThrowMultipleRows(row); + while (reader.Read()) { /* ignore subsequent rows */ } + } + else if ((row & Row.FirstOrDefault) == 0) // demanding a row, and don't have one + { + ThrowZeroRows(row); + } + NextResult(); + return result; + } + + private IEnumerable MultiReadInternal(Delegate func, string splitOn) + { + var identity = this.identity.ForGrid(typeof(TReturn), new Type[] { + typeof(TFirst), + typeof(TSecond), + typeof(TThird), + typeof(TFourth), + typeof(TFifth), + typeof(TSixth), + typeof(TSeventh) + }, gridIndex); + + IsConsumed = true; + + try + { + foreach (var r in MultiMapImpl(null, default(CommandDefinition), func, splitOn, reader, identity, false)) + { + yield return r; + } + } + finally + { + NextResult(); + } + } + + private IEnumerable MultiReadInternal(Type[] types, Func map, string splitOn) + { + var identity = this.identity.ForGrid(typeof(TReturn), types, gridIndex); + try + { + foreach (var r in MultiMapImpl(null, default(CommandDefinition), types, map, splitOn, reader, identity, false)) + { + yield return r; + } + } + finally + { + NextResult(); + } + } + + /// + /// Read multiple objects from a single record set on the grid. + /// + /// The first type in the record set. + /// The second type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid. + /// + /// The first type in the record set. + /// The second type in the record set. + /// The third type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid + /// + /// The first type in the record set. + /// The second type in the record set. + /// The third type in the record set. + /// The fourth type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid + /// + /// The first type in the record set. + /// The second type in the record set. + /// The third type in the record set. + /// The fourth type in the record set. + /// The fifth type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid + /// + /// The first type in the record set. + /// The second type in the record set. + /// The third type in the record set. + /// The fourth type in the record set. + /// The fifth type in the record set. + /// The sixth type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid + /// + /// The first type in the record set. + /// The second type in the record set. + /// The third type in the record set. + /// The fourth type in the record set. + /// The fifth type in the record set. + /// The sixth type in the record set. + /// The seventh type in the record set. + /// The type to return from the record set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Func func, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(func, splitOn); + return buffered ? result.ToList() : result; + } + + /// + /// Read multiple objects from a single record set on the grid + /// + /// The type to return from the record set. + /// The types to read from the result set. + /// The mapping function from the read types to the return type. + /// The field(s) we should split and read the second object from (defaults to "id") + /// Whether to buffer results in memory. + public IEnumerable Read(Type[] types, Func map, string splitOn = "id", bool buffered = true) + { + var result = MultiReadInternal(types, map, splitOn); + return buffered ? result.ToList() : result; + } + + private IEnumerable ReadDeferred(int index, Func deserializer, Type effectiveType) + { + try + { + var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; + while (index == gridIndex && reader.Read()) + { + object val = deserializer(reader); + if (val == null || val is T) + { + yield return (T)val; + } + else + { + yield return (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); + } + } + } + finally // finally so that First etc progresses things even when multiple rows + { + if (index == gridIndex) + { + NextResult(); + } + } + } + + private int gridIndex, readCount; + private readonly IParameterCallbacks callbacks; + + /// + /// Has the underlying reader been consumed? + /// + public bool IsConsumed { get; private set; } + + /// + /// The command associated with the reader + /// + public IDbCommand Command { get; set; } + + private void NextResult() + { + if (reader.NextResult()) + { + readCount++; + gridIndex++; + IsConsumed = false; + } + else + { + // happy path; close the reader cleanly - no + // need for "Cancel" etc + reader.Dispose(); + reader = null; + callbacks?.OnCompleted(); + Dispose(); + } + } + + /// + /// Dispose the grid, closing and disposing both the underlying reader and command. + /// + public void Dispose() + { + if (reader != null) + { + if (!reader.IsClosed) Command?.Cancel(); + reader.Dispose(); + reader = null; + } + if (Command != null) + { + Command.Dispose(); + Command = null; + } + } + } + } +} diff --git a/Dapper/SqlMapper.ICustomQueryParameter.cs b/Dapper/SqlMapper.ICustomQueryParameter.cs new file mode 100644 index 000000000..649a6e9a2 --- /dev/null +++ b/Dapper/SqlMapper.ICustomQueryParameter.cs @@ -0,0 +1,20 @@ +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Implement this interface to pass an arbitrary db specific parameter to Dapper + /// + public interface ICustomQueryParameter + { + /// + /// Add the parameter needed to the command before it executes + /// + /// The raw command prior to execution + /// Parameter name + void AddParameter(IDbCommand command, string name); + } + } +} diff --git a/Dapper/SqlMapper.IDataReader.cs b/Dapper/SqlMapper.IDataReader.cs new file mode 100644 index 000000000..196dc7d92 --- /dev/null +++ b/Dapper/SqlMapper.IDataReader.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc. + /// + /// The type to parse from the . + /// The data reader to parse results from. + public static IEnumerable Parse(this IDataReader reader) + { + if (reader.Read()) + { + var deser = GetDeserializer(typeof(T), reader, 0, -1, false); + do + { + yield return (T)deser(reader); + } while (reader.Read()); + } + } + + /// + /// Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc. + /// + /// The data reader to parse results from. + /// The type to parse from the . + public static IEnumerable Parse(this IDataReader reader, Type type) + { + if (reader.Read()) + { + var deser = GetDeserializer(type, reader, 0, -1, false); + do + { + yield return deser(reader); + } while (reader.Read()); + } + } + + /// + /// Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc. + /// + /// The data reader to parse results from. + public static IEnumerable Parse(this IDataReader reader) + { + if (reader.Read()) + { + var deser = GetDapperRowDeserializer(reader, 0, -1, false); + do + { + yield return deser(reader); + } while (reader.Read()); + } + } + + /// + /// 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. + public static Func GetRowParser(this IDataReader reader, Type type, + int startIndex = 0, int length = -1, bool returnNullIfFirstMissing = false) + { + return GetDeserializer(type, reader, startIndex, length, returnNullIfFirstMissing); + } + + /// + /// 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 type of results to return. + /// 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; + /// } + /// + public static Func GetRowParser(this IDataReader reader, Type concreteType = null, + int startIndex = 0, int length = -1, bool returnNullIfFirstMissing = false) + { + concreteType = concreteType ?? typeof(T); + var func = GetDeserializer(concreteType, reader, startIndex, length, returnNullIfFirstMissing); + if (concreteType.IsValueType()) + { + return _ => (T)func(_); + } + else + { + return (Func)(Delegate)func; + } + } + } +} diff --git a/Dapper/SqlMapper.IDynamicParameters.cs b/Dapper/SqlMapper.IDynamicParameters.cs new file mode 100644 index 000000000..8999b3bf4 --- /dev/null +++ b/Dapper/SqlMapper.IDynamicParameters.cs @@ -0,0 +1,20 @@ +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Implement this interface to pass an arbitrary db specific set of parameters to Dapper + /// + public interface IDynamicParameters + { + /// + /// Add all the parameters needed to the command just before it executes + /// + /// The raw command prior to execution + /// Information about the query + void AddParameters(IDbCommand command, Identity identity); + } + } +} diff --git a/Dapper/SqlMapper.IMemberMap.cs b/Dapper/SqlMapper.IMemberMap.cs new file mode 100644 index 000000000..fcd8eb379 --- /dev/null +++ b/Dapper/SqlMapper.IMemberMap.cs @@ -0,0 +1,39 @@ +using System; +using System.Reflection; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Implements this interface to provide custom member mapping + /// + public interface IMemberMap + { + /// + /// Source DataReader column name + /// + string ColumnName { get; } + + /// + /// Target member type + /// + Type MemberType { get; } + + /// + /// Target property + /// + PropertyInfo Property { get; } + + /// + /// Target field + /// + FieldInfo Field { get; } + + /// + /// Target constructor parameter + /// + ParameterInfo Parameter { get; } + } + } +} diff --git a/Dapper/SqlMapper.IParameterCallbacks.cs b/Dapper/SqlMapper.IParameterCallbacks.cs new file mode 100644 index 000000000..cb0f35ea0 --- /dev/null +++ b/Dapper/SqlMapper.IParameterCallbacks.cs @@ -0,0 +1,16 @@ +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Extends IDynamicParameters with facilities for executing callbacks after commands have completed + /// + public interface IParameterCallbacks : IDynamicParameters + { + /// + /// Invoked when the command has executed + /// + void OnCompleted(); + } + } +} diff --git a/Dapper/SqlMapper.IParameterLookup.cs b/Dapper/SqlMapper.IParameterLookup.cs new file mode 100644 index 000000000..aecf7bd1d --- /dev/null +++ b/Dapper/SqlMapper.IParameterLookup.cs @@ -0,0 +1,17 @@ +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Extends IDynamicParameters providing by-name lookup of parameter values + /// + public interface IParameterLookup : IDynamicParameters + { + /// + /// Get the value of the specified parameter (return null if not found) + /// + /// The name of the parameter to get. + object this[string name] { get; } + } + } +} diff --git a/Dapper/SqlMapper.ITypeHandler.cs b/Dapper/SqlMapper.ITypeHandler.cs new file mode 100644 index 000000000..31154a645 --- /dev/null +++ b/Dapper/SqlMapper.ITypeHandler.cs @@ -0,0 +1,29 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Implement this interface to perform custom type-based parameter handling and value parsing + /// + public interface ITypeHandler + { + /// + /// Assign the value of a parameter before a command executes + /// + /// The parameter to configure + /// Parameter value + void SetValue(IDbDataParameter parameter, object value); + + /// + /// Parse a database value back to a typed value + /// + /// The value from the database + /// The type to parse to + /// The typed value + object Parse(Type destinationType, object value); + } + } +} diff --git a/Dapper/SqlMapper.ITypeMap.cs b/Dapper/SqlMapper.ITypeMap.cs new file mode 100644 index 000000000..dbd04ba61 --- /dev/null +++ b/Dapper/SqlMapper.ITypeMap.cs @@ -0,0 +1,46 @@ +using System; +using System.Reflection; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Implement this interface to change default mapping of reader columns to type members + /// + public interface ITypeMap + { + /// + /// Finds best constructor + /// + /// DataReader column names + /// DataReader column types + /// Matching constructor or default one + ConstructorInfo FindConstructor(string[] names, Type[] types); + + /// + /// 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. + /// + ConstructorInfo FindExplicitConstructor(); + + /// + /// Gets mapping for constructor parameter + /// + /// Constructor to resolve + /// DataReader column name + /// Mapping implementation + IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName); + + /// + /// Gets member mapping for column + /// + /// DataReader column name + /// Mapping implementation + IMemberMap GetMember(string columnName); + } + } +} diff --git a/Dapper/SqlMapper.Identity.cs b/Dapper/SqlMapper.Identity.cs new file mode 100644 index 000000000..a02f20e62 --- /dev/null +++ b/Dapper/SqlMapper.Identity.cs @@ -0,0 +1,121 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Identity of a cached query in Dapper, used for extensibility. + /// + public class Identity : IEquatable + { + internal Identity ForGrid(Type primaryType, int gridIndex) => + new Identity(sql, commandType, connectionString, primaryType, parametersType, null, gridIndex); + + internal Identity ForGrid(Type primaryType, Type[] otherTypes, int gridIndex) => + new Identity(sql, commandType, connectionString, primaryType, parametersType, otherTypes, gridIndex); + + /// + /// Create an identity for use with DynamicParameters, internal use only. + /// + /// The parameters type to create an for. + /// + public Identity ForDynamicParameters(Type type) => + new Identity(sql, commandType, connectionString, this.type, type, null, -1); + + internal Identity(string sql, CommandType? commandType, IDbConnection connection, Type type, Type parametersType, Type[] otherTypes) + : this(sql, commandType, connection.ConnectionString, type, parametersType, otherTypes, 0) { /* base call */ } + + private Identity(string sql, CommandType? commandType, string connectionString, Type type, Type parametersType, Type[] otherTypes, int gridIndex) + { + this.sql = sql; + this.commandType = commandType; + this.connectionString = connectionString; + this.type = type; + this.parametersType = parametersType; + this.gridIndex = gridIndex; + unchecked + { + hashCode = 17; // we *know* we are using this in a dictionary, so pre-compute this + hashCode = (hashCode * 23) + commandType.GetHashCode(); + hashCode = (hashCode * 23) + gridIndex.GetHashCode(); + hashCode = (hashCode * 23) + (sql?.GetHashCode() ?? 0); + hashCode = (hashCode * 23) + (type?.GetHashCode() ?? 0); + if (otherTypes != null) + { + foreach (var t in otherTypes) + { + hashCode = (hashCode * 23) + (t?.GetHashCode() ?? 0); + } + } + hashCode = (hashCode * 23) + (connectionString == null ? 0 : connectionStringComparer.GetHashCode(connectionString)); + hashCode = (hashCode * 23) + (parametersType?.GetHashCode() ?? 0); + } + } + + /// + /// Whether this equals another. + /// + /// The other to compare to. + public override bool Equals(object obj) => Equals(obj as Identity); + + /// + /// The raw SQL command. + /// + public readonly string sql; + + /// + /// The SQL command type. + /// + public readonly CommandType? commandType; + + /// + /// The hash code of this Identity. + /// + public readonly int hashCode; + + /// + /// The grid index (position in the reader) of this Identity. + /// + public readonly int gridIndex; + + /// + /// This of this Identity. + /// + public readonly Type type; + + /// + /// The connection string for this Identity. + /// + public readonly string connectionString; + + /// + /// The type of the parameters object for this Identity. + /// + public readonly Type parametersType; + + /// + /// Gets the hash code for this identity. + /// + /// + public override int GetHashCode() => hashCode; + + /// + /// Compare 2 Identity objects + /// + /// The other object to compare. + /// Whether the two are equal + public bool Equals(Identity other) + { + return other != null + && gridIndex == other.gridIndex + && type == other.type + && sql == other.sql + && commandType == other.commandType + && connectionStringComparer.Equals(connectionString, other.connectionString) + && parametersType == other.parametersType; + } + } + } +} diff --git a/Dapper/SqlMapper.Link.cs b/Dapper/SqlMapper.Link.cs new file mode 100644 index 000000000..602336fe7 --- /dev/null +++ b/Dapper/SqlMapper.Link.cs @@ -0,0 +1,61 @@ +using System.Threading; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// 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. + /// + /// The type to cache. + /// The value type of the cache. + internal class Link where TKey : class + { + public static bool TryGet(Link link, TKey key, out TValue value) + { + while (link != null) + { + if ((object)key == (object)link.Key) + { + value = link.Value; + return true; + } + link = link.Tail; + } + value = default(TValue); + return false; + } + + public static bool TryAdd(ref Link head, TKey key, ref TValue value) + { + bool tryAgain; + do + { + var snapshot = Interlocked.CompareExchange(ref head, null, null); + if (TryGet(snapshot, key, out TValue found)) + { // existing match; report the existing value instead + value = found; + return false; + } + var newNode = new Link(key, value, snapshot); + // did somebody move our cheese? + tryAgain = Interlocked.CompareExchange(ref head, newNode, snapshot) != snapshot; + } while (tryAgain); + return true; + } + + private Link(TKey key, TValue value, Link tail) + { + Key = key; + Value = value; + Tail = tail; + } + + public TKey Key { get; } + public TValue Value { get; } + public Link Tail { get; } + } + } +} diff --git a/Dapper/SqlMapper.LiteralToken.cs b/Dapper/SqlMapper.LiteralToken.cs new file mode 100644 index 000000000..d5ae56583 --- /dev/null +++ b/Dapper/SqlMapper.LiteralToken.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Represents a placeholder for a value that should be replaced as a literal value in the resulting sql + /// + internal struct LiteralToken + { + /// + /// The text in the original command that should be replaced + /// + public string Token { get; } + + /// + /// The name of the member referred to by the token + /// + public string Member { get; } + + internal LiteralToken(string token, string member) + { + Token = token; + Member = member; + } + + internal static readonly IList None = new LiteralToken[0]; + } + } +} diff --git a/Dapper/SqlMapper.Settings.cs b/Dapper/SqlMapper.Settings.cs new file mode 100644 index 000000000..db517c7ad --- /dev/null +++ b/Dapper/SqlMapper.Settings.cs @@ -0,0 +1,98 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Permits specifying certain SqlMapper values globally. + /// + public static class Settings + { + // disable single result by default; prevents errors AFTER the select being detected properly + private const CommandBehavior DefaultAllowedCommandBehaviors = ~CommandBehavior.SingleResult; + internal static CommandBehavior AllowedCommandBehaviors { get; private set; } = DefaultAllowedCommandBehaviors; + private static void SetAllowedCommandBehaviors(CommandBehavior behavior, bool enabled) + { + if (enabled) AllowedCommandBehaviors |= behavior; + else AllowedCommandBehaviors &= ~behavior; + } + /// + /// Gets or sets whether Dapper should use the CommandBehavior.SingleResult optimization + /// + /// Note that a consequence of enabling this option is that errors that happen after the first select may not be reported + public static bool UseSingleResultOptimization + { + get { return (AllowedCommandBehaviors & CommandBehavior.SingleResult) != 0; } + set { SetAllowedCommandBehaviors(CommandBehavior.SingleResult, value); } + } + /// + /// Gets or sets whether Dapper should use the CommandBehavior.SingleRow optimization + /// + /// Note that on some DB providers this optimization can have adverse performance impact + public static bool UseSingleRowOptimization + { + get { return (AllowedCommandBehaviors & CommandBehavior.SingleRow) != 0; } + set { SetAllowedCommandBehaviors(CommandBehavior.SingleRow, value); } + } + + internal static bool DisableCommandBehaviorOptimizations(CommandBehavior behavior, Exception ex) + { + if (AllowedCommandBehaviors == DefaultAllowedCommandBehaviors + && (behavior & (CommandBehavior.SingleResult | CommandBehavior.SingleRow)) != 0) + { + if (ex.Message.Contains(nameof(CommandBehavior.SingleResult)) + || ex.Message.Contains(nameof(CommandBehavior.SingleRow))) + { // some providers just just allow these, so: try again without them and stop issuing them + SetAllowedCommandBehaviors(CommandBehavior.SingleResult | CommandBehavior.SingleRow, false); + return true; + } + } + return false; + } + + static Settings() + { + SetDefaults(); + } + + /// + /// Resets all Settings to their default values + /// + public static void SetDefaults() + { + CommandTimeout = null; + ApplyNullValues = false; + } + + /// + /// Specifies the default Command Timeout for all Queries + /// + public static int? CommandTimeout { get; set; } + + /// + /// Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members + /// + public static bool ApplyNullValues { get; set; } + + /// + /// 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. + /// + public static bool PadListExpansions { get; set; } + /// + /// 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). + /// + public static int InListStringSplitCount { get; set; } = -1; + } + } +} diff --git a/Dapper/SqlMapper.TypeDeserializerCache.cs b/Dapper/SqlMapper.TypeDeserializerCache.cs new file mode 100644 index 000000000..ef53b8b7a --- /dev/null +++ b/Dapper/SqlMapper.TypeDeserializerCache.cs @@ -0,0 +1,163 @@ +using System; +using System.Data; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace Dapper +{ + public static partial class SqlMapper + { + private class TypeDeserializerCache + { + private TypeDeserializerCache(Type type) + { + this.type = type; + } + + private static readonly Hashtable byType = new Hashtable(); + private readonly Type type; + internal static void Purge(Type type) + { + lock (byType) + { + byType.Remove(type); + } + } + + internal static void Purge() + { + lock (byType) + { + byType.Clear(); + } + } + + internal static Func GetReader(Type type, IDataReader reader, int startBound, int length, bool returnNullIfFirstMissing) + { + var found = (TypeDeserializerCache)byType[type]; + if (found == null) + { + lock (byType) + { + found = (TypeDeserializerCache)byType[type]; + if (found == null) + { + byType[type] = found = new TypeDeserializerCache(type); + } + } + } + return found.GetReader(reader, startBound, length, returnNullIfFirstMissing); + } + + private readonly Dictionary> readers = new Dictionary>(); + + private struct DeserializerKey : IEquatable + { + private readonly int startBound, length; + private readonly bool returnNullIfFirstMissing; + private readonly IDataReader reader; + private readonly string[] names; + private readonly Type[] types; + private readonly int hashCode; + + public DeserializerKey(int hashCode, int startBound, int length, bool returnNullIfFirstMissing, IDataReader reader, bool copyDown) + { + this.hashCode = hashCode; + this.startBound = startBound; + this.length = length; + this.returnNullIfFirstMissing = returnNullIfFirstMissing; + + if (copyDown) + { + this.reader = null; + names = new string[length]; + types = new Type[length]; + int index = startBound; + for (int i = 0; i < length; i++) + { + names[i] = reader.GetName(index); + types[i] = reader.GetFieldType(index++); + } + } + else + { + this.reader = reader; + names = null; + types = null; + } + } + + public override int GetHashCode() => hashCode; + + public override string ToString() + { // only used in the debugger + if (names != null) + { + return string.Join(", ", names); + } + if (reader != null) + { + var sb = new StringBuilder(); + int index = startBound; + for (int i = 0; i < length; i++) + { + if (i != 0) sb.Append(", "); + sb.Append(reader.GetName(index++)); + } + return sb.ToString(); + } + return base.ToString(); + } + + public override bool Equals(object obj) + { + return obj is DeserializerKey && Equals((DeserializerKey)obj); + } + + public bool Equals(DeserializerKey other) + { + if (hashCode != other.hashCode + || startBound != other.startBound + || length != other.length + || returnNullIfFirstMissing != other.returnNullIfFirstMissing) + { + return false; // clearly different + } + for (int i = 0; i < length; i++) + { + if ((names?[i] ?? reader?.GetName(startBound + i)) != (other.names?[i] ?? other.reader?.GetName(startBound + i)) + || + (types?[i] ?? reader?.GetFieldType(startBound + i)) != (other.types?[i] ?? other.reader?.GetFieldType(startBound + i)) + ) + { + return false; // different column name or type + } + } + return true; + } + } + + private Func GetReader(IDataReader reader, int startBound, int length, bool returnNullIfFirstMissing) + { + if (length < 0) length = reader.FieldCount - startBound; + int hash = GetColumnHash(reader, startBound, length); + if (returnNullIfFirstMissing) hash *= -27; + // get a cheap key first: false means don't copy the values down + var key = new DeserializerKey(hash, startBound, length, returnNullIfFirstMissing, reader, false); + Func deser; + lock (readers) + { + if (readers.TryGetValue(key, out deser)) return deser; + } + deser = GetTypeDeserializerImpl(type, reader, startBound, length, returnNullIfFirstMissing); + // get a more expensive key: true means copy the values down so it can be used as a key later + key = new DeserializerKey(hash, startBound, length, returnNullIfFirstMissing, reader, true); + lock (readers) + { + return readers[key] = deser; + } + } + } + } +} diff --git a/Dapper/SqlMapper.TypeHandler.cs b/Dapper/SqlMapper.TypeHandler.cs new file mode 100644 index 000000000..7a712ee49 --- /dev/null +++ b/Dapper/SqlMapper.TypeHandler.cs @@ -0,0 +1,86 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Base-class for simple type-handlers + /// + /// This this handler is for. + public abstract class TypeHandler : ITypeHandler + { + /// + /// Assign the value of a parameter before a command executes + /// + /// The parameter to configure + /// Parameter value + public abstract void SetValue(IDbDataParameter parameter, T value); + + /// + /// Parse a database value back to a typed value + /// + /// The value from the database + /// The typed value + public abstract T Parse(object value); + + void ITypeHandler.SetValue(IDbDataParameter parameter, object value) + { + if (value is DBNull) + { + parameter.Value = value; + } + else + { + SetValue(parameter, (T)value); + } + } + + object ITypeHandler.Parse(Type destinationType, object value) + { + return Parse(value); + } + } + + /// + /// Base-class for simple type-handlers that are based around strings + /// + /// This this handler is for. + public abstract class StringTypeHandler : TypeHandler + { + /// + /// Parse a string into the expected type (the string will never be null) + /// + /// The string to parse. + protected abstract T Parse(string xml); + + /// + /// Format an instace into a string (the instance will never be null) + /// + /// The string to format. + protected abstract string Format(T xml); + + /// + /// Assign the value of a parameter before a command executes + /// + /// The parameter to configure + /// Parameter value + public override void SetValue(IDbDataParameter parameter, T value) + { + parameter.Value = value == null ? (object)DBNull.Value : Format(value); + } + + /// + /// Parse a database value back to a typed value + /// + /// The value from the database + /// The typed value + public override T Parse(object value) + { + if (value == null || value is DBNull) return default(T); + return Parse((string)value); + } + } + } +} diff --git a/Dapper/SqlMapper.TypeHandlerCache.cs b/Dapper/SqlMapper.TypeHandlerCache.cs new file mode 100644 index 000000000..04d9baba8 --- /dev/null +++ b/Dapper/SqlMapper.TypeHandlerCache.cs @@ -0,0 +1,45 @@ +using System; +using System.ComponentModel; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { + /// + /// Not intended for direct usage + /// + /// The type to have a cache for. + [Obsolete(ObsoleteInternalUsageOnly, false)] +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + public static class TypeHandlerCache + { + /// + /// Not intended for direct usage. + /// + /// The object to parse. + [Obsolete(ObsoleteInternalUsageOnly, true)] + public static T Parse(object value) => (T)handler.Parse(typeof(T), value); + + /// + /// Not intended for direct usage. + /// + /// The parameter to set a value for. + /// The value to set. + [Obsolete(ObsoleteInternalUsageOnly, true)] + public static void SetValue(IDbDataParameter parameter, object value) => handler.SetValue(parameter, value); + + internal static void SetHandler(ITypeHandler handler) + { +#pragma warning disable 618 + TypeHandlerCache.handler = handler; +#pragma warning restore 618 + } + + private static ITypeHandler handler; + } + } +} diff --git a/Dapper/SqlMapper.cs b/Dapper/SqlMapper.cs new file mode 100644 index 000000000..96eb11805 --- /dev/null +++ b/Dapper/SqlMapper.cs @@ -0,0 +1,3722 @@ +/* + License: http://www.apache.org/licenses/LICENSE-2.0 + Home page: https://github.com/StackExchange/dapper-dot-net + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Globalization; +using System.Linq; +using System.Reflection; +using System.Reflection.Emit; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Xml; +using System.Xml.Linq; + +#if NETSTANDARD1_3 +using DataException = System.InvalidOperationException; +#endif + +namespace Dapper +{ + /// + /// Dapper, a light weight object mapper for ADO.NET + /// + public static partial class SqlMapper + { + private class PropertyInfoByNameComparer : IComparer + { + public int Compare(PropertyInfo x, PropertyInfo y) => string.CompareOrdinal(x.Name, y.Name); + } + private static int GetColumnHash(IDataReader reader, int startBound = 0, int length = -1) + { + unchecked + { + int max = length < 0 ? reader.FieldCount : startBound + length; + int hash = (-37 * startBound) + max; + for (int i = startBound; i < max; i++) + { + object tmp = reader.GetName(i); + hash = (-79 * ((hash * 31) + (tmp?.GetHashCode() ?? 0))) + (reader.GetFieldType(i)?.GetHashCode() ?? 0); + } + return hash; + } + } + + /// + /// Called if the query cache is purged via PurgeQueryCache + /// + public static event EventHandler QueryCachePurged; + private static void OnQueryCachePurged() + { + var handler = QueryCachePurged; + handler?.Invoke(null, EventArgs.Empty); + } + + private static readonly System.Collections.Concurrent.ConcurrentDictionary _queryCache = new System.Collections.Concurrent.ConcurrentDictionary(); + private static void SetQueryCache(Identity key, CacheInfo value) + { + if (Interlocked.Increment(ref collect) == COLLECT_PER_ITEMS) + { + CollectCacheGarbage(); + } + _queryCache[key] = value; + } + + private static void CollectCacheGarbage() + { + try + { + foreach (var pair in _queryCache) + { + if (pair.Value.GetHitCount() <= COLLECT_HIT_COUNT_MIN) + { + _queryCache.TryRemove(pair.Key, out CacheInfo cache); + } + } + } + + finally + { + Interlocked.Exchange(ref collect, 0); + } + } + + private const int COLLECT_PER_ITEMS = 1000, COLLECT_HIT_COUNT_MIN = 0; + private static int collect; + private static bool TryGetQueryCache(Identity key, out CacheInfo value) + { + if (_queryCache.TryGetValue(key, out value)) + { + value.RecordHit(); + return true; + } + value = null; + return false; + } + + /// + /// Purge the query cache + /// + public static void PurgeQueryCache() + { + _queryCache.Clear(); + TypeDeserializerCache.Purge(); + OnQueryCachePurged(); + } + + private static void PurgeQueryCacheByType(Type type) + { + foreach (var entry in _queryCache) + { + if (entry.Key.type == type) + _queryCache.TryRemove(entry.Key, out CacheInfo cache); + } + TypeDeserializerCache.Purge(type); + } + + /// + /// Return a count of all the cached queries by Dapper + /// + /// + public static int GetCachedSQLCount() + { + return _queryCache.Count; + } + + /// + /// Return a list of all the queries cached by Dapper + /// + /// + /// + public static IEnumerable> GetCachedSQL(int ignoreHitCountAbove = int.MaxValue) + { + var data = _queryCache.Select(pair => Tuple.Create(pair.Key.connectionString, pair.Key.sql, pair.Value.GetHitCount())); + return (ignoreHitCountAbove < int.MaxValue) + ? data.Where(tuple => tuple.Item3 <= ignoreHitCountAbove) + : data; + } + + /// + /// Deep diagnostics only: find any hash collisions in the cache + /// + /// + public static IEnumerable> GetHashCollissions() + { + var counts = new Dictionary(); + foreach (var key in _queryCache.Keys) + { + if (!counts.TryGetValue(key.hashCode, out int count)) + { + counts.Add(key.hashCode, 1); + } + else + { + counts[key.hashCode] = count + 1; + } + } + return from pair in counts + where pair.Value > 1 + select Tuple.Create(pair.Key, pair.Value); + } + + private static Dictionary typeMap; + + static SqlMapper() + { + typeMap = new Dictionary + { + [typeof(byte)] = DbType.Byte, + [typeof(sbyte)] = DbType.SByte, + [typeof(short)] = DbType.Int16, + [typeof(ushort)] = DbType.UInt16, + [typeof(int)] = DbType.Int32, + [typeof(uint)] = DbType.UInt32, + [typeof(long)] = DbType.Int64, + [typeof(ulong)] = DbType.UInt64, + [typeof(float)] = DbType.Single, + [typeof(double)] = DbType.Double, + [typeof(decimal)] = DbType.Decimal, + [typeof(bool)] = DbType.Boolean, + [typeof(string)] = DbType.String, + [typeof(char)] = DbType.StringFixedLength, + [typeof(Guid)] = DbType.Guid, + [typeof(DateTime)] = DbType.DateTime, + [typeof(DateTimeOffset)] = DbType.DateTimeOffset, + [typeof(TimeSpan)] = DbType.Time, + [typeof(byte[])] = DbType.Binary, + [typeof(byte?)] = DbType.Byte, + [typeof(sbyte?)] = DbType.SByte, + [typeof(short?)] = DbType.Int16, + [typeof(ushort?)] = DbType.UInt16, + [typeof(int?)] = DbType.Int32, + [typeof(uint?)] = DbType.UInt32, + [typeof(long?)] = DbType.Int64, + [typeof(ulong?)] = DbType.UInt64, + [typeof(float?)] = DbType.Single, + [typeof(double?)] = DbType.Double, + [typeof(decimal?)] = DbType.Decimal, + [typeof(bool?)] = DbType.Boolean, + [typeof(char?)] = DbType.StringFixedLength, + [typeof(Guid?)] = DbType.Guid, + [typeof(DateTime?)] = DbType.DateTime, + [typeof(DateTimeOffset?)] = DbType.DateTimeOffset, + [typeof(TimeSpan?)] = DbType.Time, + [typeof(object)] = DbType.Object + }; + ResetTypeHandlers(false); + } + + /// + /// Clear the registered type handlers. + /// + public static void ResetTypeHandlers() => ResetTypeHandlers(true); + + private static void ResetTypeHandlers(bool clone) + { + typeHandlers = new Dictionary(); +#if !NETSTANDARD1_3 + AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), clone); +#endif + try + { + AddSqlDataRecordsTypeHandler(clone); + } + catch { /* https://github.com/StackExchange/dapper-dot-net/issues/424 */ } + AddTypeHandlerImpl(typeof(XmlDocument), new XmlDocumentHandler(), clone); + AddTypeHandlerImpl(typeof(XDocument), new XDocumentHandler(), clone); + AddTypeHandlerImpl(typeof(XElement), new XElementHandler(), clone); + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void AddSqlDataRecordsTypeHandler(bool clone) + { + AddTypeHandlerImpl(typeof(IEnumerable), new SqlDataRecordHandler(), clone); + } + + /// + /// Configure the specified type to be mapped to a given db-type. + /// + /// The type to map from. + /// The database type to map to. + public static void AddTypeMap(Type type, DbType dbType) + { + // use clone, mutate, replace to avoid threading issues + var snapshot = typeMap; + + if (snapshot.TryGetValue(type, out DbType oldValue) && oldValue == dbType) return; // nothing to do + + typeMap = new Dictionary(snapshot) { [type] = dbType }; + } + + /// + /// Removes the specified type from the Type/DbType mapping table. + /// + /// The type to remove from the current map. + public static void RemoveTypeMap(Type type) + { + // use clone, mutate, replace to avoid threading issues + var snapshot = typeMap; + + if (!snapshot.ContainsKey(type)) return; // nothing to do + + var newCopy = new Dictionary(snapshot); + newCopy.Remove(type); + + typeMap = newCopy; + } + + /// + /// Configure the specified type to be processed by a custom handler. + /// + /// The type to handle. + /// The handler to process the . + public static void AddTypeHandler(Type type, ITypeHandler handler) => AddTypeHandlerImpl(type, handler, true); + + internal static bool HasTypeHandler(Type type) => typeHandlers.ContainsKey(type); + + /// + /// Configure the specified type to be processed by a custom handler. + /// + /// The type to handle. + /// The handler to process the . + /// Whether to clone the current type handler map. + public static void AddTypeHandlerImpl(Type type, ITypeHandler handler, bool clone) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + Type secondary = null; + if (type.IsValueType()) + { + var underlying = Nullable.GetUnderlyingType(type); + if (underlying == null) + { + secondary = typeof(Nullable<>).MakeGenericType(type); // the Nullable + // type is already the T + } + else + { + secondary = type; // the Nullable + type = underlying; // the T + } + } + + var snapshot = typeHandlers; + if (snapshot.TryGetValue(type, out ITypeHandler oldValue) && handler == oldValue) return; // nothing to do + + var newCopy = clone ? new Dictionary(snapshot) : snapshot; + +#pragma warning disable 618 + typeof(TypeHandlerCache<>).MakeGenericType(type).GetMethod(nameof(TypeHandlerCache.SetHandler), BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, new object[] { handler }); + if (secondary != null) + { + typeof(TypeHandlerCache<>).MakeGenericType(secondary).GetMethod(nameof(TypeHandlerCache.SetHandler), BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, new object[] { handler }); + } +#pragma warning restore 618 + if (handler == null) + { + newCopy.Remove(type); + if (secondary != null) newCopy.Remove(secondary); + } + else + { + newCopy[type] = handler; + if (secondary != null) newCopy[secondary] = handler; + } + typeHandlers = newCopy; + } + + /// + /// Configure the specified type to be processed by a custom handler. + /// + /// The type to handle. + /// The handler for the type . + public static void AddTypeHandler(TypeHandler handler) => AddTypeHandlerImpl(typeof(T), handler, true); + + private static Dictionary typeHandlers; + + internal const string LinqBinary = "System.Data.Linq.Binary"; + + private const string ObsoleteInternalUsageOnly = "This method is for internal use only"; + + /// + /// Get the DbType that maps to a given value. + /// + /// The object to get a corresponding database type for. + [Obsolete(ObsoleteInternalUsageOnly, false)] +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + public static DbType GetDbType(object value) + { + if (value == null || value is DBNull) return DbType.Object; + + return LookupDbType(value.GetType(), "n/a", false, out ITypeHandler handler); + } + + /// + /// OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member + /// + /// The type to lookup. + /// The name (for error messages). + /// Whether to demand a value (throw if missing). + /// The handler for . + [Obsolete(ObsoleteInternalUsageOnly, false)] +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + public static DbType LookupDbType(Type type, string name, bool demand, out ITypeHandler handler) + { + handler = null; + var nullUnderlyingType = Nullable.GetUnderlyingType(type); + if (nullUnderlyingType != null) type = nullUnderlyingType; + if (type.IsEnum() && !typeMap.ContainsKey(type)) + { + type = Enum.GetUnderlyingType(type); + } + if (typeMap.TryGetValue(type, out DbType dbType)) + { + return dbType; + } + if (type.FullName == LinqBinary) + { + return DbType.Binary; + } + if (typeHandlers.TryGetValue(type, out handler)) + { + return DbType.Object; + } + if (typeof(IEnumerable).IsAssignableFrom(type)) + { + return DynamicParameters.EnumerableMultiParameter; + } + +#if !NETSTANDARD1_3 && !NETSTANDARD2_0 + switch (type.FullName) + { + case "Microsoft.SqlServer.Types.SqlGeography": + AddTypeHandler(type, handler = new UdtTypeHandler("geography")); + return DbType.Object; + case "Microsoft.SqlServer.Types.SqlGeometry": + AddTypeHandler(type, handler = new UdtTypeHandler("geometry")); + return DbType.Object; + case "Microsoft.SqlServer.Types.SqlHierarchyId": + AddTypeHandler(type, handler = new UdtTypeHandler("hierarchyid")); + return DbType.Object; + } +#endif + if (demand) + throw new NotSupportedException($"The member {name} of type {type.FullName} cannot be used as a parameter value"); + return DbType.Object; + } + + /// + /// Obtains the data as a list; if it is *already* a list, the original object is returned without + /// any duplication; otherwise, ToList() is invoked. + /// + /// The type of element in the list. + /// The enumerable to return as a list. + public static List AsList(this IEnumerable source) => + (source == null || source is List) ? (List)source : source.ToList(); + + /// + /// Execute parameterized SQL. + /// + /// The connection to query on. + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The number of rows affected. + public static int Execute(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered); + return ExecuteImpl(cnn, ref command); + } + + /// + /// Execute parameterized SQL. + /// + /// The connection to execute on. + /// The command to execute on this connection. + /// The number of rows affected. + public static int Execute(this IDbConnection cnn, CommandDefinition command) => ExecuteImpl(cnn, ref command); + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The first cell selected as . + public static object ExecuteScalar(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered); + return ExecuteScalarImpl(cnn, ref command); + } + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The type to return. + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// The first cell returned, as . + public static T ExecuteScalar(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered); + return ExecuteScalarImpl(cnn, ref command); + } + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The connection to execute on. + /// The command to execute. + /// The first cell selected as . + public static object ExecuteScalar(this IDbConnection cnn, CommandDefinition command) => + ExecuteScalarImpl(cnn, ref command); + + /// + /// Execute parameterized SQL that selects a single value. + /// + /// The type to return. + /// The connection to execute on. + /// The command to execute. + /// The first cell selected as . + public static T ExecuteScalar(this IDbConnection cnn, CommandDefinition command) => + ExecuteScalarImpl(cnn, ref command); + + private static IEnumerable GetMultiExec(object param) + { + return (param is IEnumerable + && !(param is string + || param is IEnumerable> + || param is IDynamicParameters) + ) ? (IEnumerable)param : null; + } + + private static int ExecuteImpl(this IDbConnection cnn, ref CommandDefinition command) + { + object param = command.Parameters; + IEnumerable multiExec = GetMultiExec(param); + Identity identity; + CacheInfo info = null; + if (multiExec != null) + { + if ((command.Flags & CommandFlags.Pipelined) != 0) + { + // this includes all the code for concurrent/overlapped query + return ExecuteMultiImplAsync(cnn, command, multiExec).Result; + } + bool isFirst = true; + int total = 0; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) cnn.Open(); + using (var cmd = command.SetupCommand(cnn, null)) + { + string masterSql = null; + foreach (var obj in multiExec) + { + if (isFirst) + { + masterSql = cmd.CommandText; + isFirst = false; + identity = new Identity(command.CommandText, cmd.CommandType, cnn, null, obj.GetType(), null); + info = GetCacheInfo(identity, obj, command.AddToCache); + } + else + { + cmd.CommandText = masterSql; // because we do magic replaces on "in" etc + cmd.Parameters.Clear(); // current code is Add-tastic + } + info.ParamReader(cmd, obj); + total += cmd.ExecuteNonQuery(); + } + } + command.OnCompleted(); + } + finally + { + if (wasClosed) cnn.Close(); + } + return total; + } + + // nice and simple + if (param != null) + { + identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); + info = GetCacheInfo(identity, param, command.AddToCache); + } + return ExecuteCommand(cnn, ref command, param == null ? null : info.ParamReader); + } + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The SQL to execute. + /// The parameters to use for this command. + /// The transaction to use for this command. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + /// 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 . + /// + /// + /// + /// + /// + /// + public static IDataReader ExecuteReader(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered); + var reader = ExecuteReaderImpl(cnn, ref command, CommandBehavior.Default, out IDbCommand dbcmd); + return new WrappedReader(dbcmd, reader); + } + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The command to execute. + /// 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 . + /// + public static IDataReader ExecuteReader(this IDbConnection cnn, CommandDefinition command) + { + var reader = ExecuteReaderImpl(cnn, ref command, CommandBehavior.Default, out IDbCommand dbcmd); + return new WrappedReader(dbcmd, reader); + } + + /// + /// Execute parameterized SQL and return an . + /// + /// The connection to execute on. + /// The command to execute. + /// The flags for this reader. + /// 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 . + /// + public static IDataReader ExecuteReader(this IDbConnection cnn, CommandDefinition command, CommandBehavior commandBehavior) + { + var reader = ExecuteReaderImpl(cnn, ref command, commandBehavior, out IDbCommand dbcmd); + return new WrappedReader(dbcmd, reader); + } + + /// + /// Return a sequence of dynamic objects with properties matching the columns. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// Whether to buffer the results in memory. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static IEnumerable Query(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null) => + Query(cnn, sql, param as object, transaction, buffered, commandTimeout, commandType); + + /// + /// Return a dynamic object with properties matching the columns. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static dynamic QueryFirst(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryFirst(cnn, sql, param as object, transaction, commandTimeout, commandType); + + /// + /// Return a dynamic object with properties matching the columns. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static dynamic QueryFirstOrDefault(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QueryFirstOrDefault(cnn, sql, param as object, transaction, commandTimeout, commandType); + + /// + /// Return a dynamic object with properties matching the columns. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static dynamic QuerySingle(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QuerySingle(cnn, sql, param as object, transaction, commandTimeout, commandType); + + /// + /// Return a dynamic object with properties matching the columns. + /// + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object> + public static dynamic QuerySingleOrDefault(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) => + QuerySingleOrDefault(cnn, sql, param as object, transaction, commandTimeout, commandType); + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// Whether to buffer results in memory. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// 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). + /// + public static IEnumerable Query(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); + var data = QueryImpl(cnn, command, typeof(T)); + return command.Buffered ? data.ToList() : data; + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// 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). + /// + public static T QueryFirst(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.First, ref command, typeof(T)); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// 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). + /// + public static T QueryFirstOrDefault(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.FirstOrDefault, ref command, typeof(T)); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// 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). + /// + public static T QuerySingle(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.Single, ref command, typeof(T)); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The type of result to return. + /// The connection to query on. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// + /// 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). + /// + public static T QuerySingleOrDefault(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.SingleOrDefault, ref command, typeof(T)); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// Whether to buffer results in memory. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + /// + /// 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). + /// + public static IEnumerable Query(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); + var data = QueryImpl(cnn, command, type); + return command.Buffered ? data.ToList() : data; + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + /// + /// 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). + /// + public static object QueryFirst(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.First, ref command, type); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + /// + /// 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). + /// + public static object QueryFirstOrDefault(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.FirstOrDefault, ref command, type); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + /// + /// 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). + /// + public static object QuerySingle(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.Single, ref command, type); + } + + /// + /// Executes a single-row query, returning the data typed as . + /// + /// The connection to query on. + /// The type to return. + /// The SQL to execute for the query. + /// The parameters to pass, if any. + /// The transaction to use, if any. + /// The command timeout (in seconds). + /// The type of command to execute. + /// is null. + /// + /// 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). + /// + public static object QuerySingleOrDefault(this IDbConnection cnn, Type type, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.None); + return QueryRowImpl(cnn, Row.SingleOrDefault, ref command, type); + } + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// A sequence of data of ; 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). + /// + public static IEnumerable Query(this IDbConnection cnn, CommandDefinition command) + { + var data = QueryImpl(cnn, command, typeof(T)); + return command.Buffered ? data.ToList() : data; + } + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// 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). + /// + public static T QueryFirst(this IDbConnection cnn, CommandDefinition command) => + QueryRowImpl(cnn, Row.First, ref command, typeof(T)); + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// 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). + /// + public static T QueryFirstOrDefault(this IDbConnection cnn, CommandDefinition command) => + QueryRowImpl(cnn, Row.FirstOrDefault, ref command, typeof(T)); + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// 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). + /// + public static T QuerySingle(this IDbConnection cnn, CommandDefinition command) => + QueryRowImpl(cnn, Row.Single, ref command, typeof(T)); + + /// + /// Executes a query, returning the data typed as . + /// + /// The type of results to return. + /// The connection to query on. + /// The command used to query on this connection. + /// + /// 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). + /// + public static T QuerySingleOrDefault(this IDbConnection cnn, CommandDefinition command) => + QueryRowImpl(cnn, Row.SingleOrDefault, ref command, typeof(T)); + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The connection to query on. + /// The SQL to execute for this query. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Number of seconds before command execution timeout. + /// Is it a stored proc or a batch? + public static GridReader QueryMultiple(this IDbConnection cnn, string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, CommandFlags.Buffered); + return QueryMultipleImpl(cnn, ref command); + } + + /// + /// Execute a command that returns multiple result sets, and access each in turn. + /// + /// The connection to query on. + /// The command to execute for this query. + public static GridReader QueryMultiple(this IDbConnection cnn, CommandDefinition command) => + QueryMultipleImpl(cnn, ref command); + + private static GridReader QueryMultipleImpl(this IDbConnection cnn, ref CommandDefinition command) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, typeof(GridReader), param?.GetType(), null); + CacheInfo info = GetCacheInfo(identity, param, command.AddToCache); + + IDbCommand cmd = null; + IDataReader reader = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + if (wasClosed) cnn.Open(); + cmd = command.SetupCommand(cnn, info.ParamReader); + reader = ExecuteReaderWithFlagsFallback(cmd, wasClosed, CommandBehavior.SequentialAccess); + + var result = new GridReader(cmd, reader, identity, command.Parameters as DynamicParameters, command.AddToCache); + cmd = null; // now owned by result + wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader + // with the CloseConnection flag, so the reader will deal with the connection; we + // still need something in the "finally" to ensure that broken SQL still results + // in the connection closing itself + return result; + } + catch + { + if (reader != null) + { + if (!reader.IsClosed) + { + try { cmd?.Cancel(); } + catch { /* don't spoil the existing exception */ } + } + reader.Dispose(); + } + cmd?.Dispose(); + if (wasClosed) cnn.Close(); + throw; + } + } + + private static IDataReader ExecuteReaderWithFlagsFallback(IDbCommand cmd, bool wasClosed, CommandBehavior behavior) + { + try + { + return cmd.ExecuteReader(GetBehavior(wasClosed, behavior)); + } + catch (ArgumentException ex) + { // thanks, Sqlite! + if (Settings.DisableCommandBehaviorOptimizations(behavior, ex)) + { + // we can retry; this time it will have different flags + return cmd.ExecuteReader(GetBehavior(wasClosed, behavior)); + } + throw; + } + } + + private static IEnumerable QueryImpl(this IDbConnection cnn, CommandDefinition command, Type effectiveType) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType(), null); + var info = GetCacheInfo(identity, param, command.AddToCache); + + IDbCommand cmd = null; + IDataReader reader = null; + + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + cmd = command.SetupCommand(cnn, info.ParamReader); + + if (wasClosed) cnn.Open(); + reader = ExecuteReaderWithFlagsFallback(cmd, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult); + wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader + // with the CloseConnection flag, so the reader will deal with the connection; we + // still need something in the "finally" to ensure that broken SQL still results + // in the connection closing itself + var tuple = info.Deserializer; + int hash = GetColumnHash(reader); + if (tuple.Func == null || tuple.Hash != hash) + { + if (reader.FieldCount == 0) //https://code.google.com/p/dapper-dot-net/issues/detail?id=57 + yield break; + tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); + if (command.AddToCache) SetQueryCache(identity, info); + } + + var func = tuple.Func; + var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; + while (reader.Read()) + { + object val = func(reader); + if (val == null || val is T) + { + yield return (T)val; + } + else + { + yield return (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); + } + } + while (reader.NextResult()) { /* ignore subsequent result sets */ } + // happy path; close the reader cleanly - no + // need for "Cancel" etc + reader.Dispose(); + reader = null; + + command.OnCompleted(); + } + finally + { + if (reader != null) + { + if (!reader.IsClosed) + { + try { cmd.Cancel(); } + catch { /* don't spoil the existing exception */ } + } + reader.Dispose(); + } + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + } + + [Flags] + internal enum Row + { + First = 0, + FirstOrDefault = 1, // & FirstOrDefault != 0: allow zero rows + Single = 2, // & Single != 0: demand at least one row + SingleOrDefault = 3 + } + + private static readonly int[] ErrTwoRows = new int[2], ErrZeroRows = new int[0]; + private static void ThrowMultipleRows(Row row) + { + switch (row) + { // get the standard exception from the runtime + case Row.Single: ErrTwoRows.Single(); break; + case Row.SingleOrDefault: ErrTwoRows.SingleOrDefault(); break; + default: throw new InvalidOperationException(); + } + } + + private static void ThrowZeroRows(Row row) + { + switch (row) + { // get the standard exception from the runtime + case Row.First: ErrZeroRows.First(); break; + case Row.Single: ErrZeroRows.Single(); break; + default: throw new InvalidOperationException(); + } + } + + private static T QueryRowImpl(IDbConnection cnn, Row row, ref CommandDefinition command, Type effectiveType) + { + object param = command.Parameters; + var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType(), null); + var info = GetCacheInfo(identity, param, command.AddToCache); + + IDbCommand cmd = null; + IDataReader reader = null; + + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + cmd = command.SetupCommand(cnn, info.ParamReader); + + if (wasClosed) cnn.Open(); + reader = ExecuteReaderWithFlagsFallback(cmd, wasClosed, (row & Row.Single) != 0 + ? CommandBehavior.SequentialAccess | CommandBehavior.SingleResult // need to allow multiple rows, to check fail condition + : CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow); + wasClosed = false; // *if* the connection was closed and we got this far, then we now have a reader + + T result = default(T); + if (reader.Read() && reader.FieldCount != 0) + { + // with the CloseConnection flag, so the reader will deal with the connection; we + // still need something in the "finally" to ensure that broken SQL still results + // in the connection closing itself + var tuple = info.Deserializer; + int hash = GetColumnHash(reader); + if (tuple.Func == null || tuple.Hash != hash) + { + tuple = info.Deserializer = new DeserializerState(hash, GetDeserializer(effectiveType, reader, 0, -1, false)); + if (command.AddToCache) SetQueryCache(identity, info); + } + + var func = tuple.Func; + object val = func(reader); + if (val == null || val is T) + { + result = (T)val; + } + else + { + var convertToType = Nullable.GetUnderlyingType(effectiveType) ?? effectiveType; + result = (T)Convert.ChangeType(val, convertToType, CultureInfo.InvariantCulture); + } + if ((row & Row.Single) != 0 && reader.Read()) ThrowMultipleRows(row); + while (reader.Read()) { /* ignore subsequent rows */ } + } + else if ((row & Row.FirstOrDefault) == 0) // demanding a row, and don't have one + { + ThrowZeroRows(row); + } + while (reader.NextResult()) { /* ignore subsequent result sets */ } + // happy path; close the reader cleanly - no + // need for "Cancel" etc + reader.Dispose(); + reader = null; + + command.OnCompleted(); + return result; + } + finally + { + if (reader != null) + { + if (!reader.IsClosed) + { + try { cmd.Cancel(); } + catch { /* don't spoil the existing exception */ } + } + reader.Dispose(); + } + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + } + + /// + /// Perform a multi-mapping query with 2 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with 3 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with 4 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with 5 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with 6 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with 7 input types. + /// This returns a single type, combined from the raw types via . + /// + /// The first type in the recordset. + /// The second type in the recordset. + /// The third type in the recordset. + /// The fourth type in the recordset. + /// The fifth type in the recordset. + /// The sixth type in the recordset. + /// The seventh type in the recordset. + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) => + MultiMap(cnn, sql, map, param, transaction, buffered, splitOn, commandTimeout, commandType); + + /// + /// Perform a multi-mapping query with an arbitrary number of input types. + /// This returns a single type, combined from the raw types via . + /// + /// The combined type to return. + /// The connection to query on. + /// The SQL to execute for this query. + /// Array of types in the recordset. + /// The function to map row types to the return type. + /// The parameters to use for this query. + /// The transaction to use for this query. + /// Whether to buffer the results in memory. + /// 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? + /// An enumerable of . + public static IEnumerable Query(this IDbConnection cnn, string sql, Type[] types, Func map, object param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); + var results = MultiMapImpl(cnn, command, types, map, splitOn, null, null, true); + return buffered ? results.ToList() : results; + } + + private static IEnumerable MultiMap( + this IDbConnection cnn, string sql, Delegate map, object param, IDbTransaction transaction, bool buffered, string splitOn, int? commandTimeout, CommandType? commandType) + { + var command = new CommandDefinition(sql, param, transaction, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None); + var results = MultiMapImpl(cnn, command, map, splitOn, null, null, true); + return buffered ? results.ToList() : results; + } + + private static IEnumerable MultiMapImpl(this IDbConnection cnn, CommandDefinition command, Delegate map, string splitOn, IDataReader reader, Identity identity, bool finalize) + { + object param = command.Parameters; + identity = identity ?? new Identity(command.CommandText, command.CommandType, cnn, typeof(TFirst), param?.GetType(), new[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }); + CacheInfo cinfo = GetCacheInfo(identity, param, command.AddToCache); + + IDbCommand ownedCommand = null; + IDataReader ownedReader = null; + + bool wasClosed = cnn?.State == ConnectionState.Closed; + try + { + if (reader == null) + { + ownedCommand = command.SetupCommand(cnn, cinfo.ParamReader); + if (wasClosed) cnn.Open(); + ownedReader = ExecuteReaderWithFlagsFallback(ownedCommand, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult); + reader = ownedReader; + } + var deserializer = default(DeserializerState); + Func[] otherDeserializers; + + int hash = GetColumnHash(reader); + if ((deserializer = cinfo.Deserializer).Func == null || (otherDeserializers = cinfo.OtherDeserializers) == null || hash != deserializer.Hash) + { + var deserializers = GenerateDeserializers(new[] { typeof(TFirst), typeof(TSecond), typeof(TThird), typeof(TFourth), typeof(TFifth), typeof(TSixth), typeof(TSeventh) }, splitOn, reader); + deserializer = cinfo.Deserializer = new DeserializerState(hash, deserializers[0]); + otherDeserializers = cinfo.OtherDeserializers = deserializers.Skip(1).ToArray(); + if (command.AddToCache) SetQueryCache(identity, cinfo); + } + + Func mapIt = GenerateMapper(deserializer.Func, otherDeserializers, map); + + if (mapIt != null) + { + while (reader.Read()) + { + yield return mapIt(reader); + } + if (finalize) + { + while (reader.NextResult()) { /* ignore remaining result sets */ } + command.OnCompleted(); + } + } + } + finally + { + try + { + ownedReader?.Dispose(); + } + finally + { + ownedCommand?.Dispose(); + if (wasClosed) cnn.Close(); + } + } + } + + private static CommandBehavior GetBehavior(bool close, CommandBehavior @default) + { + return (close ? (@default | CommandBehavior.CloseConnection) : @default) & Settings.AllowedCommandBehaviors; + } + + private static IEnumerable MultiMapImpl(this IDbConnection cnn, CommandDefinition command, Type[] types, Func map, string splitOn, IDataReader reader, Identity identity, bool finalize) + { + if (types.Length < 1) + { + throw new ArgumentException("you must provide at least one type to deserialize"); + } + + object param = command.Parameters; + identity = identity ?? new Identity(command.CommandText, command.CommandType, cnn, types[0], param?.GetType(), types); + CacheInfo cinfo = GetCacheInfo(identity, param, command.AddToCache); + + IDbCommand ownedCommand = null; + IDataReader ownedReader = null; + + bool wasClosed = cnn?.State == ConnectionState.Closed; + try + { + if (reader == null) + { + ownedCommand = command.SetupCommand(cnn, cinfo.ParamReader); + if (wasClosed) cnn.Open(); + ownedReader = ExecuteReaderWithFlagsFallback(ownedCommand, wasClosed, CommandBehavior.SequentialAccess | CommandBehavior.SingleResult); + reader = ownedReader; + } + DeserializerState deserializer; + Func[] otherDeserializers; + + int hash = GetColumnHash(reader); + if ((deserializer = cinfo.Deserializer).Func == null || (otherDeserializers = cinfo.OtherDeserializers) == null || hash != deserializer.Hash) + { + var deserializers = GenerateDeserializers(types, splitOn, reader); + deserializer = cinfo.Deserializer = new DeserializerState(hash, deserializers[0]); + otherDeserializers = cinfo.OtherDeserializers = deserializers.Skip(1).ToArray(); + SetQueryCache(identity, cinfo); + } + + Func mapIt = GenerateMapper(types.Length, deserializer.Func, otherDeserializers, map); + + if (mapIt != null) + { + while (reader.Read()) + { + yield return mapIt(reader); + } + if (finalize) + { + while (reader.NextResult()) { /* ignore subsequent result sets */ } + command.OnCompleted(); + } + } + } + finally + { + try + { + ownedReader?.Dispose(); + } + finally + { + ownedCommand?.Dispose(); + if (wasClosed) cnn.Close(); + } + } + } + + private static Func GenerateMapper(Func deserializer, Func[] otherDeserializers, object map) + { + switch (otherDeserializers.Length) + { + case 1: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r)); + case 2: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r)); + case 3: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r)); + case 4: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r)); + case 5: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r), (TSixth)otherDeserializers[4](r)); + case 6: + return r => ((Func)map)((TFirst)deserializer(r), (TSecond)otherDeserializers[0](r), (TThird)otherDeserializers[1](r), (TFourth)otherDeserializers[2](r), (TFifth)otherDeserializers[3](r), (TSixth)otherDeserializers[4](r), (TSeventh)otherDeserializers[5](r)); + default: + throw new NotSupportedException(); + } + } + + private static Func GenerateMapper(int length, Func deserializer, Func[] otherDeserializers, Func map) + { + return r => + { + var objects = new object[length]; + objects[0] = deserializer(r); + + for (var i = 1; i < length; ++i) + { + objects[i] = otherDeserializers[i - 1](r); + } + + return map(objects); + }; + } + + private static Func[] GenerateDeserializers(Type[] types, string splitOn, IDataReader reader) + { + var deserializers = new List>(); + var splits = splitOn.Split(',').Select(s => s.Trim()).ToArray(); + bool isMultiSplit = splits.Length > 1; + if (types[0] == typeof(object)) + { + // we go left to right for dynamic multi-mapping so that the madness of TestMultiMappingVariations + // is supported + bool first = true; + int currentPos = 0; + int splitIdx = 0; + string currentSplit = splits[splitIdx]; + foreach (var type in types) + { + if (type == typeof(DontMap)) + { + break; + } + + int splitPoint = GetNextSplitDynamic(currentPos, currentSplit, reader); + if (isMultiSplit && splitIdx < splits.Length - 1) + { + currentSplit = splits[++splitIdx]; + } + deserializers.Add(GetDeserializer(type, reader, currentPos, splitPoint - currentPos, !first)); + currentPos = splitPoint; + first = false; + } + } + else + { + // in this we go right to left through the data reader in order to cope with properties that are + // named the same as a subsequent primary key that we split on + int currentPos = reader.FieldCount; + int splitIdx = splits.Length - 1; + var currentSplit = splits[splitIdx]; + for (var typeIdx = types.Length - 1; typeIdx >= 0; --typeIdx) + { + var type = types[typeIdx]; + if (type == typeof(DontMap)) + { + continue; + } + + int splitPoint = 0; + if (typeIdx > 0) + { + splitPoint = GetNextSplit(currentPos, currentSplit, reader); + if (isMultiSplit && splitIdx > 0) + { + currentSplit = splits[--splitIdx]; + } + } + + deserializers.Add(GetDeserializer(type, reader, splitPoint, currentPos - splitPoint, typeIdx > 0)); + currentPos = splitPoint; + } + + deserializers.Reverse(); + } + + return deserializers.ToArray(); + } + + private static int GetNextSplitDynamic(int startIdx, string splitOn, IDataReader reader) + { + if (startIdx == reader.FieldCount) + { + throw MultiMapException(reader); + } + + if (splitOn == "*") + { + return ++startIdx; + } + + for (var i = startIdx + 1; i < reader.FieldCount; ++i) + { + if (string.Equals(splitOn, reader.GetName(i), StringComparison.OrdinalIgnoreCase)) + { + return i; + } + } + + return reader.FieldCount; + } + + private static int GetNextSplit(int startIdx, string splitOn, IDataReader reader) + { + if (splitOn == "*") + { + return --startIdx; + } + + for (var i = startIdx - 1; i > 0; --i) + { + if (string.Equals(splitOn, reader.GetName(i), StringComparison.OrdinalIgnoreCase)) + { + return i; + } + } + + throw MultiMapException(reader); + } + + private static CacheInfo GetCacheInfo(Identity identity, object exampleParameters, bool addToCache) + { + if (!TryGetQueryCache(identity, out CacheInfo info)) + { + if (GetMultiExec(exampleParameters) != null) + { + throw new InvalidOperationException("An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context"); + } + info = new CacheInfo(); + if (identity.parametersType != null) + { + Action reader; + if (exampleParameters is IDynamicParameters) + { + reader = (cmd, obj) => ((IDynamicParameters)obj).AddParameters(cmd, identity); + } + else if (exampleParameters is IEnumerable>) + { + reader = (cmd, obj) => + { + IDynamicParameters mapped = new DynamicParameters(obj); + mapped.AddParameters(cmd, identity); + }; + } + else + { + var literals = GetLiteralTokens(identity.sql); + reader = CreateParamInfoGenerator(identity, false, true, literals); + } + if ((identity.commandType == null || identity.commandType == CommandType.Text) && ShouldPassByPosition(identity.sql)) + { + var tail = reader; + reader = (cmd, obj) => + { + tail(cmd, obj); + PassByPosition(cmd); + }; + } + info.ParamReader = reader; + } + if (addToCache) SetQueryCache(identity, info); + } + return info; + } + + private static bool ShouldPassByPosition(string sql) + { + return sql?.IndexOf('?') >= 0 && pseudoPositional.IsMatch(sql); + } + + private static void PassByPosition(IDbCommand cmd) + { + if (cmd.Parameters.Count == 0) return; + + Dictionary parameters = new Dictionary(StringComparer.Ordinal); + + foreach (IDbDataParameter param in cmd.Parameters) + { + if (!string.IsNullOrEmpty(param.ParameterName)) parameters[param.ParameterName] = param; + } + HashSet consumed = new HashSet(StringComparer.Ordinal); + bool firstMatch = true; + cmd.CommandText = pseudoPositional.Replace(cmd.CommandText, match => + { + string key = match.Groups[1].Value; + if (!consumed.Add(key)) + { + throw new InvalidOperationException("When passing parameters by position, each parameter can only be referenced once"); + } + else if (parameters.TryGetValue(key, out IDbDataParameter param)) + { + if (firstMatch) + { + firstMatch = false; + cmd.Parameters.Clear(); // only clear if we are pretty positive that we've found this pattern successfully + } + // if found, return the anonymous token "?" + cmd.Parameters.Add(param); + parameters.Remove(key); + consumed.Add(key); + return "?"; + } + else + { + // otherwise, leave alone for simple debugging + return match.Value; + } + }); + } + + private static Func GetDeserializer(Type type, IDataReader reader, int startBound, int length, bool returnNullIfFirstMissing) + { + // dynamic is passed in as Object ... by c# design + if (type == typeof(object) || type == typeof(DapperRow)) + { + return GetDapperRowDeserializer(reader, startBound, length, returnNullIfFirstMissing); + } + Type underlyingType = null; + if (!(typeMap.ContainsKey(type) || type.IsEnum() || type.FullName == LinqBinary + || (type.IsValueType() && (underlyingType = Nullable.GetUnderlyingType(type)) != null && underlyingType.IsEnum()))) + { + if (typeHandlers.TryGetValue(type, out ITypeHandler handler)) + { + return GetHandlerDeserializer(handler, type, startBound); + } + return GetTypeDeserializer(type, reader, startBound, length, returnNullIfFirstMissing); + } + return GetStructDeserializer(type, underlyingType ?? type, startBound); + } + + private static Func GetHandlerDeserializer(ITypeHandler handler, Type type, int startBound) + { + return reader => handler.Parse(type, reader.GetValue(startBound)); + } + + private static Exception MultiMapException(IDataRecord reader) + { + bool hasFields = false; + try { hasFields = reader != null && reader.FieldCount != 0; } + catch { /* don't throw when trying to throw */ } + if (hasFields) + return new ArgumentException("When using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id", "splitOn"); + else + return new InvalidOperationException("No columns were selected"); + } + + internal static Func GetDapperRowDeserializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing) + { + var fieldCount = reader.FieldCount; + if (length == -1) + { + length = fieldCount - startBound; + } + + if (fieldCount <= startBound) + { + throw MultiMapException(reader); + } + + var effectiveFieldCount = Math.Min(fieldCount - startBound, length); + + DapperTable table = null; + + return + r => + { + if (table == null) + { + string[] names = new string[effectiveFieldCount]; + for (int i = 0; i < effectiveFieldCount; i++) + { + names[i] = r.GetName(i + startBound); + } + table = new DapperTable(names); + } + + var values = new object[effectiveFieldCount]; + + if (returnNullIfFirstMissing) + { + values[0] = r.GetValue(startBound); + if (values[0] is DBNull) + { + return null; + } + } + + if (startBound == 0) + { + for (int i = 0; i < values.Length; i++) + { + object val = r.GetValue(i); + values[i] = val is DBNull ? null : val; + } + } + else + { + var begin = returnNullIfFirstMissing ? 1 : 0; + for (var iter = begin; iter < effectiveFieldCount; ++iter) + { + object obj = r.GetValue(iter + startBound); + values[iter] = obj is DBNull ? null : obj; + } + } + return new DapperRow(table, values); + }; + } + /// + /// Internal use only. + /// + /// The object to convert to a character. +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete(ObsoleteInternalUsageOnly, false)] + public static char ReadChar(object value) + { + if (value == null || value is DBNull) throw new ArgumentNullException(nameof(value)); + var s = value as string; + if (s == null || s.Length != 1) throw new ArgumentException("A single-character was expected", nameof(value)); + return s[0]; + } + + /// + /// Internal use only. + /// + /// The object to convert to a character. +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete(ObsoleteInternalUsageOnly, false)] + public static char? ReadNullableChar(object value) + { + if (value == null || value is DBNull) return null; + var s = value as string; + if (s == null || s.Length != 1) throw new ArgumentException("A single-character was expected", nameof(value)); + return s[0]; + } + + /// + /// Internal use only. + /// + /// The parameter collection to search in. + /// The command for this fetch. + /// The name of the parameter to get. +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete(ObsoleteInternalUsageOnly, true)] + public static IDbDataParameter FindOrAddParameter(IDataParameterCollection parameters, IDbCommand command, string name) + { + IDbDataParameter result; + if (parameters.Contains(name)) + { + result = (IDbDataParameter)parameters[name]; + } + else + { + result = command.CreateParameter(); + result.ParameterName = name; + parameters.Add(result); + } + return result; + } + + internal static int GetListPaddingExtraCount(int count) + { + switch (count) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return 0; // no padding + } + if (count < 0) return 0; + + int padFactor; + if (count <= 150) padFactor = 10; + else if (count <= 750) padFactor = 50; + else if (count <= 2000) padFactor = 100; // note: max param count for SQL Server + else if (count <= 2070) padFactor = 10; // try not to over-pad as we approach that limit + else if (count <= 2100) return 0; // just don't pad between 2070 and 2100, to minimize the crazy + else padFactor = 200; // above that, all bets are off! + + // if we have 17, factor = 10; 17 % 10 = 7, we need 3 more + int intoBlock = count % padFactor; + return intoBlock == 0 ? 0 : (padFactor - intoBlock); + } + + private static string GetInListRegex(string name, bool byPosition) => byPosition + ? (@"(\?)" + Regex.Escape(name) + @"\?(?!\w)(\s+(?i)unknown(?-i))?") + : ("([?@:]" + Regex.Escape(name) + @")(?!\w)(\s+(?i)unknown(?-i))?"); + + /// + /// Internal use only. + /// + /// The command to pack parameters for. + /// The name prefix for these parameters. + /// The parameter value can be an +#if !NETSTANDARD1_3 + [Browsable(false)] +#endif + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete(ObsoleteInternalUsageOnly, false)] + public static void PackListParameters(IDbCommand command, string namePrefix, object value) + { + // initially we tried TVP, however it performs quite poorly. + // keep in mind SQL support up to 2000 params easily in sp_executesql, needing more is rare + + if (FeatureSupport.Get(command.Connection).Arrays) + { + var arrayParm = command.CreateParameter(); + arrayParm.Value = SanitizeParameterValue(value); + arrayParm.ParameterName = namePrefix; + command.Parameters.Add(arrayParm); + } + else + { + bool byPosition = ShouldPassByPosition(command.CommandText); + var list = value as IEnumerable; + var count = 0; + bool isString = value is IEnumerable; + bool isDbString = value is IEnumerable; + DbType dbType = 0; + + int splitAt = SqlMapper.Settings.InListStringSplitCount; + bool viaSplit = splitAt >= 0 + && TryStringSplit(ref list, splitAt, namePrefix, command, byPosition); + + if (list != null && !viaSplit) + { + object lastValue = null; + foreach (var item in list) + { + if (++count == 1) // first item: fetch some type info + { + if (item == null) + { + throw new NotSupportedException("The first item in a list-expansion cannot be null"); + } + if (!isDbString) + { + dbType = LookupDbType(item.GetType(), "", true, out ITypeHandler handler); + } + } + var nextName = namePrefix + count.ToString(); + if (isDbString && item is DbString) + { + var str = item as DbString; + str.AddParameter(command, nextName); + } + else + { + var listParam = command.CreateParameter(); + listParam.ParameterName = nextName; + if (isString) + { + listParam.Size = DbString.DefaultLength; + if (item != null && ((string)item).Length > DbString.DefaultLength) + { + listParam.Size = -1; + } + } + + var tmp = listParam.Value = SanitizeParameterValue(item); + if (tmp != null && !(tmp is DBNull)) + lastValue = tmp; // only interested in non-trivial values for padding + + if (listParam.DbType != dbType) + { + listParam.DbType = dbType; + } + command.Parameters.Add(listParam); + } + } + if (Settings.PadListExpansions && !isDbString && lastValue != null) + { + int padCount = GetListPaddingExtraCount(count); + for (int i = 0; i < padCount; i++) + { + count++; + var padParam = command.CreateParameter(); + padParam.ParameterName = namePrefix + count.ToString(); + if (isString) padParam.Size = DbString.DefaultLength; + padParam.DbType = dbType; + padParam.Value = lastValue; + command.Parameters.Add(padParam); + } + } + } + + if (viaSplit) + { + // already done + } + else + { + var regexIncludingUnknown = GetInListRegex(namePrefix, byPosition); + if (count == 0) + { + command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match => + { + var variableName = match.Groups[1].Value; + if (match.Groups[2].Success) + { + // looks like an optimize hint; leave it alone! + return match.Value; + } + else + { + return "(SELECT " + variableName + " WHERE 1 = 0)"; + } + }, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); + var dummyParam = command.CreateParameter(); + dummyParam.ParameterName = namePrefix; + dummyParam.Value = DBNull.Value; + command.Parameters.Add(dummyParam); + } + else + { + command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match => + { + var variableName = match.Groups[1].Value; + if (match.Groups[2].Success) + { + // looks like an optimize hint; expand it + var suffix = match.Groups[2].Value; + + var sb = GetStringBuilder().Append(variableName).Append(1).Append(suffix); + for (int i = 2; i <= count; i++) + { + sb.Append(',').Append(variableName).Append(i).Append(suffix); + } + return sb.__ToStringRecycle(); + } + else + { + var sb = GetStringBuilder().Append('(').Append(variableName); + if (!byPosition) sb.Append(1); + for (int i = 2; i <= count; i++) + { + sb.Append(',').Append(variableName); + if (!byPosition) sb.Append(i); + } + return sb.Append(')').__ToStringRecycle(); + } + }, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); + } + } + } + } + + private static bool TryStringSplit(ref IEnumerable list, int splitAt, string namePrefix, IDbCommand command, bool byPosition) + { + if (list == null || splitAt < 0) return false; + switch (list) + { + case IEnumerable l: + return TryStringSplit(ref l, splitAt, namePrefix, command, "int", byPosition, (sb, i) => sb.Append(i.ToString(CultureInfo.InvariantCulture))); + case IEnumerable l: + return TryStringSplit(ref l, splitAt, namePrefix, command, "bigint", byPosition, (sb, i) => sb.Append(i.ToString(CultureInfo.InvariantCulture))); + case IEnumerable l: + return TryStringSplit(ref l, splitAt, namePrefix, command, "smallint", byPosition, (sb, i) => sb.Append(i.ToString(CultureInfo.InvariantCulture))); + case IEnumerable l: + return TryStringSplit(ref l, splitAt, namePrefix, command, "tinyint", byPosition, (sb, i) => sb.Append(i.ToString(CultureInfo.InvariantCulture))); + } + return false; + } + + private static bool TryStringSplit(ref IEnumerable list, int splitAt, string namePrefix, IDbCommand command, string colType, bool byPosition, + Action append) + { + var typed = list as ICollection; + if (typed == null) + { + typed = list.ToList(); + list = typed; // because we still need to be able to iterate it, even if we fail here + } + if (typed.Count < splitAt) return false; + + string varName = null; + var regexIncludingUnknown = GetInListRegex(namePrefix, byPosition); + var sql = Regex.Replace(command.CommandText, regexIncludingUnknown, match => + { + var variableName = match.Groups[1].Value; + if (match.Groups[2].Success) + { + // looks like an optimize hint; leave it alone! + return match.Value; + } + else + { + varName = variableName; + return "(select cast([value] as " + colType + ") from string_split(" + variableName + ",','))"; + } + }, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); + if (varName == null) return false; // couldn't resolve the var! + + command.CommandText = sql; + var concatenatedParam = command.CreateParameter(); + concatenatedParam.ParameterName = namePrefix; + concatenatedParam.DbType = DbType.AnsiString; + concatenatedParam.Size = -1; + string val; + using (var iter = typed.GetEnumerator()) + { + if (iter.MoveNext()) + { + var sb = GetStringBuilder(); + append(sb, iter.Current); + while (iter.MoveNext()) + { + append(sb.Append(','), iter.Current); + } + val = sb.ToString(); + } + else + { + val = ""; + } + } + concatenatedParam.Value = val; + command.Parameters.Add(concatenatedParam); + return true; + } + + /// + /// OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting. + /// + /// The value to sanitize. + [Obsolete(ObsoleteInternalUsageOnly, false)] + public static object SanitizeParameterValue(object value) + { + if (value == null) return DBNull.Value; + if (value is Enum) + { + TypeCode typeCode; + if (value is IConvertible) + { + typeCode = ((IConvertible)value).GetTypeCode(); + } + else + { + typeCode = TypeExtensions.GetTypeCode(Enum.GetUnderlyingType(value.GetType())); + } + switch (typeCode) + { + case TypeCode.Byte: return (byte)value; + case TypeCode.SByte: return (sbyte)value; + case TypeCode.Int16: return (short)value; + case TypeCode.Int32: return (int)value; + case TypeCode.Int64: return (long)value; + case TypeCode.UInt16: return (ushort)value; + case TypeCode.UInt32: return (uint)value; + case TypeCode.UInt64: return (ulong)value; + } + } + return value; + } + + private static IEnumerable FilterParameters(IEnumerable parameters, string sql) + { + var list = new List(16); + foreach (var p in parameters) + { + if (Regex.IsMatch(sql, @"[?@:]" + p.Name + @"([^\p{L}\p{N}_]+|$)", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant)) + list.Add(p); + } + return list; + } + + // look for ? / @ / : *by itself* + private static readonly Regex smellsLikeOleDb = new Regex(@"(? + /// Replace all literal tokens with their text form. + /// + /// The parameter lookup to do replacements with. + /// The command to repalce parameters in. + public static void ReplaceLiterals(this IParameterLookup parameters, IDbCommand command) + { + var tokens = GetLiteralTokens(command.CommandText); + if (tokens.Count != 0) ReplaceLiterals(parameters, command, tokens); + } + + internal static readonly MethodInfo format = typeof(SqlMapper).GetMethod("Format", BindingFlags.Public | BindingFlags.Static); + + /// + /// Convert numeric values to their string form for SQL literal purposes. + /// + /// The value to get a string for. + [Obsolete(ObsoleteInternalUsageOnly)] + public static string Format(object value) + { + if (value == null) + { + return "null"; + } + else + { + switch (TypeExtensions.GetTypeCode(value.GetType())) + { +#if !NETSTANDARD1_3 + case TypeCode.DBNull: + return "null"; +#endif + case TypeCode.Boolean: + return ((bool)value) ? "1" : "0"; + case TypeCode.Byte: + return ((byte)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.SByte: + return ((sbyte)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.UInt16: + return ((ushort)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Int16: + return ((short)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.UInt32: + return ((uint)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Int32: + return ((int)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.UInt64: + return ((ulong)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Int64: + return ((long)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Single: + return ((float)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Double: + return ((double)value).ToString(CultureInfo.InvariantCulture); + case TypeCode.Decimal: + return ((decimal)value).ToString(CultureInfo.InvariantCulture); + default: + var multiExec = GetMultiExec(value); + if (multiExec != null) + { + StringBuilder sb = null; + bool first = true; + foreach (object subval in multiExec) + { + if (first) + { + sb = GetStringBuilder().Append('('); + first = false; + } + else + { + sb.Append(','); + } + sb.Append(Format(subval)); + } + if (first) + { + return "(select null where 1=0)"; + } + else + { + return sb.Append(')').__ToStringRecycle(); + } + } + throw new NotSupportedException(value.GetType().Name); + } + } + } + + internal static void ReplaceLiterals(IParameterLookup parameters, IDbCommand command, IList tokens) + { + var sql = command.CommandText; + foreach (var token in tokens) + { + object value = parameters[token.Member]; +#pragma warning disable 0618 + string text = Format(value); +#pragma warning restore 0618 + sql = sql.Replace(token.Token, text); + } + command.CommandText = sql; + } + + internal static IList GetLiteralTokens(string sql) + { + if (string.IsNullOrEmpty(sql)) return LiteralToken.None; + if (!literalTokens.IsMatch(sql)) return LiteralToken.None; + + var matches = literalTokens.Matches(sql); + var found = new HashSet(StringComparer.Ordinal); + List list = new List(matches.Count); + foreach (Match match in matches) + { + string token = match.Value; + if (found.Add(match.Value)) + { + list.Add(new LiteralToken(token, match.Groups[1].Value)); + } + } + return list.Count == 0 ? LiteralToken.None : list; + } + + /// + /// Internal use only. + /// + /// The identity of the generator. + /// Whether to check for duplicates. + /// Whether to remove unused parameters. + public static Action CreateParamInfoGenerator(Identity identity, bool checkForDuplicates, bool removeUnused) => + CreateParamInfoGenerator(identity, checkForDuplicates, removeUnused, GetLiteralTokens(identity.sql)); + + private static bool IsValueTuple(Type type) => type?.IsValueType() == true && type.FullName.StartsWith("System.ValueTuple`", StringComparison.Ordinal); + + private static List GetValueTupleMembers(Type type, string[] names) + { + var fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance); + var result = new List(names.Length); + for (int i = 0; i < names.Length; i++) + { + FieldInfo field = null; + string name = "Item" + (i + 1).ToString(CultureInfo.InvariantCulture); + foreach (var test in fields) + { + if (test.Name == name) + { + field = test; + break; + } + } + result.Add(field == null ? null : new SimpleMemberMap(string.IsNullOrWhiteSpace(names[i]) ? name : names[i], field)); + } + return result; + } + + internal static Action CreateParamInfoGenerator(Identity identity, bool checkForDuplicates, bool removeUnused, IList literals) + { + Type type = identity.parametersType; + + if (IsValueTuple(type)) + { + throw new NotSupportedException("ValueTuple should not be used for parameters - the language-level names are not available to use as parameter names, and it adds unnecessary boxing"); + } + + bool filterParams = false; + if (removeUnused && identity.commandType.GetValueOrDefault(CommandType.Text) == CommandType.Text) + { + filterParams = !smellsLikeOleDb.IsMatch(identity.sql); + } + var dm = new DynamicMethod("ParamInfo" + Guid.NewGuid().ToString(), null, new[] { typeof(IDbCommand), typeof(object) }, type, true); + + var il = dm.GetILGenerator(); + + bool isStruct = type.IsValueType(); + bool haveInt32Arg1 = false; + il.Emit(OpCodes.Ldarg_1); // stack is now [untyped-param] + if (isStruct) + { + il.DeclareLocal(type.MakePointerType()); + il.Emit(OpCodes.Unbox, type); // stack is now [typed-param] + } + else + { + il.DeclareLocal(type); // 0 + il.Emit(OpCodes.Castclass, type); // stack is now [typed-param] + } + il.Emit(OpCodes.Stloc_0);// stack is now empty + + il.Emit(OpCodes.Ldarg_0); // stack is now [command] + il.EmitCall(OpCodes.Callvirt, typeof(IDbCommand).GetProperty(nameof(IDbCommand.Parameters)).GetGetMethod(), null); // stack is now [parameters] + + var allTypeProps = type.GetProperties(); + var propsList = new List(allTypeProps.Length); + for (int i = 0; i < allTypeProps.Length; ++i) + { + var p = allTypeProps[i]; + if (p.GetIndexParameters().Length == 0) + propsList.Add(p); + } + + var ctors = type.GetConstructors(); + ParameterInfo[] ctorParams; + IEnumerable props = null; + // try to detect tuple patterns, e.g. anon-types, and use that to choose the order + // otherwise: alphabetical + if (ctors.Length == 1 && propsList.Count == (ctorParams = ctors[0].GetParameters()).Length) + { + // check if reflection was kind enough to put everything in the right order for us + bool ok = true; + for (int i = 0; i < propsList.Count; i++) + { + if (!string.Equals(propsList[i].Name, ctorParams[i].Name, StringComparison.OrdinalIgnoreCase)) + { + ok = false; + break; + } + } + if (ok) + { + // pre-sorted; the reflection gods have smiled upon us + props = propsList; + } + else + { // might still all be accounted for; check the hard way + var positionByName = new Dictionary(StringComparer.OrdinalIgnoreCase); + foreach (var param in ctorParams) + { + positionByName[param.Name] = param.Position; + } + if (positionByName.Count == propsList.Count) + { + int[] positions = new int[propsList.Count]; + ok = true; + for (int i = 0; i < propsList.Count; i++) + { + if (!positionByName.TryGetValue(propsList[i].Name, out int pos)) + { + ok = false; + break; + } + positions[i] = pos; + } + if (ok) + { + props = propsList.ToArray(); + Array.Sort(positions, (PropertyInfo[])props); + } + } + } + } + if (props == null) + { + propsList.Sort(new PropertyInfoByNameComparer()); + props = propsList; + } + if (filterParams) + { + props = FilterParameters(props, identity.sql); + } + + var callOpCode = isStruct ? OpCodes.Call : OpCodes.Callvirt; + foreach (var prop in props) + { + if (typeof(ICustomQueryParameter).IsAssignableFrom(prop.PropertyType)) + { + il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [typed-param] + il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [custom] + il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [custom] [command] + il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [custom] [command] [name] + il.EmitCall(OpCodes.Callvirt, prop.PropertyType.GetMethod(nameof(ICustomQueryParameter.AddParameter)), null); // stack is now [parameters] + continue; + } +#pragma warning disable 618 + DbType dbType = LookupDbType(prop.PropertyType, prop.Name, true, out ITypeHandler handler); +#pragma warning restore 618 + if (dbType == DynamicParameters.EnumerableMultiParameter) + { + // this actually represents special handling for list types; + il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [command] + il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [command] [name] + il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [command] [name] [typed-param] + il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [command] [name] [typed-value] + if (prop.PropertyType.IsValueType()) + { + il.Emit(OpCodes.Box, prop.PropertyType); // stack is [parameters] [command] [name] [boxed-value] + } + il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod(nameof(SqlMapper.PackListParameters)), null); // stack is [parameters] + continue; + } + il.Emit(OpCodes.Dup); // stack is now [parameters] [parameters] + + il.Emit(OpCodes.Ldarg_0); // stack is now [parameters] [parameters] [command] + + if (checkForDuplicates) + { + // need to be a little careful about adding; use a utility method + il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [parameters] [command] [name] + il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod(nameof(SqlMapper.FindOrAddParameter)), null); // stack is [parameters] [parameter] + } + else + { + // no risk of duplicates; just blindly add + il.EmitCall(OpCodes.Callvirt, typeof(IDbCommand).GetMethod(nameof(IDbCommand.CreateParameter)), null);// stack is now [parameters] [parameters] [parameter] + + il.Emit(OpCodes.Dup);// stack is now [parameters] [parameters] [parameter] [parameter] + il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [parameters] [parameter] [parameter] [name] + il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty(nameof(IDataParameter.ParameterName)).GetSetMethod(), null);// stack is now [parameters] [parameters] [parameter] + } + if (dbType != DbType.Time && handler == null) // https://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time + { + il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] + if (dbType == DbType.Object && prop.PropertyType == typeof(object)) // includes dynamic + { + // look it up from the param value + il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param] + il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [[parameters]] [parameter] [parameter] [object-value] + il.Emit(OpCodes.Call, typeof(SqlMapper).GetMethod(nameof(SqlMapper.GetDbType), BindingFlags.Static | BindingFlags.Public)); // stack is now [parameters] [[parameters]] [parameter] [parameter] [db-type] + } + else + { + // constant value; nice and simple + EmitInt32(il, (int)dbType);// stack is now [parameters] [[parameters]] [parameter] [parameter] [db-type] + } + il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty(nameof(IDataParameter.DbType)).GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] + } + + il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] + EmitInt32(il, (int)ParameterDirection.Input);// stack is now [parameters] [[parameters]] [parameter] [parameter] [dir] + il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty(nameof(IDataParameter.Direction)).GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] + + il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] + il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param] + il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [[parameters]] [parameter] [parameter] [typed-value] + bool checkForNull; + if (prop.PropertyType.IsValueType()) + { + var propType = prop.PropertyType; + var nullType = Nullable.GetUnderlyingType(propType); + bool callSanitize = false; + + if ((nullType ?? propType).IsEnum()) + { + if (nullType != null) + { + // Nullable; we want to box as the underlying type; that's just *hard*; for + // simplicity, box as Nullable and call SanitizeParameterValue + callSanitize = checkForNull = true; + } + else + { + checkForNull = false; + // non-nullable enum; we can do that! just box to the wrong type! (no, really) + switch (TypeExtensions.GetTypeCode(Enum.GetUnderlyingType(propType))) + { + case TypeCode.Byte: propType = typeof(byte); break; + case TypeCode.SByte: propType = typeof(sbyte); break; + case TypeCode.Int16: propType = typeof(short); break; + case TypeCode.Int32: propType = typeof(int); break; + case TypeCode.Int64: propType = typeof(long); break; + case TypeCode.UInt16: propType = typeof(ushort); break; + case TypeCode.UInt32: propType = typeof(uint); break; + case TypeCode.UInt64: propType = typeof(ulong); break; + } + } + } + else + { + checkForNull = nullType != null; + } + il.Emit(OpCodes.Box, propType); // stack is [parameters] [[parameters]] [parameter] [parameter] [boxed-value] + if (callSanitize) + { + checkForNull = false; // handled by sanitize + il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod(nameof(SanitizeParameterValue)), null); + // stack is [parameters] [[parameters]] [parameter] [parameter] [boxed-value] + } + } + else + { + checkForNull = true; // if not a value-type, need to check + } + if (checkForNull) + { + if ((dbType == DbType.String || dbType == DbType.AnsiString) && !haveInt32Arg1) + { + il.DeclareLocal(typeof(int)); + haveInt32Arg1 = true; + } + // relative stack: [boxed value] + il.Emit(OpCodes.Dup);// relative stack: [boxed value] [boxed value] + Label notNull = il.DefineLabel(); + Label? allDone = (dbType == DbType.String || dbType == DbType.AnsiString) ? il.DefineLabel() : (Label?)null; + il.Emit(OpCodes.Brtrue_S, notNull); + // relative stack [boxed value = null] + il.Emit(OpCodes.Pop); // relative stack empty + il.Emit(OpCodes.Ldsfld, typeof(DBNull).GetField(nameof(DBNull.Value))); // relative stack [DBNull] + if (dbType == DbType.String || dbType == DbType.AnsiString) + { + EmitInt32(il, 0); + il.Emit(OpCodes.Stloc_1); + } + if (allDone != null) il.Emit(OpCodes.Br_S, allDone.Value); + il.MarkLabel(notNull); + if (prop.PropertyType == typeof(string)) + { + il.Emit(OpCodes.Dup); // [string] [string] + il.EmitCall(OpCodes.Callvirt, typeof(string).GetProperty(nameof(string.Length)).GetGetMethod(), null); // [string] [length] + EmitInt32(il, DbString.DefaultLength); // [string] [length] [4000] + il.Emit(OpCodes.Cgt); // [string] [0 or 1] + Label isLong = il.DefineLabel(), lenDone = il.DefineLabel(); + il.Emit(OpCodes.Brtrue_S, isLong); + EmitInt32(il, DbString.DefaultLength); // [string] [4000] + il.Emit(OpCodes.Br_S, lenDone); + il.MarkLabel(isLong); + EmitInt32(il, -1); // [string] [-1] + il.MarkLabel(lenDone); + il.Emit(OpCodes.Stloc_1); // [string] + } + if (prop.PropertyType.FullName == LinqBinary) + { + il.EmitCall(OpCodes.Callvirt, prop.PropertyType.GetMethod("ToArray", BindingFlags.Public | BindingFlags.Instance), null); + } + if (allDone != null) il.MarkLabel(allDone.Value); + // relative stack [boxed value or DBNull] + } + + if (handler != null) + { +#pragma warning disable 618 + il.Emit(OpCodes.Call, typeof(TypeHandlerCache<>).MakeGenericType(prop.PropertyType).GetMethod(nameof(TypeHandlerCache.SetValue))); // stack is now [parameters] [[parameters]] [parameter] +#pragma warning restore 618 + } + else + { + il.EmitCall(OpCodes.Callvirt, typeof(IDataParameter).GetProperty(nameof(IDataParameter.Value)).GetSetMethod(), null);// stack is now [parameters] [[parameters]] [parameter] + } + + if (prop.PropertyType == typeof(string)) + { + var endOfSize = il.DefineLabel(); + // don't set if 0 + il.Emit(OpCodes.Ldloc_1); // [parameters] [[parameters]] [parameter] [size] + il.Emit(OpCodes.Brfalse_S, endOfSize); // [parameters] [[parameters]] [parameter] + + il.Emit(OpCodes.Dup);// stack is now [parameters] [[parameters]] [parameter] [parameter] + il.Emit(OpCodes.Ldloc_1); // stack is now [parameters] [[parameters]] [parameter] [parameter] [size] + il.EmitCall(OpCodes.Callvirt, typeof(IDbDataParameter).GetProperty(nameof(IDbDataParameter.Size)).GetSetMethod(), null); // stack is now [parameters] [[parameters]] [parameter] + + il.MarkLabel(endOfSize); + } + if (checkForDuplicates) + { + // stack is now [parameters] [parameter] + il.Emit(OpCodes.Pop); // don't need parameter any more + } + else + { + // stack is now [parameters] [parameters] [parameter] + // blindly add + il.EmitCall(OpCodes.Callvirt, typeof(IList).GetMethod(nameof(IList.Add)), null); // stack is now [parameters] + il.Emit(OpCodes.Pop); // IList.Add returns the new index (int); we don't care + } + } + + // stack is currently [parameters] + il.Emit(OpCodes.Pop); // stack is now empty + + if (literals.Count != 0 && propsList != null) + { + il.Emit(OpCodes.Ldarg_0); // command + il.Emit(OpCodes.Ldarg_0); // command, command + var cmdText = typeof(IDbCommand).GetProperty(nameof(IDbCommand.CommandText)); + il.EmitCall(OpCodes.Callvirt, cmdText.GetGetMethod(), null); // command, sql + Dictionary locals = null; + LocalBuilder local = null; + foreach (var literal in literals) + { + // find the best member, preferring case-sensitive + PropertyInfo exact = null, fallback = null; + string huntName = literal.Member; + for (int i = 0; i < propsList.Count; i++) + { + string thisName = propsList[i].Name; + if (string.Equals(thisName, huntName, StringComparison.OrdinalIgnoreCase)) + { + fallback = propsList[i]; + if (string.Equals(thisName, huntName, StringComparison.Ordinal)) + { + exact = fallback; + break; + } + } + } + var prop = exact ?? fallback; + + if (prop != null) + { + il.Emit(OpCodes.Ldstr, literal.Token); + il.Emit(OpCodes.Ldloc_0); // command, sql, typed parameter + il.EmitCall(callOpCode, prop.GetGetMethod(), null); // command, sql, typed value + Type propType = prop.PropertyType; + var typeCode = TypeExtensions.GetTypeCode(propType); + switch (typeCode) + { + case TypeCode.Boolean: + Label ifTrue = il.DefineLabel(), allDone = il.DefineLabel(); + il.Emit(OpCodes.Brtrue_S, ifTrue); + il.Emit(OpCodes.Ldstr, "0"); + il.Emit(OpCodes.Br_S, allDone); + il.MarkLabel(ifTrue); + il.Emit(OpCodes.Ldstr, "1"); + il.MarkLabel(allDone); + break; + case TypeCode.Byte: + case TypeCode.SByte: + case TypeCode.UInt16: + case TypeCode.Int16: + case TypeCode.UInt32: + case TypeCode.Int32: + case TypeCode.UInt64: + case TypeCode.Int64: + case TypeCode.Single: + case TypeCode.Double: + case TypeCode.Decimal: + // need to stloc, ldloca, call + // re-use existing locals (both the last known, and via a dictionary) + var convert = GetToString(typeCode); + if (local == null || local.LocalType != propType) + { + if (locals == null) + { + locals = new Dictionary(); + local = null; + } + else + { + if (!locals.TryGetValue(propType, out local)) local = null; + } + if (local == null) + { + local = il.DeclareLocal(propType); + locals.Add(propType, local); + } + } + il.Emit(OpCodes.Stloc, local); // command, sql + il.Emit(OpCodes.Ldloca, local); // command, sql, ref-to-value + il.EmitCall(OpCodes.Call, InvariantCulture, null); // command, sql, ref-to-value, culture + il.EmitCall(OpCodes.Call, convert, null); // command, sql, string value + break; + default: + if (propType.IsValueType()) il.Emit(OpCodes.Box, propType); // command, sql, object value + il.EmitCall(OpCodes.Call, format, null); // command, sql, string value + break; + } + il.EmitCall(OpCodes.Callvirt, StringReplace, null); + } + } + il.EmitCall(OpCodes.Callvirt, cmdText.GetSetMethod(), null); // empty + } + + il.Emit(OpCodes.Ret); + return (Action)dm.CreateDelegate(typeof(Action)); + } + + private static readonly Dictionary toStrings = new[] + { + typeof(bool), typeof(sbyte), typeof(byte), typeof(ushort), typeof(short), + typeof(uint), typeof(int), typeof(ulong), typeof(long), typeof(float), typeof(double), typeof(decimal) + }.ToDictionary(x => TypeExtensions.GetTypeCode(x), x => x.GetPublicInstanceMethod(nameof(object.ToString), new[] { typeof(IFormatProvider) })); + + private static MethodInfo GetToString(TypeCode typeCode) + { + return toStrings.TryGetValue(typeCode, out MethodInfo method) ? method : null; + } + + private static readonly MethodInfo StringReplace = typeof(string).GetPublicInstanceMethod(nameof(string.Replace), new Type[] { typeof(string), typeof(string) }), + InvariantCulture = typeof(CultureInfo).GetProperty(nameof(CultureInfo.InvariantCulture), BindingFlags.Public | BindingFlags.Static).GetGetMethod(); + + private static int ExecuteCommand(IDbConnection cnn, ref CommandDefinition command, Action paramReader) + { + IDbCommand cmd = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + try + { + cmd = command.SetupCommand(cnn, paramReader); + if (wasClosed) cnn.Open(); + int result = cmd.ExecuteNonQuery(); + command.OnCompleted(); + return result; + } + finally + { + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + } + + private static T ExecuteScalarImpl(IDbConnection cnn, ref CommandDefinition command) + { + Action paramReader = null; + object param = command.Parameters; + if (param != null) + { + var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); + paramReader = GetCacheInfo(identity, command.Parameters, command.AddToCache).ParamReader; + } + + IDbCommand cmd = null; + bool wasClosed = cnn.State == ConnectionState.Closed; + object result; + try + { + cmd = command.SetupCommand(cnn, paramReader); + if (wasClosed) cnn.Open(); + result = cmd.ExecuteScalar(); + command.OnCompleted(); + } + finally + { + if (wasClosed) cnn.Close(); + cmd?.Dispose(); + } + return Parse(result); + } + + private static IDataReader ExecuteReaderImpl(IDbConnection cnn, ref CommandDefinition command, CommandBehavior commandBehavior, out IDbCommand cmd) + { + Action paramReader = GetParameterReader(cnn, ref command); + cmd = null; + bool wasClosed = cnn.State == ConnectionState.Closed, disposeCommand = true; + try + { + cmd = command.SetupCommand(cnn, paramReader); + if (wasClosed) cnn.Open(); + var reader = ExecuteReaderWithFlagsFallback(cmd, wasClosed, commandBehavior); + wasClosed = false; // don't dispose before giving it to them! + disposeCommand = false; + // note: command.FireOutputCallbacks(); would be useless here; parameters come at the **end** of the TDS stream + return reader; + } + finally + { + if (wasClosed) cnn.Close(); + if (cmd != null && disposeCommand) cmd.Dispose(); + } + } + + private static Action GetParameterReader(IDbConnection cnn, ref CommandDefinition command) + { + object param = command.Parameters; + IEnumerable multiExec = GetMultiExec(param); + CacheInfo info = null; + if (multiExec != null) + { + throw new NotSupportedException("MultiExec is not supported by ExecuteReader"); + } + + // nice and simple + if (param != null) + { + var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param.GetType(), null); + info = GetCacheInfo(identity, param, command.AddToCache); + } + var paramReader = info?.ParamReader; + return paramReader; + } + + private static Func GetStructDeserializer(Type type, Type effectiveType, int index) + { + // no point using special per-type handling here; it boils down to the same, plus not all are supported anyway (see: SqlDataReader.GetChar - not supported!) +#pragma warning disable 618 + if (type == typeof(char)) + { // this *does* need special handling, though + return r => ReadChar(r.GetValue(index)); + } + if (type == typeof(char?)) + { + return r => ReadNullableChar(r.GetValue(index)); + } + if (type.FullName == LinqBinary) + { + return r => Activator.CreateInstance(type, r.GetValue(index)); + } +#pragma warning restore 618 + + if (effectiveType.IsEnum()) + { // assume the value is returned as the correct type (int/byte/etc), but box back to the typed enum + return r => + { + var val = r.GetValue(index); + if (val is float || val is double || val is decimal) + { + val = Convert.ChangeType(val, Enum.GetUnderlyingType(effectiveType), CultureInfo.InvariantCulture); + } + return val is DBNull ? null : Enum.ToObject(effectiveType, val); + }; + } + if (typeHandlers.TryGetValue(type, out ITypeHandler handler)) + { + return r => + { + var val = r.GetValue(index); + return val is DBNull ? null : handler.Parse(type, val); + }; + } + return r => + { + var val = r.GetValue(index); + return val is DBNull ? null : val; + }; + } + + private static T Parse(object value) + { + if (value == null || value is DBNull) return default(T); + if (value is T) return (T)value; + var type = typeof(T); + type = Nullable.GetUnderlyingType(type) ?? type; + if (type.IsEnum()) + { + if (value is float || value is double || value is decimal) + { + value = Convert.ChangeType(value, Enum.GetUnderlyingType(type), CultureInfo.InvariantCulture); + } + return (T)Enum.ToObject(type, value); + } + if (typeHandlers.TryGetValue(type, out ITypeHandler handler)) + { + return (T)handler.Parse(type, value); + } + return (T)Convert.ChangeType(value, type, CultureInfo.InvariantCulture); + } + + private static readonly MethodInfo + enumParse = typeof(Enum).GetMethod(nameof(Enum.Parse), new Type[] { typeof(Type), typeof(string), typeof(bool) }), + getItem = typeof(IDataRecord).GetProperties(BindingFlags.Instance | BindingFlags.Public) + .Where(p => p.GetIndexParameters().Length > 0 && p.GetIndexParameters()[0].ParameterType == typeof(int)) + .Select(p => p.GetGetMethod()).First(); + + /// + /// Gets type-map for the given type + /// + /// Type map instance, default is to create new instance of DefaultTypeMap + public static Func TypeMapProvider = (Type type) => new DefaultTypeMap(type); + + /// + /// Gets type-map for the given . + /// + /// The type to get a map for. + /// Type map implementation, DefaultTypeMap instance if no override present + public static ITypeMap GetTypeMap(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + var map = (ITypeMap)_typeMaps[type]; + if (map == null) + { + lock (_typeMaps) + { // double-checked; store this to avoid reflection next time we see this type + // since multiple queries commonly use the same domain-entity/DTO/view-model type + map = (ITypeMap)_typeMaps[type]; + + if (map == null) + { + map = TypeMapProvider(type); + _typeMaps[type] = map; + } + } + } + return map; + } + + // use Hashtable to get free lockless reading + private static readonly Hashtable _typeMaps = new Hashtable(); + + /// + /// Set custom mapping for type deserializers + /// + /// Entity type to override + /// Mapping rules impementation, null to remove custom map + public static void SetTypeMap(Type type, ITypeMap map) + { + if (type == null) + throw new ArgumentNullException(nameof(type)); + + if (map == null || map is DefaultTypeMap) + { + lock (_typeMaps) + { + _typeMaps.Remove(type); + } + } + else + { + lock (_typeMaps) + { + _typeMaps[type] = map; + } + } + + PurgeQueryCacheByType(type); + } + + /// + /// Internal use only + /// + /// + /// + /// + /// + /// + /// + public static Func GetTypeDeserializer( + Type type, IDataReader reader, int startBound = 0, int length = -1, bool returnNullIfFirstMissing = false + ) + { + return TypeDeserializerCache.GetReader(type, reader, startBound, length, returnNullIfFirstMissing); + } + + private static LocalBuilder GetTempLocal(ILGenerator il, ref Dictionary locals, Type type, bool initAndLoad) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + locals = locals ?? new Dictionary(); + if (!locals.TryGetValue(type, out LocalBuilder found)) + { + found = il.DeclareLocal(type); + locals.Add(type, found); + } + if (initAndLoad) + { + il.Emit(OpCodes.Ldloca, (short)found.LocalIndex); + il.Emit(OpCodes.Initobj, type); + il.Emit(OpCodes.Ldloca, (short)found.LocalIndex); + il.Emit(OpCodes.Ldobj, type); + } + return found; + } + + private static Func GetTypeDeserializerImpl( + Type type, IDataReader reader, int startBound = 0, int length = -1, bool returnNullIfFirstMissing = false + ) + { + var returnType = type.IsValueType() ? typeof(object) : type; + var dm = new DynamicMethod("Deserialize" + Guid.NewGuid().ToString(), returnType, new[] { typeof(IDataReader) }, type, true); + var il = dm.GetILGenerator(); + il.DeclareLocal(typeof(int)); + il.DeclareLocal(type); + il.Emit(OpCodes.Ldc_I4_0); + il.Emit(OpCodes.Stloc_0); + + if (length == -1) + { + length = reader.FieldCount - startBound; + } + + if (reader.FieldCount <= startBound) + { + throw MultiMapException(reader); + } + + var names = Enumerable.Range(startBound, length).Select(i => reader.GetName(i)).ToArray(); + + ITypeMap typeMap = GetTypeMap(type); + + int index = startBound; + ConstructorInfo specializedConstructor = null; + +#if !NETSTANDARD1_3 + bool supportInitialize = false; +#endif + Dictionary structLocals = null; + if (type.IsValueType()) + { + il.Emit(OpCodes.Ldloca_S, (byte)1); + il.Emit(OpCodes.Initobj, type); + } + else + { + var types = new Type[length]; + for (int i = startBound; i < startBound + length; i++) + { + types[i - startBound] = reader.GetFieldType(i); + } + + var explicitConstr = typeMap.FindExplicitConstructor(); + if (explicitConstr != null) + { + var consPs = explicitConstr.GetParameters(); + foreach (var p in consPs) + { + if (!p.ParameterType.IsValueType()) + { + il.Emit(OpCodes.Ldnull); + } + else + { + GetTempLocal(il, ref structLocals, p.ParameterType, true); + } + } + + il.Emit(OpCodes.Newobj, explicitConstr); + il.Emit(OpCodes.Stloc_1); +#if !NETSTANDARD1_3 + supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type); + if (supportInitialize) + { + il.Emit(OpCodes.Ldloc_1); + il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod(nameof(ISupportInitialize.BeginInit)), null); + } +#endif + } + else + { + var ctor = typeMap.FindConstructor(names, types); + if (ctor == null) + { + string proposedTypes = "(" + string.Join(", ", types.Select((t, i) => t.FullName + " " + names[i]).ToArray()) + ")"; + throw new InvalidOperationException($"A parameterless default constructor or one matching signature {proposedTypes} is required for {type.FullName} materialization"); + } + + if (ctor.GetParameters().Length == 0) + { + il.Emit(OpCodes.Newobj, ctor); + il.Emit(OpCodes.Stloc_1); +#if !NETSTANDARD1_3 + supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type); + if (supportInitialize) + { + il.Emit(OpCodes.Ldloc_1); + il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod(nameof(ISupportInitialize.BeginInit)), null); + } +#endif + } + else + { + specializedConstructor = ctor; + } + } + } + + il.BeginExceptionBlock(); + if (type.IsValueType()) + { + il.Emit(OpCodes.Ldloca_S, (byte)1);// [target] + } + else if (specializedConstructor == null) + { + il.Emit(OpCodes.Ldloc_1);// [target] + } + + var members = IsValueTuple(type) ? GetValueTupleMembers(type, names) : ((specializedConstructor != null + ? names.Select(n => typeMap.GetConstructorParameter(specializedConstructor, n)) + : names.Select(n => typeMap.GetMember(n))).ToList()); + + // stack is now [target] + + bool first = true; + var allDone = il.DefineLabel(); + int enumDeclareLocal = -1, valueCopyLocal = il.DeclareLocal(typeof(object)).LocalIndex; + bool applyNullSetting = Settings.ApplyNullValues; + foreach (var item in members) + { + if (item != null) + { + if (specializedConstructor == null) + il.Emit(OpCodes.Dup); // stack is now [target][target] + Label isDbNullLabel = il.DefineLabel(); + Label finishLabel = il.DefineLabel(); + + il.Emit(OpCodes.Ldarg_0); // stack is now [target][target][reader] + EmitInt32(il, index); // stack is now [target][target][reader][index] + il.Emit(OpCodes.Dup);// stack is now [target][target][reader][index][index] + il.Emit(OpCodes.Stloc_0);// stack is now [target][target][reader][index] + il.Emit(OpCodes.Callvirt, getItem); // stack is now [target][target][value-as-object] + il.Emit(OpCodes.Dup); // stack is now [target][target][value-as-object][value-as-object] + StoreLocal(il, valueCopyLocal); + Type colType = reader.GetFieldType(index); + Type memberType = item.MemberType; + + if (memberType == typeof(char) || memberType == typeof(char?)) + { + il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod( + memberType == typeof(char) ? nameof(SqlMapper.ReadChar) : nameof(SqlMapper.ReadNullableChar), BindingFlags.Static | BindingFlags.Public), null); // stack is now [target][target][typed-value] + } + else + { + il.Emit(OpCodes.Dup); // stack is now [target][target][value][value] + il.Emit(OpCodes.Isinst, typeof(DBNull)); // stack is now [target][target][value-as-object][DBNull or null] + il.Emit(OpCodes.Brtrue_S, isDbNullLabel); // stack is now [target][target][value-as-object] + + // unbox nullable enums as the primitive, i.e. byte etc + + var nullUnderlyingType = Nullable.GetUnderlyingType(memberType); + var unboxType = nullUnderlyingType?.IsEnum() == true ? nullUnderlyingType : memberType; + + if (unboxType.IsEnum()) + { + Type numericType = Enum.GetUnderlyingType(unboxType); + if (colType == typeof(string)) + { + if (enumDeclareLocal == -1) + { + enumDeclareLocal = il.DeclareLocal(typeof(string)).LocalIndex; + } + il.Emit(OpCodes.Castclass, typeof(string)); // stack is now [target][target][string] + StoreLocal(il, enumDeclareLocal); // stack is now [target][target] + il.Emit(OpCodes.Ldtoken, unboxType); // stack is now [target][target][enum-type-token] + il.EmitCall(OpCodes.Call, typeof(Type).GetMethod(nameof(Type.GetTypeFromHandle)), null);// stack is now [target][target][enum-type] + LoadLocal(il, enumDeclareLocal); // stack is now [target][target][enum-type][string] + il.Emit(OpCodes.Ldc_I4_1); // stack is now [target][target][enum-type][string][true] + il.EmitCall(OpCodes.Call, enumParse, null); // stack is now [target][target][enum-as-object] + il.Emit(OpCodes.Unbox_Any, unboxType); // stack is now [target][target][typed-value] + } + else + { + FlexibleConvertBoxedFromHeadOfStack(il, colType, unboxType, numericType); + } + + if (nullUnderlyingType != null) + { + il.Emit(OpCodes.Newobj, memberType.GetConstructor(new[] { nullUnderlyingType })); // stack is now [target][target][typed-value] + } + } + else if (memberType.FullName == LinqBinary) + { + il.Emit(OpCodes.Unbox_Any, typeof(byte[])); // stack is now [target][target][byte-array] + il.Emit(OpCodes.Newobj, memberType.GetConstructor(new Type[] { typeof(byte[]) }));// stack is now [target][target][binary] + } + else + { + TypeCode dataTypeCode = TypeExtensions.GetTypeCode(colType), unboxTypeCode = TypeExtensions.GetTypeCode(unboxType); + bool hasTypeHandler; + if ((hasTypeHandler = typeHandlers.ContainsKey(unboxType)) || colType == unboxType || dataTypeCode == unboxTypeCode || dataTypeCode == TypeExtensions.GetTypeCode(nullUnderlyingType)) + { + if (hasTypeHandler) + { +#pragma warning disable 618 + il.EmitCall(OpCodes.Call, typeof(TypeHandlerCache<>).MakeGenericType(unboxType).GetMethod(nameof(TypeHandlerCache.Parse)), null); // stack is now [target][target][typed-value] +#pragma warning restore 618 + } + else + { + il.Emit(OpCodes.Unbox_Any, unboxType); // stack is now [target][target][typed-value] + } + } + else + { + // not a direct match; need to tweak the unbox + FlexibleConvertBoxedFromHeadOfStack(il, colType, nullUnderlyingType ?? unboxType, null); + if (nullUnderlyingType != null) + { + il.Emit(OpCodes.Newobj, unboxType.GetConstructor(new[] { nullUnderlyingType })); // stack is now [target][target][typed-value] + } + } + } + } + if (specializedConstructor == null) + { + // Store the value in the property/field + if (item.Property != null) + { + il.Emit(type.IsValueType() ? OpCodes.Call : OpCodes.Callvirt, DefaultTypeMap.GetPropertySetter(item.Property, type)); + } + else + { + il.Emit(OpCodes.Stfld, item.Field); // stack is now [target] + } + } + + il.Emit(OpCodes.Br_S, finishLabel); // stack is now [target] + + il.MarkLabel(isDbNullLabel); // incoming stack: [target][target][value] + if (specializedConstructor != null) + { + il.Emit(OpCodes.Pop); + if (item.MemberType.IsValueType()) + { + int localIndex = il.DeclareLocal(item.MemberType).LocalIndex; + LoadLocalAddress(il, localIndex); + il.Emit(OpCodes.Initobj, item.MemberType); + LoadLocal(il, localIndex); + } + else + { + il.Emit(OpCodes.Ldnull); + } + } + else if (applyNullSetting && (!memberType.IsValueType() || Nullable.GetUnderlyingType(memberType) != null)) + { + il.Emit(OpCodes.Pop); // stack is now [target][target] + // can load a null with this value + if (memberType.IsValueType()) + { // must be Nullable for some T + GetTempLocal(il, ref structLocals, memberType, true); // stack is now [target][target][null] + } + else + { // regular reference-type + il.Emit(OpCodes.Ldnull); // stack is now [target][target][null] + } + + // Store the value in the property/field + if (item.Property != null) + { + il.Emit(type.IsValueType() ? OpCodes.Call : OpCodes.Callvirt, DefaultTypeMap.GetPropertySetter(item.Property, type)); + // stack is now [target] + } + else + { + il.Emit(OpCodes.Stfld, item.Field); // stack is now [target] + } + } + else + { + il.Emit(OpCodes.Pop); // stack is now [target][target] + il.Emit(OpCodes.Pop); // stack is now [target] + } + + if (first && returnNullIfFirstMissing) + { + il.Emit(OpCodes.Pop); + il.Emit(OpCodes.Ldnull); // stack is now [null] + il.Emit(OpCodes.Stloc_1); + il.Emit(OpCodes.Br, allDone); + } + + il.MarkLabel(finishLabel); + } + first = false; + index++; + } + if (type.IsValueType()) + { + il.Emit(OpCodes.Pop); + } + else + { + if (specializedConstructor != null) + { + il.Emit(OpCodes.Newobj, specializedConstructor); + } + il.Emit(OpCodes.Stloc_1); // stack is empty +#if !NETSTANDARD1_3 + if (supportInitialize) + { + il.Emit(OpCodes.Ldloc_1); + il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod(nameof(ISupportInitialize.EndInit)), null); + } +#endif + } + il.MarkLabel(allDone); + il.BeginCatchBlock(typeof(Exception)); // stack is Exception + il.Emit(OpCodes.Ldloc_0); // stack is Exception, index + il.Emit(OpCodes.Ldarg_0); // stack is Exception, index, reader + LoadLocal(il, valueCopyLocal); // stack is Exception, index, reader, value + il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod(nameof(SqlMapper.ThrowDataException)), null); + il.EndExceptionBlock(); + + il.Emit(OpCodes.Ldloc_1); // stack is [rval] + if (type.IsValueType()) + { + il.Emit(OpCodes.Box, type); + } + il.Emit(OpCodes.Ret); + + var funcType = System.Linq.Expressions.Expression.GetFuncType(typeof(IDataReader), returnType); + return (Func)dm.CreateDelegate(funcType); + } + + private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type from, Type to, Type via) + { + MethodInfo op; + if (from == (via ?? to)) + { + il.Emit(OpCodes.Unbox_Any, to); // stack is now [target][target][typed-value] + } + else if ((op = GetOperator(from, to)) != null) + { + // this is handy for things like decimal <===> double + il.Emit(OpCodes.Unbox_Any, from); // stack is now [target][target][data-typed-value] + il.Emit(OpCodes.Call, op); // stack is now [target][target][typed-value] + } + else + { + bool handled = false; + OpCode opCode = default(OpCode); + switch (TypeExtensions.GetTypeCode(from)) + { + case TypeCode.Boolean: + case TypeCode.Byte: + case TypeCode.SByte: + case TypeCode.Int16: + case TypeCode.UInt16: + case TypeCode.Int32: + case TypeCode.UInt32: + case TypeCode.Int64: + case TypeCode.UInt64: + case TypeCode.Single: + case TypeCode.Double: + handled = true; + switch (TypeExtensions.GetTypeCode(via ?? to)) + { + case TypeCode.Byte: + opCode = OpCodes.Conv_Ovf_I1_Un; break; + case TypeCode.SByte: + opCode = OpCodes.Conv_Ovf_I1; break; + case TypeCode.UInt16: + opCode = OpCodes.Conv_Ovf_I2_Un; break; + case TypeCode.Int16: + opCode = OpCodes.Conv_Ovf_I2; break; + case TypeCode.UInt32: + opCode = OpCodes.Conv_Ovf_I4_Un; break; + case TypeCode.Boolean: // boolean is basically an int, at least at this level + case TypeCode.Int32: + opCode = OpCodes.Conv_Ovf_I4; break; + case TypeCode.UInt64: + opCode = OpCodes.Conv_Ovf_I8_Un; break; + case TypeCode.Int64: + opCode = OpCodes.Conv_Ovf_I8; break; + case TypeCode.Single: + opCode = OpCodes.Conv_R4; break; + case TypeCode.Double: + opCode = OpCodes.Conv_R8; break; + default: + handled = false; + break; + } + break; + } + if (handled) + { + il.Emit(OpCodes.Unbox_Any, from); // stack is now [target][target][col-typed-value] + il.Emit(opCode); // stack is now [target][target][typed-value] + if (to == typeof(bool)) + { // compare to zero; I checked "csc" - this is the trick it uses; nice + il.Emit(OpCodes.Ldc_I4_0); + il.Emit(OpCodes.Ceq); + il.Emit(OpCodes.Ldc_I4_0); + il.Emit(OpCodes.Ceq); + } + } + else + { + il.Emit(OpCodes.Ldtoken, via ?? to); // stack is now [target][target][value][member-type-token] + il.EmitCall(OpCodes.Call, typeof(Type).GetMethod(nameof(Type.GetTypeFromHandle)), null); // stack is now [target][target][value][member-type] + il.EmitCall(OpCodes.Call, typeof(Convert).GetMethod(nameof(Convert.ChangeType), new Type[] { typeof(object), typeof(Type) }), null); // stack is now [target][target][boxed-member-type-value] + il.Emit(OpCodes.Unbox_Any, to); // stack is now [target][target][typed-value] + } + } + } + + private static MethodInfo GetOperator(Type from, Type to) + { + if (to == null) return null; + MethodInfo[] fromMethods, toMethods; + return ResolveOperator(fromMethods = from.GetMethods(BindingFlags.Static | BindingFlags.Public), from, to, "op_Implicit") + ?? ResolveOperator(toMethods = to.GetMethods(BindingFlags.Static | BindingFlags.Public), from, to, "op_Implicit") + ?? ResolveOperator(fromMethods, from, to, "op_Explicit") + ?? ResolveOperator(toMethods, from, to, "op_Explicit"); + } + + private static MethodInfo ResolveOperator(MethodInfo[] methods, Type from, Type to, string name) + { + for (int i = 0; i < methods.Length; i++) + { + if (methods[i].Name != name || methods[i].ReturnType != to) continue; + var args = methods[i].GetParameters(); + if (args.Length != 1 || args[0].ParameterType != from) continue; + return methods[i]; + } + return null; + } + + private static void LoadLocal(ILGenerator il, int index) + { + if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException(nameof(index)); + switch (index) + { + case 0: il.Emit(OpCodes.Ldloc_0); break; + case 1: il.Emit(OpCodes.Ldloc_1); break; + case 2: il.Emit(OpCodes.Ldloc_2); break; + case 3: il.Emit(OpCodes.Ldloc_3); break; + default: + if (index <= 255) + { + il.Emit(OpCodes.Ldloc_S, (byte)index); + } + else + { + il.Emit(OpCodes.Ldloc, (short)index); + } + break; + } + } + + private static void StoreLocal(ILGenerator il, int index) + { + if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException(nameof(index)); + switch (index) + { + case 0: il.Emit(OpCodes.Stloc_0); break; + case 1: il.Emit(OpCodes.Stloc_1); break; + case 2: il.Emit(OpCodes.Stloc_2); break; + case 3: il.Emit(OpCodes.Stloc_3); break; + default: + if (index <= 255) + { + il.Emit(OpCodes.Stloc_S, (byte)index); + } + else + { + il.Emit(OpCodes.Stloc, (short)index); + } + break; + } + } + + private static void LoadLocalAddress(ILGenerator il, int index) + { + if (index < 0 || index >= short.MaxValue) throw new ArgumentNullException(nameof(index)); + + if (index <= 255) + { + il.Emit(OpCodes.Ldloca_S, (byte)index); + } + else + { + il.Emit(OpCodes.Ldloca, (short)index); + } + } + + /// + /// Throws a data exception, only used internally + /// + /// The exception to throw. + /// The index the exception occured at. + /// The reader the exception occured in. + /// The value that caused the exception. + [Obsolete(ObsoleteInternalUsageOnly, false)] + public static void ThrowDataException(Exception ex, int index, IDataReader reader, object value) + { + Exception toThrow; + try + { + string name = "(n/a)", formattedValue = "(n/a)"; + if (reader != null && index >= 0 && index < reader.FieldCount) + { + name = reader.GetName(index); + try + { + if (value == null || value is DBNull) + { + formattedValue = ""; + } + else + { + formattedValue = Convert.ToString(value) + " - " + TypeExtensions.GetTypeCode(value.GetType()); + } + } + catch (Exception valEx) + { + formattedValue = valEx.Message; + } + } + toThrow = new DataException($"Error parsing column {index} ({name}={formattedValue})", ex); + } + catch + { // throw the **original** exception, wrapped as DataException + toThrow = new DataException(ex.Message, ex); + } + throw toThrow; + } + + private static void EmitInt32(ILGenerator il, int value) + { + switch (value) + { + case -1: il.Emit(OpCodes.Ldc_I4_M1); break; + case 0: il.Emit(OpCodes.Ldc_I4_0); break; + case 1: il.Emit(OpCodes.Ldc_I4_1); break; + case 2: il.Emit(OpCodes.Ldc_I4_2); break; + case 3: il.Emit(OpCodes.Ldc_I4_3); break; + case 4: il.Emit(OpCodes.Ldc_I4_4); break; + case 5: il.Emit(OpCodes.Ldc_I4_5); break; + case 6: il.Emit(OpCodes.Ldc_I4_6); break; + case 7: il.Emit(OpCodes.Ldc_I4_7); break; + case 8: il.Emit(OpCodes.Ldc_I4_8); break; + default: + if (value >= -128 && value <= 127) + { + il.Emit(OpCodes.Ldc_I4_S, (sbyte)value); + } + else + { + il.Emit(OpCodes.Ldc_I4, value); + } + break; + } + } + + /// + /// 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. + /// + public static IEqualityComparer ConnectionStringComparer + { + get { return connectionStringComparer; } + set { connectionStringComparer = value ?? StringComparer.Ordinal; } + } + + private static IEqualityComparer connectionStringComparer = StringComparer.Ordinal; + +#if !NETSTANDARD1_3 + /// + /// Key used to indicate the type name associated with a DataTable. + /// + private const string DataTableTypeNameKey = "dapper:TypeName"; + + /// + /// Used to pass a DataTable as a . + /// + /// The to create this parameter for. + /// The name of the type this parameter is for. + public static ICustomQueryParameter AsTableValuedParameter(this DataTable table, string typeName = null) => + new TableValuedParameter(table, typeName); + + /// + /// Associate a DataTable with a type name. + /// + /// The that does with the . + /// The name of the type this table is for. + public static void SetTypeName(this DataTable table, string typeName) + { + if (table != null) + { + if (string.IsNullOrEmpty(typeName)) + table.ExtendedProperties.Remove(DataTableTypeNameKey); + else + table.ExtendedProperties[DataTableTypeNameKey] = typeName; + } + } + + /// + /// Fetch the type name associated with a . + /// + /// The that has a type name associated with it. + public static string GetTypeName(this DataTable table) => + table?.ExtendedProperties[DataTableTypeNameKey] as string; +#endif + + /// + /// Used to pass a IEnumerable<SqlDataRecord> as a TableValuedParameter. + /// + /// The list of records to convert to TVPs. + /// The sql parameter type name. + public static ICustomQueryParameter AsTableValuedParameter(this IEnumerable list, string typeName = null) => + new SqlDataRecordListTVPParameter(list, typeName); + + // one per thread + [ThreadStatic] + private static StringBuilder perThreadStringBuilderCache; + private static StringBuilder GetStringBuilder() + { + var tmp = perThreadStringBuilderCache; + if (tmp != null) + { + perThreadStringBuilderCache = null; + tmp.Length = 0; + return tmp; + } + return new StringBuilder(); + } + + private static string __ToStringRecycle(this StringBuilder obj) + { + if (obj == null) return ""; + var s = obj.ToString(); + perThreadStringBuilderCache = perThreadStringBuilderCache ?? obj; + return s; + } + } +} diff --git a/Dapper/TableValuedParameter.cs b/Dapper/TableValuedParameter.cs new file mode 100644 index 000000000..3d307e2df --- /dev/null +++ b/Dapper/TableValuedParameter.cs @@ -0,0 +1,69 @@ +using System; +using System.Data; +using System.Reflection; + +#if !NETSTANDARD1_3 +namespace Dapper +{ + /// + /// Used to pass a DataTable as a TableValuedParameter + /// + internal sealed class TableValuedParameter : SqlMapper.ICustomQueryParameter + { + private readonly DataTable table; + private readonly string typeName; + + /// + /// Create a new instance of . + /// + /// The to create this parameter for + public TableValuedParameter(DataTable table) : this(table, null) { /* run base */ } + + /// + /// Create a new instance of . + /// + /// The to create this parameter for. + /// The name of the type this parameter is for. + public TableValuedParameter(DataTable table, string typeName) + { + this.table = table; + this.typeName = typeName; + } + + private static readonly Action setTypeName; + static TableValuedParameter() + { + var prop = typeof(System.Data.SqlClient.SqlParameter).GetProperty("TypeName", BindingFlags.Instance | BindingFlags.Public); + if (prop != null && prop.PropertyType == typeof(string) && prop.CanWrite) + { + setTypeName = (Action) + Delegate.CreateDelegate(typeof(Action), prop.GetSetMethod()); + } + } + + void SqlMapper.ICustomQueryParameter.AddParameter(IDbCommand command, string name) + { + var param = command.CreateParameter(); + param.ParameterName = name; + Set(param, table, typeName); + command.Parameters.Add(param); + } + + internal static void Set(IDbDataParameter parameter, DataTable table, string typeName) + { +#pragma warning disable 0618 + parameter.Value = SqlMapper.SanitizeParameterValue(table); +#pragma warning restore 0618 + if (string.IsNullOrEmpty(typeName) && table != null) + { + typeName = table.GetTypeName(); + } + if (!string.IsNullOrEmpty(typeName) && (parameter is System.Data.SqlClient.SqlParameter sqlParam)) + { + setTypeName?.Invoke(sqlParam, typeName); + sqlParam.SqlDbType = SqlDbType.Structured; + } + } + } +} +#endif \ No newline at end of file diff --git a/Dapper/TypeExtensions.cs b/Dapper/TypeExtensions.cs new file mode 100644 index 000000000..81ac91f2f --- /dev/null +++ b/Dapper/TypeExtensions.cs @@ -0,0 +1,96 @@ +using System; +using System.Reflection; +using System.Collections.Generic; + +namespace Dapper +{ + internal static class TypeExtensions + { + public static string Name(this Type type) => +#if NETSTANDARD1_3 || NETCOREAPP1_0 + type.GetTypeInfo().Name; +#else + type.Name; +#endif + + public static bool IsValueType(this Type type) => +#if NETSTANDARD1_3 || NETCOREAPP1_0 + type.GetTypeInfo().IsValueType; +#else + type.IsValueType; +#endif + + public static bool IsEnum(this Type type) => +#if NETSTANDARD1_3 || NETCOREAPP1_0 + type.GetTypeInfo().IsEnum; +#else + type.IsEnum; +#endif + + public static bool IsGenericType(this Type type) => +#if NETSTANDARD1_3 || NETCOREAPP1_0 + type.GetTypeInfo().IsGenericType; +#else + type.IsGenericType; +#endif + + public static bool IsInterface(this Type type) => +#if NETSTANDARD1_3 || NETCOREAPP1_0 + type.GetTypeInfo().IsInterface; +#else + type.IsInterface; +#endif + +#if NETSTANDARD1_3 || NETCOREAPP1_0 + public static IEnumerable GetCustomAttributes(this Type type, bool inherit) + { + return type.GetTypeInfo().GetCustomAttributes(inherit); + } + + public static TypeCode GetTypeCode(Type type) + { + if (type == null) return TypeCode.Empty; + if (typeCodeLookup.TryGetValue(type, out TypeCode result)) return result; + + if (type.IsEnum()) + { + type = Enum.GetUnderlyingType(type); + if (typeCodeLookup.TryGetValue(type, out result)) return result; + } + return TypeCode.Object; + } + + private static readonly Dictionary typeCodeLookup = new Dictionary + { + [typeof(bool)] = TypeCode.Boolean, + [typeof(byte)] = TypeCode.Byte, + [typeof(char)] = TypeCode.Char, + [typeof(DateTime)] = TypeCode.DateTime, + [typeof(decimal)] = TypeCode.Decimal, + [typeof(double)] = TypeCode.Double, + [typeof(short)] = TypeCode.Int16, + [typeof(int)] = TypeCode.Int32, + [typeof(long)] = TypeCode.Int64, + [typeof(object)] = TypeCode.Object, + [typeof(sbyte)] = TypeCode.SByte, + [typeof(float)] = TypeCode.Single, + [typeof(string)] = TypeCode.String, + [typeof(ushort)] = TypeCode.UInt16, + [typeof(uint)] = TypeCode.UInt32, + [typeof(ulong)] = TypeCode.UInt64, + }; +#else + public static TypeCode GetTypeCode(Type type) => Type.GetTypeCode(type); +#endif + + public static MethodInfo GetPublicInstanceMethod(this Type type, string name, Type[] types) + { +#if NETSTANDARD1_3 || NETCOREAPP1_0 + var method = type.GetMethod(name, types); + return (method?.IsPublic == true && !method.IsStatic) ? method : null; +#else + return type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public, null, types, null); +#endif + } + } +} diff --git a/Dapper/UdtTypeHandler.cs b/Dapper/UdtTypeHandler.cs new file mode 100644 index 000000000..c0a3a1872 --- /dev/null +++ b/Dapper/UdtTypeHandler.cs @@ -0,0 +1,45 @@ +using System; +using System.Data; + +namespace Dapper +{ + public static partial class SqlMapper + { +#if !NETSTANDARD1_3 && !NETSTANDARD2_0 + /// + /// A type handler for data-types that are supported by the underlying provider, but which need + /// a well-known UdtTypeName to be specified + /// + public class UdtTypeHandler : ITypeHandler + { + private readonly string udtTypeName; + /// + /// Creates a new instance of UdtTypeHandler with the specified . + /// + /// The user defined type name. + public UdtTypeHandler(string udtTypeName) + { + if (string.IsNullOrEmpty(udtTypeName)) throw new ArgumentException("Cannot be null or empty", udtTypeName); + this.udtTypeName = udtTypeName; + } + + object ITypeHandler.Parse(Type destinationType, object value) + { + return value is DBNull ? null : value; + } + + void ITypeHandler.SetValue(IDbDataParameter parameter, object value) + { +#pragma warning disable 0618 + parameter.Value = SanitizeParameterValue(value); +#pragma warning restore 0618 + if (parameter is System.Data.SqlClient.SqlParameter && !(value is DBNull)) + { + ((System.Data.SqlClient.SqlParameter)parameter).SqlDbType = SqlDbType.Udt; + ((System.Data.SqlClient.SqlParameter)parameter).UdtTypeName = udtTypeName; + } + } + } +#endif + } +} diff --git a/Dapper/WrappedDataReader.cs b/Dapper/WrappedDataReader.cs new file mode 100644 index 000000000..93c4bf03d --- /dev/null +++ b/Dapper/WrappedDataReader.cs @@ -0,0 +1,20 @@ +using System.Data; + +namespace Dapper +{ + /// + /// Describes a reader that controls the lifetime of both a command and a reader, + /// exposing the downstream command/reader as properties. + /// + public interface IWrappedDataReader : IDataReader + { + /// + /// Obtain the underlying reader + /// + IDataReader Reader { get; } + /// + /// Obtain the underlying command + /// + IDbCommand Command { get; } + } +} diff --git a/Dapper/WrappedReader.cs b/Dapper/WrappedReader.cs new file mode 100644 index 000000000..a17d783af --- /dev/null +++ b/Dapper/WrappedReader.cs @@ -0,0 +1,112 @@ +using System; +using System.Data; + +namespace Dapper +{ + internal class WrappedReader : IWrappedDataReader + { + private IDataReader reader; + private IDbCommand cmd; + + public IDataReader Reader + { + get + { + var tmp = reader; + if (tmp == null) throw new ObjectDisposedException(GetType().Name); + return tmp; + } + } + + IDbCommand IWrappedDataReader.Command + { + get + { + var tmp = cmd; + if (tmp == null) throw new ObjectDisposedException(GetType().Name); + return tmp; + } + } + + public WrappedReader(IDbCommand cmd, IDataReader reader) + { + this.cmd = cmd; + this.reader = reader; + } + + void IDataReader.Close() => reader?.Close(); + + int IDataReader.Depth => Reader.Depth; + + DataTable IDataReader.GetSchemaTable() => Reader.GetSchemaTable(); + + bool IDataReader.IsClosed => reader?.IsClosed ?? true; + + bool IDataReader.NextResult() => Reader.NextResult(); + + bool IDataReader.Read() => Reader.Read(); + + int IDataReader.RecordsAffected => Reader.RecordsAffected; + + void IDisposable.Dispose() + { + reader?.Close(); + reader?.Dispose(); + reader = null; + cmd?.Dispose(); + cmd = null; + } + + int IDataRecord.FieldCount => Reader.FieldCount; + + bool IDataRecord.GetBoolean(int i) => Reader.GetBoolean(i); + + byte IDataRecord.GetByte(int i) => Reader.GetByte(i); + + long IDataRecord.GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => + Reader.GetBytes(i, fieldOffset, buffer, bufferoffset, length); + + char IDataRecord.GetChar(int i) => Reader.GetChar(i); + + long IDataRecord.GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => + Reader.GetChars(i, fieldoffset, buffer, bufferoffset, length); + + IDataReader IDataRecord.GetData(int i) => Reader.GetData(i); + + string IDataRecord.GetDataTypeName(int i) => Reader.GetDataTypeName(i); + + DateTime IDataRecord.GetDateTime(int i) => Reader.GetDateTime(i); + + decimal IDataRecord.GetDecimal(int i) => Reader.GetDecimal(i); + + double IDataRecord.GetDouble(int i) => Reader.GetDouble(i); + + Type IDataRecord.GetFieldType(int i) => Reader.GetFieldType(i); + + float IDataRecord.GetFloat(int i) => Reader.GetFloat(i); + + Guid IDataRecord.GetGuid(int i) => Reader.GetGuid(i); + + short IDataRecord.GetInt16(int i) => Reader.GetInt16(i); + + int IDataRecord.GetInt32(int i) => Reader.GetInt32(i); + + long IDataRecord.GetInt64(int i) => Reader.GetInt64(i); + + string IDataRecord.GetName(int i) => Reader.GetName(i); + + int IDataRecord.GetOrdinal(string name) => Reader.GetOrdinal(name); + + string IDataRecord.GetString(int i) => Reader.GetString(i); + + object IDataRecord.GetValue(int i) => Reader.GetValue(i); + + int IDataRecord.GetValues(object[] values) => Reader.GetValues(values); + + bool IDataRecord.IsDBNull(int i) => Reader.IsDBNull(i); + + object IDataRecord.this[string name] => Reader[name]; + + object IDataRecord.this[int i] => Reader[i]; + } +} diff --git a/Dapper/XmlHandlers.cs b/Dapper/XmlHandlers.cs new file mode 100644 index 000000000..a29b45dba --- /dev/null +++ b/Dapper/XmlHandlers.cs @@ -0,0 +1,39 @@ +using System.Data; +using System.Xml; +using System.Xml.Linq; + +namespace Dapper +{ + internal abstract class XmlTypeHandler : SqlMapper.StringTypeHandler + { + public override void SetValue(IDbDataParameter parameter, T value) + { + base.SetValue(parameter, value); + parameter.DbType = DbType.Xml; + } + } + + internal sealed class XmlDocumentHandler : XmlTypeHandler + { + protected override XmlDocument Parse(string xml) + { + var doc = new XmlDocument(); + doc.LoadXml(xml); + return doc; + } + + protected override string Format(XmlDocument xml) => xml.OuterXml; + } + + internal sealed class XDocumentHandler : XmlTypeHandler + { + protected override XDocument Parse(string xml) => XDocument.Parse(xml); + protected override string Format(XDocument xml) => xml.ToString(); + } + + internal sealed class XElementHandler : XmlTypeHandler + { + protected override XElement Parse(string xml) => XElement.Parse(xml); + protected override string Format(XElement xml) => xml.ToString(); + } +} diff --git a/Dapper/project.json b/Dapper/project.json deleted file mode 100644 index 4cb40c244..000000000 --- a/Dapper/project.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "authors": [ "Sam Saffron", "Marc Gravell" ], - "owners": [ "Sam Saffron", "Marc Gravell" ], - "projectUrl": "https://github.com/StackExchange/dapper-dot-net", - "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", - "summary": "A high performance Micro-ORM", - "description": "A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc..", - "version": "1.41-beta5", - "compile": [ "../Dapper NET40/*.cs", "../Dapper NET45/*.cs" ], - "title": "Dapper dot net", - "tags": [ "orm", "sql", "micro-orm" ], - "frameworks": { - "net45": { - "compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true }, - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0" - } - }, - "net40": { - "compilationOptions": { "warningsAsErrors": true }, - "dependencies": { - }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0" - } - }, - //"net35": { - // "compilationOptions": { "warningsAsErrors": true, "languageVersion": "csharp3", "define": ["CSHARP30"] }, - // "dependencies": { - // }, - // "frameworkAssemblies": { - // "System.Data": "4.0.0.0" - // } - //}, - "dnx451": { - "compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true }, - "dependencies": { - }, - "frameworkAssemblies": { - "System.Data": "4.0.0.0" - } - }, - "dnxcore50": { - "compilationOptions": { "define": [ "ASYNC"], "warningsAsErrors": true }, - "dependencies": { - "System.Text.RegularExpressions": "4.0.10-beta-*", - "System.Collections": "4.0.10-beta-*", - "System.Collections.Concurrent": "4.0.10-beta-*", - "System.Linq": "4.0.0-beta-*", - "System.Threading": "4.0.10-beta-*", - "Microsoft.CSharp": "4.0.0-beta-*", - "System.Reflection": "4.0.10-beta-*", - "System.Reflection.Emit": "4.0.0-beta-*", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-*", - "System.Reflection.Emit.Lightweight": "4.0.0-beta-*", - "System.Reflection.TypeExtensions": "4.0.0-beta-*", - "System.Data.Common": "4.0.0-beta-*", - "System.Runtime.Extensions": "4.0.10-beta-*", - "System.Text.Encoding.CodePages": "4.0.0-beta-*", - "System.Globalization": "4.0.10-beta-*" - } - } - } -} diff --git a/Dapper/project.lock.json b/Dapper/project.lock.json deleted file mode 100644 index 9280c31e9..000000000 --- a/Dapper/project.lock.json +++ /dev/null @@ -1,1602 +0,0 @@ -{ - "locked": false, - "version": -9998, - "projectFileDependencyGroups": { - "": [], - ".NETFramework,Version=v4.5": [ - "System.Runtime >= 4.0.20-beta-22816", - "framework/System.Data >= 4.0.0.0" - ], - ".NETFramework,Version=v4.0": [ - "framework/System.Data >= 4.0.0.0" - ], - "DNX,Version=v4.5.1": [ - "framework/System.Data >= 4.0.0.0" - ], - "DNXCore,Version=v5.0": [ - "System.Text.RegularExpressions >= 4.0.10-beta-*", - "System.Collections >= 4.0.10-beta-*", - "System.Collections.Concurrent >= 4.0.10-beta-*", - "System.Linq >= 4.0.0-beta-*", - "System.Threading >= 4.0.10-beta-*", - "Microsoft.CSharp >= 4.0.0-beta-*", - "System.Reflection >= 4.0.10-beta-*", - "System.Reflection.Emit >= 4.0.0-beta-*", - "System.Reflection.Emit.ILGeneration >= 4.0.0-beta-*", - "System.Reflection.Emit.Lightweight >= 4.0.0-beta-*", - "System.Reflection.TypeExtensions >= 4.0.0-beta-*", - "System.Data.Common >= 4.0.0-beta-*", - "System.Runtime.Extensions >= 4.0.10-beta-*", - "System.Text.Encoding.CodePages >= 4.0.0-beta-*", - "System.Globalization >= 4.0.10-beta-*" - ] - }, - "libraries": { - "Microsoft.CSharp/4.0.0-beta-22816": { - "serviceable": false, - "sha": "h+75iL9JfUbT0P8xOm9u0XSvk5+8GUD92VVwjbvJHqIcM23DVv2AjYVhVjTm6y923lNLn+qh/h4ViinL9RME2Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Dynamic.Runtime": "4.0.10-beta-22816", - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/Microsoft.CSharp.dll" - ], - "compileAssemblies": [ - "lib/contract/Microsoft.CSharp.dll" - ] - } - }, - "files": [ - "License.rtf", - "Microsoft.CSharp.4.0.0-beta-22816.nupkg", - "Microsoft.CSharp.4.0.0-beta-22816.nupkg.sha512", - "Microsoft.CSharp.nuspec", - "lib/aspnetcore50/Microsoft.CSharp.dll", - "lib/contract/Microsoft.CSharp.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/Microsoft.CSharp.dll" - ] - }, - "System.Collections/4.0.10-beta-22816": { - "serviceable": false, - "sha": "pFwiLMtcsvAx8ZFsSIDVSuPAXXW2z1gkmE/YqiMELlxPVHKyJGrUZoJCIBfVg1HERxMnd1dyj7ffqj5Nx3mzGQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Collections.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Collections.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Collections.4.0.10-beta-22816.nupkg", - "System.Collections.4.0.10-beta-22816.nupkg.sha512", - "System.Collections.nuspec", - "lib/aspnetcore50/System.Collections.dll", - "lib/contract/System.Collections.dll", - "lib/net45/System.Collections.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.dll" - ] - }, - "System.Collections.Concurrent/4.0.10-beta-22816": { - "serviceable": false, - "sha": "mI2+5S3DG07KCur+L4sHleKLzFQEnXo8h3t4gS0awNFzyar8nVKNb95OkiECI68PLy/FM3HfVAuqb12qPw3CXg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Collections.Concurrent.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Collections.Concurrent.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Collections.Concurrent.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Collections.Concurrent.4.0.10-beta-22816.nupkg", - "System.Collections.Concurrent.4.0.10-beta-22816.nupkg.sha512", - "System.Collections.Concurrent.nuspec", - "lib/aspnetcore50/System.Collections.Concurrent.dll", - "lib/contract/System.Collections.Concurrent.dll", - "lib/net45/System.Collections.Concurrent.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.Concurrent.dll" - ] - }, - "System.Data.Common/4.0.0-beta-22816": { - "serviceable": false, - "sha": "7cRRCmUPaUbscio/n1MUgnY1IetH7fH19iuLrfahncpWkEkE6cZSMprkWYFp5CsWrky0OXAnbiW8ANsSGhfbFQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.Common.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Data" - ], - "runtimeAssemblies": [ - "lib/net45/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Data.Common.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Data.Common.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Data.Common.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Data.Common.4.0.0-beta-22816.nupkg", - "System.Data.Common.4.0.0-beta-22816.nupkg.sha512", - "System.Data.Common.nuspec", - "lib/aspnetcore50/System.Data.Common.dll", - "lib/contract/System.Data.Common.dll", - "lib/net45/System.Data.Common.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.Common.dll" - ] - }, - "System.Dynamic.Runtime/4.0.10-beta-22816": { - "serviceable": false, - "sha": "xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Dynamic.Runtime.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Linq.Expressions": "4.0.10-beta-22816", - "System.ObjectModel": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Dynamic.Runtime.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Dynamic.Runtime.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Dynamic.Runtime.4.0.10-beta-22816.nupkg", - "System.Dynamic.Runtime.4.0.10-beta-22816.nupkg.sha512", - "System.Dynamic.Runtime.nuspec", - "lib/aspnetcore50/System.Dynamic.Runtime.dll", - "lib/contract/System.Dynamic.Runtime.dll", - "lib/net45/System.Dynamic.Runtime.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Dynamic.Runtime.dll" - ] - }, - "System.Globalization/4.0.10-beta-22816": { - "serviceable": false, - "sha": "Bedo0Nd7solBPW1k52EmlA+RKm+yxT2Os8fiu27DK2fyBa68pdFNM9ckjZ1X2DW0E9q49IxRMaWpflTBerMb8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Globalization.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Globalization.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Globalization.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Globalization.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Globalization.4.0.10-beta-22816.nupkg", - "System.Globalization.4.0.10-beta-22816.nupkg.sha512", - "System.Globalization.nuspec", - "lib/aspnetcore50/System.Globalization.dll", - "lib/contract/System.Globalization.dll", - "lib/net45/System.Globalization.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Globalization.dll" - ] - }, - "System.IO/4.0.10-beta-22816": { - "serviceable": false, - "sha": "/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.IO.dll" - ], - "compileAssemblies": [ - "lib/net45/System.IO.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.IO.dll" - ], - "compileAssemblies": [ - "lib/net45/System.IO.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.IO.dll" - ], - "compileAssemblies": [ - "lib/contract/System.IO.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.IO.4.0.10-beta-22816.nupkg", - "System.IO.4.0.10-beta-22816.nupkg.sha512", - "System.IO.nuspec", - "lib/aspnetcore50/System.IO.dll", - "lib/contract/System.IO.dll", - "lib/net45/System.IO.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.IO.dll" - ] - }, - "System.Linq/4.0.0-beta-22816": { - "serviceable": false, - "sha": "QlwRD8FTiYAZ7BxEjB5u9vjKaAHZ6KvuZYm+4tjYduTIWpFI3o34UjowJXCaPlLwc8USRshAXLgnsQ3iaOjv8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Collections": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Linq.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Linq.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Linq.4.0.0-beta-22816.nupkg", - "System.Linq.4.0.0-beta-22816.nupkg.sha512", - "System.Linq.nuspec", - "lib/aspnetcore50/System.Linq.dll", - "lib/contract/System.Linq.dll", - "lib/net45/System.Linq.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.dll" - ] - }, - "System.Linq.Expressions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Linq.Expressions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Linq.Expressions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Linq.Expressions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Linq.Expressions.4.0.10-beta-22816.nupkg", - "System.Linq.Expressions.4.0.10-beta-22816.nupkg.sha512", - "System.Linq.Expressions.nuspec", - "lib/aspnetcore50/System.Linq.Expressions.dll", - "lib/contract/System.Linq.Expressions.dll", - "lib/net45/System.Linq.Expressions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.Expressions.dll" - ] - }, - "System.ObjectModel/4.0.10-beta-22816": { - "serviceable": false, - "sha": "Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/net45/System.ObjectModel.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.ObjectModel.dll" - ], - "compileAssemblies": [ - "lib/contract/System.ObjectModel.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.ObjectModel.4.0.10-beta-22816.nupkg", - "System.ObjectModel.4.0.10-beta-22816.nupkg.sha512", - "System.ObjectModel.nuspec", - "lib/aspnetcore50/System.ObjectModel.dll", - "lib/contract/System.ObjectModel.dll", - "lib/net45/System.ObjectModel.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.ObjectModel.dll" - ] - }, - "System.Reflection/4.0.10-beta-22816": { - "serviceable": false, - "sha": "vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.4.0.10-beta-22816.nupkg", - "System.Reflection.4.0.10-beta-22816.nupkg.sha512", - "System.Reflection.nuspec", - "lib/aspnetcore50/System.Reflection.dll", - "lib/contract/System.Reflection.dll", - "lib/net45/System.Reflection.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.dll" - ] - }, - "System.Reflection.Emit/4.0.0-beta-22816": { - "serviceable": false, - "sha": "vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.IO": "4.0.10-beta-22816", - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.dll", - "lib/contract/System.Reflection.Emit.dll", - "lib/net45/System.Reflection.Emit.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.dll" - ] - }, - "System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": { - "serviceable": false, - "sha": "dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.ILGeneration.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.ILGeneration.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.ILGeneration.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll", - "lib/contract/System.Reflection.Emit.ILGeneration.dll", - "lib/net45/System.Reflection.Emit.ILGeneration.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.ILGeneration.dll" - ] - }, - "System.Reflection.Emit.Lightweight/4.0.0-beta-22816": { - "serviceable": false, - "sha": "86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Emit.Lightweight.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816", - "System.Reflection.Primitives": "4.0.0-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Emit.Lightweight.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg", - "System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Emit.Lightweight.nuspec", - "lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll", - "lib/contract/System.Reflection.Emit.Lightweight.dll", - "lib/net45/System.Reflection.Emit.Lightweight.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.Lightweight.dll" - ] - }, - "System.Reflection.Primitives/4.0.0-beta-22816": { - "serviceable": false, - "sha": "LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Reflection.Primitives.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.Primitives.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.Primitives.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.Primitives.4.0.0-beta-22816.nupkg", - "System.Reflection.Primitives.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.Primitives.nuspec", - "lib/aspnetcore50/System.Reflection.Primitives.dll", - "lib/contract/System.Reflection.Primitives.dll", - "lib/net45/System.Reflection.Primitives.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Primitives.dll" - ] - }, - "System.Reflection.TypeExtensions/4.0.0-beta-22816": { - "serviceable": false, - "sha": "VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Reflection": "4.0.10-beta-22816", - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Reflection.TypeExtensions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Reflection.TypeExtensions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg", - "System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg.sha512", - "System.Reflection.TypeExtensions.nuspec", - "lib/aspnetcore50/System.Reflection.TypeExtensions.dll", - "lib/contract/System.Reflection.TypeExtensions.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.TypeExtensions.dll" - ] - }, - "System.Runtime/4.0.20-beta-22816": { - "serviceable": false, - "sha": "sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": {}, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.ComponentModel.Composition", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": {}, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": {}, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.ComponentModel.Composition", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": {}, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Runtime.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Runtime.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Runtime.4.0.20-beta-22816.nupkg", - "System.Runtime.4.0.20-beta-22816.nupkg.sha512", - "System.Runtime.nuspec", - "lib/aspnetcore50/System.Runtime.dll", - "lib/contract/System.Runtime.dll", - "lib/net45/System.Runtime.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.dll" - ] - }, - "System.Runtime.Extensions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "b8ymkNB0apTc/FCmyeB/Js1CMg8EBaOlM2biIKA94Dk0sT/yyGd8SyCeuZXiCGCIk6HpSiIsIdX53rXgTWxH0w==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Runtime.Extensions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Runtime.Extensions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Runtime.Extensions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Runtime.Extensions.4.0.10-beta-22816.nupkg", - "System.Runtime.Extensions.4.0.10-beta-22816.nupkg.sha512", - "System.Runtime.Extensions.nuspec", - "lib/aspnetcore50/System.Runtime.Extensions.dll", - "lib/contract/System.Runtime.Extensions.dll", - "lib/net45/System.Runtime.Extensions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.Extensions.dll" - ] - }, - "System.Text.Encoding/4.0.10-beta-22816": { - "serviceable": false, - "sha": "QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.Encoding.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.Encoding.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.Encoding.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.Encoding.4.0.10-beta-22816.nupkg", - "System.Text.Encoding.4.0.10-beta-22816.nupkg.sha512", - "System.Text.Encoding.nuspec", - "lib/aspnetcore50/System.Text.Encoding.dll", - "lib/contract/System.Text.Encoding.dll", - "lib/net45/System.Text.Encoding.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.dll" - ] - }, - "System.Text.Encoding.CodePages/4.0.0-beta-22816": { - "serviceable": false, - "sha": "q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Text.Encoding": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.Encoding.CodePages.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.Encoding.CodePages.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg", - "System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg.sha512", - "System.Text.Encoding.CodePages.nuspec", - "lib/aspnetcore50/System.Text.Encoding.CodePages.dll", - "lib/contract/System.Text.Encoding.CodePages.dll", - "lib/net45/_._", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.CodePages.dll" - ] - }, - "System.Text.RegularExpressions/4.0.10-beta-22816": { - "serviceable": false, - "sha": "f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System" - ], - "runtimeAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Text.RegularExpressions.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Text.RegularExpressions.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Text.RegularExpressions.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Text.RegularExpressions.4.0.10-beta-22816.nupkg", - "System.Text.RegularExpressions.4.0.10-beta-22816.nupkg.sha512", - "System.Text.RegularExpressions.nuspec", - "lib/aspnetcore50/System.Text.RegularExpressions.dll", - "lib/contract/System.Text.RegularExpressions.dll", - "lib/net45/System.Text.RegularExpressions.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.RegularExpressions.dll" - ] - }, - "System.Threading/4.0.10-beta-22816": { - "serviceable": false, - "sha": "GO4X3FuGlw4DJH+UbbKDXKnyyWiwlPJIX+Ys0UCzSdAPneBA42dPb2+kRakWy+wo6n6Gcv7ckkfa3j8MSSxbhg==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816", - "System.Threading.Tasks": "4.0.10-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Threading.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Threading.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Threading.4.0.10-beta-22816.nupkg", - "System.Threading.4.0.10-beta-22816.nupkg.sha512", - "System.Threading.nuspec", - "lib/aspnetcore50/System.Threading.dll", - "lib/contract/System.Threading.dll", - "lib/net45/System.Threading.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.dll" - ] - }, - "System.Threading.Tasks/4.0.10-beta-22816": { - "serviceable": false, - "sha": "e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA==", - "frameworks": { - ".NETFramework,Version=v4.5": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ] - }, - ".NETFramework,Version=v4.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [], - "compileAssemblies": [] - }, - "DNX,Version=v4.5.1": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [ - "mscorlib", - "System.Core" - ], - "runtimeAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/net45/System.Threading.Tasks.dll" - ] - }, - "DNXCore,Version=v5.0": { - "dependencies": { - "System.Runtime": "4.0.20-beta-22816" - }, - "frameworkAssemblies": [], - "runtimeAssemblies": [ - "lib/aspnetcore50/System.Threading.Tasks.dll" - ], - "compileAssemblies": [ - "lib/contract/System.Threading.Tasks.dll" - ] - } - }, - "files": [ - "License.rtf", - "System.Threading.Tasks.4.0.10-beta-22816.nupkg", - "System.Threading.Tasks.4.0.10-beta-22816.nupkg.sha512", - "System.Threading.Tasks.nuspec", - "lib/aspnetcore50/System.Threading.Tasks.dll", - "lib/contract/System.Threading.Tasks.dll", - "lib/net45/System.Threading.Tasks.dll", - "lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Tasks.dll" - ] - } - } -} \ No newline at end of file diff --git a/DapperTests NET35/DapperTests NET35.csproj b/DapperTests NET35/DapperTests NET35.csproj deleted file mode 100644 index b7459597e..000000000 --- a/DapperTests NET35/DapperTests NET35.csproj +++ /dev/null @@ -1,69 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {3BAA9F79-BA0A-4092-B47B-20170DD47989} - Exe - Properties - DapperTests_NET35 - DapperTests NET35 - v3.5 - - - 512 - - - x86 - true - full - false - bin\Debug\ - TRACE;DEBUG;NET35 EXTERNALS - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE;NET35 EXTERNALS - prompt - 4 - true - - - - - - - - - - Assert.cs - - - - - - - - - - - {B26305D8-3A89-4D68-A981-9BBF378B81FA} - Dapper NET35 - - - - - \ No newline at end of file diff --git a/DapperTests NET35/Program.cs b/DapperTests NET35/Program.cs deleted file mode 100644 index 088ece7c3..000000000 --- a/DapperTests NET35/Program.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Reflection; -using System.Data.SqlClient; - -namespace DapperTests_NET35 -{ - class Program - { - static void Main() - { - RunTests(); - Console.WriteLine("(end of tests; press any key)"); - - Console.ReadKey(); - } - public static readonly string connectionString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True"; - - public static SqlConnection GetOpenConnection() - { - var connection = new SqlConnection(connectionString); - connection.Open(); - return connection; - } - private static void RunTests() - { - var tester = new Tests(); - foreach (var method in typeof(Tests).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) - { - Console.Write("Running " + method.Name); - method.Invoke(tester, null); - Console.WriteLine(" - OK!"); - } - } - } -} diff --git a/DapperTests NET35/Properties/AssemblyInfo.cs b/DapperTests NET35/Properties/AssemblyInfo.cs deleted file mode 100644 index 56ab18b18..000000000 --- a/DapperTests NET35/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("DapperTests NET35")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("DapperTests NET35")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[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("cad8d6dd-b2be-441c-a287-c45ecc772065")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/DapperTests NET35/Tests.cs b/DapperTests NET35/Tests.cs deleted file mode 100644 index b6601092a..000000000 --- a/DapperTests NET35/Tests.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System.Data.SqlClient; -using System.Linq; -using Dapper; -using SqlMapper; -using System.Data; - -namespace DapperTests_NET35 -{ - public class Tests - { - SqlConnection connection = Program.GetOpenConnection(); - - public void TestBasicStringUsage() - { - var arr = connection.Query("select 'abc' as [Value] union all select @txt", new {txt = "def"}).ToArray(); - arr.IsSequenceEqualTo(new[] { "abc", "def" }); - } - public void TestClassWithStringUsage() - { - var oldMatch = Dapper.DefaultTypeMap.MatchNamesWithUnderscores; - try - { - DefaultTypeMap.MatchNamesWithUnderscores = true; - var arr = connection.Query("select 'abc' as [Value], '123' as [Another_Value] union all select @txt, @txt2", new { txt = "def", txt2 = "456" }).ToArray(); - arr.Select(x => x.Value).IsSequenceEqualTo(new[] { "abc", "def" }); - arr.Select(x => x.AnotherValue).IsSequenceEqualTo(new[] { "123", "456" }); - } finally - { - DefaultTypeMap.MatchNamesWithUnderscores = oldMatch; - } - } - class BasicType - { - public string Value { get; set; } - public string AnotherValue { get; set; } - } - - public void TestDynamicSimulatedQuery() { - var rows = connection.Query("select 1 A, 2 B union all select 3, 4", null).ToList(); - - ((int)rows[0]["A"]) - .IsEqualTo(1); - - ((int)rows[0]["B"]) - .IsEqualTo(2); - - ((int)rows[1]["A"]) - .IsEqualTo(3); - - ((int)rows[1]["B"]) - .IsEqualTo(4); - } - - public void TestMultiple() - { - using (var grid = connection.QueryMultiple("select 1; select 2; select 3", null, CommandType.Text)) - { - int i = grid.Read().Single(); - int j = grid.Read().Single(); - int k = grid.Read().Single(); - i.Equals(1); - j.Equals(2); - k.Equals(3); - } - } - - } -} diff --git a/DapperTests NET35/app.config b/DapperTests NET35/app.config deleted file mode 100644 index 8494f728f..000000000 --- a/DapperTests NET35/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/DapperTests NET45/App.config b/DapperTests NET45/App.config deleted file mode 100644 index 8e1564635..000000000 --- a/DapperTests NET45/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DapperTests NET45/DapperTests NET45.csproj b/DapperTests NET45/DapperTests NET45.csproj deleted file mode 100644 index fe5a9270f..000000000 --- a/DapperTests NET45/DapperTests NET45.csproj +++ /dev/null @@ -1,70 +0,0 @@ - - - - - Debug - AnyCPU - {5A5183F5-B774-42C9-A992-0A9C85FBE770} - Exe - Properties - DapperTests_NET45 - DapperTests NET45 - v4.5 - 512 - true - - - AnyCPU - true - full - false - bin\Debug\ - TRACE;DEBUG;EXTERNALS ASYNC - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE;EXTERNALS ASYNC - prompt - 4 - false - - - - - - - - - - - - - Assert.cs - - - - - - - - - - - {0fff5bc7-0a4b-4d87-835e-4fad70937507} - Dapper NET45 - - - - - \ No newline at end of file diff --git a/DapperTests NET45/Program.cs b/DapperTests NET45/Program.cs deleted file mode 100644 index 076737e0d..000000000 --- a/DapperTests NET45/Program.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Data.SqlClient; -using System.Linq; -using System.Reflection; - -namespace DapperTests_NET45 -{ - class Program - { - static void Main() - { - RunTests(); - Console.WriteLine("(end of tests; press any key)"); - - Console.ReadKey(); - } - public static readonly string connectionString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True"; - - public static SqlConnection GetOpenConnection(bool mars = false) - { - var cs = connectionString; - if (mars) - { - SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(cs); - scsb.MultipleActiveResultSets = true; - cs = scsb.ConnectionString; - } - var connection = new SqlConnection(cs); - connection.Open(); - return connection; - } - public static SqlConnection GetClosedConnection() - { - return new SqlConnection(connectionString); - } - private static void RunTests() - { - var tester = new Tests(); - foreach (var method in typeof(Tests).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) - { - Console.Write("Running " + method.Name); - try - { - method.Invoke(tester, null); - Console.WriteLine(" - OK!"); - } catch(TargetInvocationException ex) - { - var inner = ex.InnerException; - if(inner is AggregateException && ((AggregateException)inner).InnerExceptions.Count == 1) - { - inner = ((AggregateException)inner).InnerExceptions.Single(); - } - Console.WriteLine(" - ERR: " + inner.Message); - } - } - } - } -} \ No newline at end of file diff --git a/DapperTests NET45/Properties/AssemblyInfo.cs b/DapperTests NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index 42c660077..000000000 --- a/DapperTests NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("DapperTests NET45")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("DapperTests NET45")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] -[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("1f0b3016-b2c8-4ba8-b438-520b784e06a8")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/DapperTests NET45/Tests.cs b/DapperTests NET45/Tests.cs deleted file mode 100644 index 2902aa839..000000000 --- a/DapperTests NET45/Tests.cs +++ /dev/null @@ -1,779 +0,0 @@ -#if ASYNC -using System.Linq; -using Dapper; -using SqlMapper; -using System.Data; -using System.Diagnostics; -using System; -using System.Threading.Tasks; -using System.Threading; -using System.Data.SqlClient; - -#if DNXCORE50 -using IDbCommand = global::System.Data.Common.DbCommand; -using IDbDataParameter = global::System.Data.Common.DbParameter; -using IDbConnection = global::System.Data.Common.DbConnection; -using IDbTransaction = global::System.Data.Common.DbTransaction; -using IDataReader = global::System.Data.Common.DbDataReader; -#endif - -namespace DapperTests_NET45 -{ - public class Tests - { - public void TestBasicStringUsageAsync() - { - using (var connection = Program.GetOpenConnection()) - { - var query = connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }); - var arr = query.Result.ToArray(); - arr.IsSequenceEqualTo(new[] { "abc", "def" }); - } - } - public void TestBasicStringUsageAsyncNonBuffered() - { - using (var connection = Program.GetOpenConnection()) - { - var query = connection.QueryAsync(new CommandDefinition("select 'abc' as [Value] union all select @txt", new { txt = "def" }, flags: CommandFlags.None)); - var arr = query.Result.ToArray(); - arr.IsSequenceEqualTo(new[] { "abc", "def" }); - } - } - - public void TestLongOperationWithCancellation() - { - using (var connection = Program.GetClosedConnection()) - { - CancellationTokenSource cancel = new CancellationTokenSource(TimeSpan.FromSeconds(5)); - var task = connection.QueryAsync(new CommandDefinition("waitfor delay '00:00:10';select 1", cancellationToken: cancel.Token)); - try - { - if (!task.Wait(TimeSpan.FromSeconds(7))) - { - throw new TimeoutException(); // should have cancelled - } - } - catch (AggregateException agg) - { - (agg.InnerException is SqlException).IsTrue(); - } - } - } - - public void TestBasicStringUsageClosedAsync() - { - using (var connection = Program.GetClosedConnection()) - { - var query = connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }); - var arr = query.Result.ToArray(); - arr.IsSequenceEqualTo(new[] { "abc", "def" }); - } - } - - public void TestQueryDynamicAsync() - { - using (var connection = Program.GetClosedConnection()) - { - var row = connection.QueryAsync("select 'abc' as [Value]").Result.Single(); - string value = row.Value; - value.IsEqualTo("abc"); - } - } - - public void TestClassWithStringUsageAsync() - { - using (var connection = Program.GetOpenConnection()) - { - var query = connection.QueryAsync("select 'abc' as [Value] union all select @txt", new { txt = "def" }); - var arr = query.Result.ToArray(); - arr.Select(x => x.Value).IsSequenceEqualTo(new[] { "abc", "def" }); - } - } - - public void TestExecuteAsync() - { - using (var connection = Program.GetOpenConnection()) - { - var query = connection.ExecuteAsync("declare @foo table(id int not null); insert @foo values(@id);", new { id = 1 }); - var val = query.Result; - val.Equals(1); - } - } - public void TestExecuteClosedConnAsync() - { - using (var connection = Program.GetClosedConnection()) - { - var query = connection.ExecuteAsync("declare @foo table(id int not null); insert @foo values(@id);", new { id = 1 }); - var val = query.Result; - val.Equals(1); - } - } - - public void TestMultiMapWithSplitAsync() - { - var sql = @"select 1 as id, 'abc' as name, 2 as id, 'def' as name"; - using (var connection = Program.GetOpenConnection()) - { - var productQuery = connection.QueryAsync(sql, (prod, cat) => - { - prod.Category = cat; - return prod; - }); - - var product = productQuery.Result.First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.Id.IsEqualTo(2); - product.Category.Name.IsEqualTo("def"); - } - } - - public void TestMultiMapArbitraryWithSplitAsync() { - var sql = @"select 1 as id, 'abc' as name, 2 as id, 'def' as name"; - using (var connection = Program.GetOpenConnection()) { - var productQuery = connection.QueryAsync(sql, new[] { typeof(Product), typeof(Category) }, (objects) => { - var prod = (Product)objects[0]; - prod.Category = (Category)objects[1]; - return prod; - }); - - var product = productQuery.Result.First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.Id.IsEqualTo(2); - product.Category.Name.IsEqualTo("def"); - } - } - - public void TestMultiMapWithSplitClosedConnAsync() - { - var sql = @"select 1 as id, 'abc' as name, 2 as id, 'def' as name"; - using (var connection = Program.GetClosedConnection()) - { - var productQuery = connection.QueryAsync(sql, (prod, cat) => - { - prod.Category = cat; - return prod; - }); - - var product = productQuery.Result.First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.Id.IsEqualTo(2); - product.Category.Name.IsEqualTo("def"); - } - } - - public void TestMultiAsync() - { - using (var conn = Program.GetOpenConnection()) - { - using (Dapper.SqlMapper.GridReader multi = conn.QueryMultipleAsync("select 1; select 2").Result) - { - multi.ReadAsync().Result.Single().IsEqualTo(1); - multi.ReadAsync().Result.Single().IsEqualTo(2); - } - } - } - public void TestMultiClosedConnAsync() - { - using (var conn = Program.GetClosedConnection()) - { - using (Dapper.SqlMapper.GridReader multi = conn.QueryMultipleAsync("select 1; select 2").Result) - { - multi.ReadAsync().Result.Single().IsEqualTo(1); - multi.ReadAsync().Result.Single().IsEqualTo(2); - } - } - } -#if EXTERNALS - public void ExecuteReaderOpenAsync() - { - using (var conn = Program.GetOpenConnection()) - { - var dt = new DataTable(); - dt.Load(conn.ExecuteReaderAsync("select 3 as [three], 4 as [four]").Result); - dt.Columns.Count.IsEqualTo(2); - dt.Columns[0].ColumnName.IsEqualTo("three"); - dt.Columns[1].ColumnName.IsEqualTo("four"); - dt.Rows.Count.IsEqualTo(1); - ((int)dt.Rows[0][0]).IsEqualTo(3); - ((int)dt.Rows[0][1]).IsEqualTo(4); - } - } - public void ExecuteReaderClosedAsync() - { - using (var conn = Program.GetClosedConnection()) - { - var dt = new DataTable(); - dt.Load(conn.ExecuteReaderAsync("select 3 as [three], 4 as [four]").Result); - dt.Columns.Count.IsEqualTo(2); - dt.Columns[0].ColumnName.IsEqualTo("three"); - dt.Columns[1].ColumnName.IsEqualTo("four"); - dt.Rows.Count.IsEqualTo(1); - ((int)dt.Rows[0][0]).IsEqualTo(3); - ((int)dt.Rows[0][1]).IsEqualTo(4); - } - } -#endif - - public void LiteralReplacementOpen() - { - using (var conn = Program.GetOpenConnection()) LiteralReplacement(conn); - } - public void LiteralReplacementClosed() - { - using (var conn = Program.GetClosedConnection()) LiteralReplacement(conn); - } - private void LiteralReplacement(IDbConnection connection) - { - try { connection.ExecuteAsync("drop table literal1").Wait(); } catch { } - connection.ExecuteAsync("create table literal1 (id int not null, foo int not null)").Wait(); - connection.ExecuteAsync("insert literal1 (id,foo) values ({=id}, @foo)", new { id = 123, foo = 456 }).Wait(); - var rows = new[] { new { id = 1, foo = 2 }, new { id = 3, foo = 4 } }; - connection.ExecuteAsync("insert literal1 (id,foo) values ({=id}, @foo)", rows).Wait(); - var count = connection.QueryAsync("select count(1) from literal1 where id={=foo}", new { foo = 123 }).Result.Single(); - count.IsEqualTo(1); - int sum = connection.QueryAsync("select sum(id) + sum(foo) from literal1").Result.Single(); - sum.IsEqualTo(123 + 456 + 1 + 2 + 3 + 4); - } - - public void LiteralReplacementDynamicOpen() - { - using (var conn = Program.GetOpenConnection()) LiteralReplacementDynamic(conn); - } - public void LiteralReplacementDynamicClosed() - { - using (var conn = Program.GetClosedConnection()) LiteralReplacementDynamic(conn); - } - private void LiteralReplacementDynamic(IDbConnection connection) - { - var args = new DynamicParameters(); - args.Add("id", 123); - try { connection.ExecuteAsync("drop table literal2").Wait(); } catch { } - connection.ExecuteAsync("create table literal2 (id int not null)").Wait(); - connection.ExecuteAsync("insert literal2 (id) values ({=id})", args).Wait(); - - args = new DynamicParameters(); - args.Add("foo", 123); - var count = connection.QueryAsync("select count(1) from literal2 where id={=foo}", args).Result.Single(); - count.IsEqualTo(1); - } - - public void LiteralIn() - { - using (var connection = Program.GetOpenConnection()) - { - connection.ExecuteAsync("create table #literalin(id int not null);").Wait(); - connection.ExecuteAsync("insert #literalin (id) values (@id)", new[] { - new { id = 1 }, - new { id = 2 }, - new { id = 3 }, - }).Wait(); - var count = connection.QueryAsync("select count(1) from #literalin where id in {=ids}", - new { ids = new[] { 1, 3, 4 } }).Result.Single(); - count.IsEqualTo(2); - } - } - - - public void RunSequentialVersusParallelAsync() - { - - var ids = Enumerable.Range(1, 20000).Select(id => new { id }).ToArray(); - using (var connection = Program.GetOpenConnection(true)) - { - connection.ExecuteAsync(new CommandDefinition("select @id", ids.Take(5), flags: CommandFlags.None)).Wait(); - - var watch = Stopwatch.StartNew(); - connection.ExecuteAsync(new CommandDefinition("select @id", ids, flags: CommandFlags.None)).Wait(); - watch.Stop(); - System.Console.WriteLine("No pipeline: {0}ms", watch.ElapsedMilliseconds); - - watch = Stopwatch.StartNew(); - connection.ExecuteAsync(new CommandDefinition("select @id", ids, flags: CommandFlags.Pipelined)).Wait(); - watch.Stop(); - System.Console.WriteLine("Pipeline: {0}ms", watch.ElapsedMilliseconds); - } - } - - public void RunSequentialVersusParallelSync() - { - - var ids = Enumerable.Range(1, 20000).Select(id => new { id }).ToArray(); - using (var connection = Program.GetOpenConnection(true)) - { - connection.Execute(new CommandDefinition("select @id", ids.Take(5), flags: CommandFlags.None)); - - var watch = Stopwatch.StartNew(); - connection.Execute(new CommandDefinition("select @id", ids, flags: CommandFlags.None)); - watch.Stop(); - System.Console.WriteLine("No pipeline: {0}ms", watch.ElapsedMilliseconds); - - watch = Stopwatch.StartNew(); - connection.Execute(new CommandDefinition("select @id", ids, flags: CommandFlags.Pipelined)); - watch.Stop(); - System.Console.WriteLine("Pipeline: {0}ms", watch.ElapsedMilliseconds); - } - } - - public void AssertNoCacheWorksForQueryMultiple() - { - int a = 123, b = 456; - var cmdDef = new CommandDefinition(@"select @a; select @b;", new - { - a, b - }, commandType: CommandType.Text, flags: CommandFlags.NoCache); - - int c, d; - Dapper.SqlMapper.PurgeQueryCache(); - int before = Dapper.SqlMapper.GetCachedSQLCount(); - using (var sqlConnection = Program.GetOpenConnection(true)) - { - using (var multi = sqlConnection.QueryMultiple(cmdDef)) - { - c = multi.Read().Single(); - d = multi.Read().Single(); - } - } - int after = Dapper.SqlMapper.GetCachedSQLCount(); - before.IsEqualTo(0); - after.IsEqualTo(0); - c.IsEqualTo(123); - d.IsEqualTo(456); - - - } - class Product - { - public int Id { get; set; } - public string Name { get; set; } - public Category Category { get; set; } - } - class Category - { - public int Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - } - - class BasicType - { - public string Value { get; set; } - } - - - public void TypeBasedViaType() - { - Type type = GetSomeType(); - - using (var connection = Program.GetOpenConnection(true)) - { - dynamic actual = connection.QueryAsync(type, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }).Result.FirstOrDefault(); - ((object)actual).GetType().IsEqualTo(type); - int a = actual.A; - string b = actual.B; - a.IsEqualTo(123); - b.IsEqualTo("abc"); - } - } - - static Type GetSomeType() - { - return typeof(SomeType); - } - public class SomeType - { - public int A { get; set; } - public string B { get; set; } - } - - public void Issue22_ExecuteScalar() - { - using (var connection = Program.GetOpenConnection()) - { - int i = connection.ExecuteScalarAsync("select 123").Result; - i.IsEqualTo(123); - - i = connection.ExecuteScalarAsync("select cast(123 as bigint)").Result; - i.IsEqualTo(123); - - long j = connection.ExecuteScalarAsync("select 123").Result; - j.IsEqualTo(123L); - - j = connection.ExecuteScalarAsync("select cast(123 as bigint)").Result; - j.IsEqualTo(123L); - - int? k = connection.ExecuteScalar("select @i", new { i = default(int?) }); - k.IsNull(); - } - } - - public void TestSupportForDynamicParametersOutputExpressions() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - connection.ExecuteAsync(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId", p).Wait(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Scalar() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = (int)connection.ExecuteScalarAsync(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p).Result; - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Query_Default() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = connection.QueryAsync(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p).Result.Single(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Query_Buffered() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = connection.QueryAsync(new CommandDefinition(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p, flags: CommandFlags.Buffered)).Result.Single(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Query_NonBuffered() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = connection.QueryAsync(new CommandDefinition(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p, flags: CommandFlags.None)).Result.Single(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_QueryMultiple() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - int x, y; - using (var multi = connection.QueryMultipleAsync(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -select 42 -select 17 -SET @AddressPersonId = @PersonId", p).Result) - { - x = multi.ReadAsync().Result.Single(); - y = multi.ReadAsync().Result.Single(); - } - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - x.IsEqualTo(42); - y.IsEqualTo(17); - } - } - - public void TestSubsequentQueriesSuccess() - { - using (var connection = Program.GetOpenConnection()) - { - var data0 = connection.QueryAsync("select 1 as [Id] where 1 = 0").Result.ToList(); - data0.Count().IsEqualTo(0); - - var data1 = connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).Result.ToList(); - data1.Count().IsEqualTo(0); - - var data2 = connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).Result.ToList(); - data2.Count().IsEqualTo(0); - - data0 = connection.QueryAsync("select 1 as [Id] where 1 = 0").Result.ToList(); - data0.Count().IsEqualTo(0); - - data1 = connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).Result.ToList(); - data1.Count().IsEqualTo(0); - - data2 = connection.QueryAsync(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).Result.ToList(); - data2.Count().IsEqualTo(0); - - } - } - class Foo0 { public int Id { get; set; } } - class Foo1 { public int Id { get; set; } } - class Foo2 { public int Id { get; set; } } - class Person - { - public int PersonId { get; set; } - public string Name { get; set; } - public string Occupation { get; private set; } - public int NumberOfLegs = 2; - public Address Address { get; set; } - } - class Address - { - public int AddressId { get; set; } - public string Name { get; set; } - public int PersonId { get; set; } - } - - class ReviewBoard - { - public int Id { get; set; } - public string Name { get; set; } - public User User1 { get; set; } - public User User2 { get; set; } - public User User3 { get; set; } - public User User4 { get; set; } - public User User5 { get; set; } - public User User6 { get; set; } - public User User7 { get; set; } - public User User8 { get; set; } - public User User9 { get; set; } - } - class User - { - public int Id { get; set; } - public string Name { get; set; } - } - - public void TestMultiMapArbitraryMaps() - { - // please excuse the trite example, but it is easier to follow than a more real-world one - var createSql = @" - create table #ReviewBoards (Id int, Name varchar(20), User1Id int, User2Id int, User3Id int, User4Id int, User5Id int, User6Id int, User7Id int, User8Id int, User9Id int) - create table #Users (Id int, Name varchar(20)) - - insert #Users values(1, 'User 1') - insert #Users values(2, 'User 2') - insert #Users values(3, 'User 3') - insert #Users values(4, 'User 4') - insert #Users values(5, 'User 5') - insert #Users values(6, 'User 6') - insert #Users values(7, 'User 7') - insert #Users values(8, 'User 8') - insert #Users values(9, 'User 9') - - insert #ReviewBoards values(1, 'Review Board 1', 1, 2, 3, 4, 5, 6, 7, 8, 9) -"; - using (var connection = Program.GetOpenConnection()) - { - connection.ExecuteAsync(createSql).Wait(); - try - { - var sql = @" - select - rb.Id, rb.Name, - u1.*, u2.*, u3.*, u4.*, u5.*, u6.*, u7.*, u8.*, u9.* - from #ReviewBoards rb - inner join #Users u1 on u1.Id = rb.User1Id - inner join #Users u2 on u2.Id = rb.User2Id - inner join #Users u3 on u3.Id = rb.User3Id - inner join #Users u4 on u4.Id = rb.User4Id - inner join #Users u5 on u5.Id = rb.User5Id - inner join #Users u6 on u6.Id = rb.User6Id - inner join #Users u7 on u7.Id = rb.User7Id - inner join #Users u8 on u8.Id = rb.User8Id - inner join #Users u9 on u9.Id = rb.User9Id -"; - - var types = new[] { typeof(ReviewBoard), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User) }; - - Func mapper = (objects) => - { - var board = (ReviewBoard)objects[0]; - board.User1 = (User)objects[1]; - board.User2 = (User)objects[2]; - board.User3 = (User)objects[3]; - board.User4 = (User)objects[4]; - board.User5 = (User)objects[5]; - board.User6 = (User)objects[6]; - board.User7 = (User)objects[7]; - board.User8 = (User)objects[8]; - board.User9 = (User)objects[9]; - return board; - }; - - var data = connection.QueryAsync(sql, types, mapper).Result.ToList(); - - var p = data.First(); - p.Id.IsEqualTo(1); - p.Name.IsEqualTo("Review Board 1"); - p.User1.Id.IsEqualTo(1); - p.User2.Id.IsEqualTo(2); - p.User3.Id.IsEqualTo(3); - p.User4.Id.IsEqualTo(4); - p.User5.Id.IsEqualTo(5); - p.User6.Id.IsEqualTo(6); - p.User7.Id.IsEqualTo(7); - p.User8.Id.IsEqualTo(8); - p.User9.Id.IsEqualTo(9); - p.User1.Name.IsEqualTo("User 1"); - p.User2.Name.IsEqualTo("User 2"); - p.User3.Name.IsEqualTo("User 3"); - p.User4.Name.IsEqualTo("User 4"); - p.User5.Name.IsEqualTo("User 5"); - p.User6.Name.IsEqualTo("User 6"); - p.User7.Name.IsEqualTo("User 7"); - p.User8.Name.IsEqualTo("User 8"); - p.User9.Name.IsEqualTo("User 9"); - } - finally - { - connection.Execute("drop table #Users drop table #ReviewBoards"); - - } - } - } - - public void Issue157_ClosedReaderAsync() - { - using(var conn = Program.GetOpenConnection()) - { - var args = new { x = 42 }; - const string sql = @"select 123 as [A], 'abc' as [B] where @x=42"; - var row = conn.QueryAsync(new CommandDefinition( - sql, args, flags:CommandFlags.None)).Result.Single(); - row.IsNotNull(); - row.A.IsEqualTo(123); - row.B.IsEqualTo("abc"); - - args = new { x = 5 }; - conn.QueryAsync(new CommandDefinition( - sql, args, flags: CommandFlags.None)).Result.Any().IsFalse(); - } - } - - public void TestAtEscaping() - { - using (var connection = Program.GetOpenConnection()) - { - var id = connection.QueryAsync(@" - declare @@Name int - select @@Name = @Id+1 - select @@Name - ", new Product { Id = 1 }).Result.Single(); - id.IsEqualTo(2); - - } - } - } -} -#endif \ No newline at end of file diff --git a/Directory.build.props b/Directory.build.props new file mode 100644 index 000000000..3200957e1 --- /dev/null +++ b/Directory.build.props @@ -0,0 +1,34 @@ + + + 1.50.2 + + 2017 Stack Exchange, Inc. + + true + true + ../Dapper.snk + + $(AssemblyName) + https://stackexchange.github.io/Dapper/ + https://github.com/StackExchange/Dapper + http://www.apache.org/licenses/LICENSE-2.0 + git + https://github.com/StackExchange/Dapper + + true + embedded + en-US + false + 2.3.0-beta5-build3769 + + + + + + + + + + + + \ No newline at end of file diff --git a/Packages.dgml b/Packages.dgml deleted file mode 100644 index be4c4d685..000000000 --- a/Packages.dgml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Readme.md b/Readme.md index d674f4eea..3fb05fe6b 100644 --- a/Readme.md +++ b/Readme.md @@ -1,17 +1,22 @@ Dapper - a simple object mapper for .Net ======================================== +[![Build status](https://ci.appveyor.com/api/projects/status/8rbgoxqio76ynj4h?svg=true)](https://ci.appveyor.com/project/StackExchange/dapper) + +Release Notes +------------- + +Located at [stackexchange.github.io/Dapper](https://stackexchange.github.io/Dapper/) + Features -------- -Dapper is a [single file](https://github.com/SamSaffron/dapper-dot-net/blob/master/Dapper%20NET40/SqlMapper.cs) you can drop in to your project that will extend your IDbConnection interface. +Dapper is a [NuGet library](https://www.nuget.org/packages/Dapper) that you can add in to your project that will extend your `IDbConnection` interface. It provides 3 helpers: Execute a query and map the results to a strongly typed List ------------------------------------------------------------ -Note: all extension methods assume the connection is already open, they will fail if the connection is closed. - ```csharp public static IEnumerable Query(this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true) ``` @@ -30,15 +35,10 @@ public class Dog var guid = Guid.NewGuid(); var dog = connection.Query("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); - -dog.Count() - .IsEqualTo(1); - -dog.First().Age - .IsNull(); -dog.First().Id - .IsEqualTo(guid); +Assert.Equal(1,dog.Count()); +Assert.Null(dog.First().Age); +Assert.Equal(guid, dog.First().Id); ``` Execute a query and map it to a list of dynamic objects @@ -54,17 +54,10 @@ Example usage: ```csharp var rows = connection.Query("select 1 A, 2 B union all select 3, 4"); -((int)rows[0].A) - .IsEqualTo(1); - -((int)rows[0].B) - .IsEqualTo(2); - -((int)rows[1].A) - .IsEqualTo(3); - -((int)rows[1].B) - .IsEqualTo(4); +Assert.Equal(1, (int)rows[0].A); +Assert.Equal(2, (int)rows[0].B); +Assert.Equal(3, (int)rows[1].A); +Assert.Equal(4, (int)rows[1].B); ``` Execute a Command that returns no results @@ -77,15 +70,15 @@ public static int Execute(this IDbConnection cnn, string sql, object param = nul Example usage: ```csharp -connection.Execute(@" +var count = connection.Execute(@" set nocount on create table #t(i int) set nocount off insert #t select @a a union all select @b set nocount on - drop table #t", new {a=1, b=2 }) - .IsEqualTo(2); + drop table #t", new {a=1, b=2 }); +Assert.Equal(2, count); ``` Execute a Command multiple times @@ -96,16 +89,17 @@ The same signature also allows you to conveniently and efficiently execute a com Example usage: ```csharp -connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)", +var count = connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)", new[] { new { a=1, b=1 }, new { a=2, b=2 }, new { a=3, b=3 } } - ).IsEqualTo(3); // 3 rows inserted: "1,1", "2,2" and "3,3" + ); +Assert.Equal(3, count); // 3 rows inserted: "1,1", "2,2" and "3,3" ``` This works for any parameter that implements IEnumerable for some T. Performance ----------- -A key feature of Dapper is performance. The following metrics show how long it takes to execute 500 SELECT statements against a DB and map the data returned to objects. +A key feature of Dapper is performance. The following metrics show how long it takes to execute 500 `SELECT` statements against a DB and map the data returned to objects. The performance tests are broken in to 3 lists: @@ -115,118 +109,48 @@ The performance tests are broken in to 3 lists: ### Performance of SELECT mapping over 500 iterations - POCO serialization - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDurationRemarks
Hand coded (using a SqlDataReader)47msCan be faster
Dapper ExecuteMapperQuery49ms
ServiceStack.OrmLite (QueryById)50ms
PetaPoco52ms
BLToolkit80ms
SubSonic CodingHorror107ms
NHibernate SQL104ms
Linq 2 SQL ExecuteQuery181ms
Entity framework ExecuteStoreQuery631ms
+| Method | Duration | Remarks | +| --------------------------------------------------- | -------- | ------- | +| Hand coded (using a `SqlDataReader`) | 47ms | +| Dapper `ExecuteMapperQuery` | 49ms | +| [ServiceStack.OrmLite](https://github.com/ServiceStack/ServiceStack.OrmLite) (QueryById) | 50ms | +| [PetaPoco](http://www.toptensoftware.com/petapoco/) | 52ms | [Can be faster](http://web.archive.org/web/20170921124755/http://www.toptensoftware.com/blog/posts/94-PetaPoco-More-Speed) | +| BLToolkit | 80ms | +| SubSonic CodingHorror | 107ms | +| NHibernate SQL | 104ms | +| Linq 2 SQL `ExecuteQuery` | 181ms | +| Entity framework `ExecuteStoreQuery` | 631ms | ### Performance of SELECT mapping over 500 iterations - dynamic serialization - - - - - - - - - - - - - - - - - - - -
MethodDurationRemarks
Dapper ExecuteMapperQuery (dynamic)48ms 
Massive52ms
Simple.Data95ms
+| Method | Duration | Remarks | +| -------------------------------------------------------- | -------- | ------- | +| Dapper `ExecuteMapperQuery` (dynamic) | 48ms | +| [Massive](https://github.com/FransBouma/Massive) | 52ms | +| [Simple.Data](https://github.com/markrendle/Simple.Data) | 95ms | ### Performance of SELECT mapping over 500 iterations - typical usage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDurationRemarks
Linq 2 SQL CompiledQuery81msNot super typical involves complex code
NHibernate HQL118ms 
Linq 2 SQL559ms 
Entity framework859ms 
SubSonic ActiveRecord.SingleOrDefault3619ms 
- -Performance benchmarks are available [here](https://github.com/SamSaffron/dapper-dot-net/blob/master/Tests/PerformanceTests.cs) - -Feel free to submit patches that include other ORMs - when running benchmarks, be sure to compile in Release and not attach a debugger (ctrl F5) +| Method | Duration | Remarks | +| ------------------------------------- | -------- | ------- | +| Linq 2 SQL CompiledQuery | 81ms | Not super typical involves complex code | +| NHibernate HQL | 118ms | +| Linq 2 SQL | 559ms | +| Entity framework | 859ms | +| SubSonic ActiveRecord.SingleOrDefault | 3619ms | + + +Performance benchmarks are available [here](https://github.com/StackExchange/Dapper/tree/master/Dapper.Tests.Performance). + +Feel free to submit patches that include other ORMs - when running benchmarks, be sure to compile in Release and not attach a debugger (Ctrl+F5). + +Alternatively, you might prefer Frans Bouma's [RawDataAccessBencher](https://github.com/FransBouma/RawDataAccessBencher) test suite or [OrmBenchmark](https://github.com/InfoTechBridge/OrmBenchmark). Parameterized queries --------------------- -Parameters are passed in as anonymous classes. This allow you to name your parameters easily and gives you the ability to simply cut-and-paste SQL snippets and run them in Query analyzer. +Parameters are passed in as anonymous classes. This allow you to name your parameters easily and gives you the ability to simply cut-and-paste SQL snippets and run them in your db platform's Query analyzer. ```csharp new {A = 1, B = "b"} // A will be mapped to the param @A, B to the param @B @@ -234,12 +158,12 @@ new {A = 1, B = "b"} // A will be mapped to the param @A, B to the param @B List Support ------------ -Dapper allow you to pass in IEnumerable and will automatically parameterize your query. +Dapper allows you to pass in `IEnumerable` and will automatically parameterize your query. For example: ```csharp -connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[] { 1, 2, 3 }); +connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[] { 1, 2, 3 } }); ``` Will be translated to: @@ -248,11 +172,22 @@ Will be translated to: select * from (select 1 as Id union all select 2 union all select 3) as X where Id in (@Ids1, @Ids2, @Ids3)" // @Ids1 = 1 , @Ids2 = 2 , @Ids2 = 3 ``` +Literal replacements +------------ +Dapper supports literal replacements for bool and numeric types. + +```csharp +connection.Query("select * from User where UserId = {=Id}", new {Id = 1})); +``` + +The literal replacement is not sent as a parameter; this allows better plans and filtered index usage but should usually be used sparingly and after testing. This feature is particularly useful when the value being injected +is actually a fixed value (for example, a fixed "category id", "status code" or "region" that is specific to the query). For *live* data where you are considering literals, you might *also* want to consider and test provider-specific query hints like [`OPTIMIZE FOR UNKNOWN`](https://blogs.msdn.microsoft.com/sqlprogrammability/2008/11/26/optimize-for-unknown-a-little-known-sql-server-2008-feature/) with regular parameters. + Buffered vs Unbuffered readers --------------------- -Dapper's default behavior is to execute your sql and buffer the entire reader on return. This is ideal in most cases as it minimizes shared locks in the db and cuts down on db network time. +Dapper's default behavior is to execute your SQL and buffer the entire reader on return. This is ideal in most cases as it minimizes shared locks in the db and cuts down on db network time. -However when executing huge queries you may need to minimize memory footprint and only load objects as needed. To do so pass, buffered: false into the Query method. +However when executing huge queries you may need to minimize memory footprint and only load objects as needed. To do so pass, `buffered: false` into the `Query` method. Multi Mapping --------------------- @@ -260,6 +195,40 @@ Dapper allows you to map a single row to multiple objects. This is a key feature Example: +Consider 2 classes: `Post` and `User` + +```csharp +class Post +{ + public int Id { get; set; } + public string Title { get; set; } + public string Content { get; set; } + public User Owner { get; set; } +} + +class User +{ + public int Id { get; set; } + public string Name { get; set; } +} +``` + +Now let us say that we want to map a query that joins both the posts and the users table. Until now if we needed to combine the result of 2 queries, we'd need a new object to express it but it makes more sense in this case to put the `User` object inside the `Post` object. + +This is the user case for multi mapping. You tell dapper that the query returns a `Post` and a `User` object and then give it a function describing what you want to do with each of the rows containing both a `Post` and a `User` object. In our case, we want to take the user object and put it inside the post object. So we write the function: + +```csharp +(post, user) => { post.Owner = user; return post; } +``` + +The 3 type arguments to the `Query` method specify what objects dapper should use to deserialize the row and what is going to be returned. We're going to interpret both rows as a combination of `Post` and `User` and we're returning back a `Post` object. Hence the type declaration becomes + +```csharp + +``` + +Everything put together, looks like this: + ```csharp var sql = @"select * from #Posts p @@ -268,14 +237,14 @@ Order by p.Id"; var data = connection.Query(sql, (post, user) => { post.Owner = user; return post;}); var post = data.First(); - -post.Content.IsEqualTo("Sams Post1"); -post.Id.IsEqualTo(1); -post.Owner.Name.IsEqualTo("Sam"); -post.Owner.Id.IsEqualTo(99); + +Assert.Equal("Sams Post1", post.Content); +Assert.Equal(1, post.Id); +Assert.Equal("Sam", post.Owner.Name); +Assert.Equal(99, post.Owner.Id); ``` -**important note** Dapper assumes your Id columns are named "Id" or "id", if your primary key is different or you would like to split the wide row at point other than "Id", use the optional 'splitOn' parameter. +Dapper is able to split the returned row by making an assumption that your Id columns are named `Id` or `id`. If your primary key is different or you would like to split the row at a point other than `Id`, use the optional `splitOn` parameter. Multiple Results --------------------- @@ -301,7 +270,7 @@ using (var multi = connection.QueryMultiple(sql, new {id=selectedId})) Stored Procedures --------------------- -Dapper supports fully stored procs: +Dapper fully supports stored procs: ```csharp var user = cnn.Query("spGetUser", new {Id = 1}, @@ -330,28 +299,66 @@ Dapper supports varchar params, if you are executing a where clause on a varchar Query("select * from Thing where Name = @Name", new {Name = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = true }); ``` -On Sql Server it is crucial to use the unicode when querying unicode and ansi when querying non unicode. +On SQL Server it is crucial to use the unicode when querying unicode and ANSI when querying non unicode. -Limitations and caveats +Type Switching Per Row --------------------- -Dapper caches information about every query it runs, this allow it to materialize objects quickly and process parameters quickly. The current implementation caches this information in a ConcurrentDictionary object. The objects it stores are never flushed. If you are generating SQL strings on the fly without using parameters it is possible you will hit memory issues. We may convert the dictionaries to an LRU Cache. -Dapper's simplicity means that many feature that ORMs ship with are stripped out, there is no identity map, there are no helpers for update / select and so on. +Usually you'll want to treat all rows from a given table as the same data type. However, there are some circumstances where it's useful to be able to parse different rows as different data types. This is where `IDataReader.GetRowParser` comes in handy. + +Imagine you have a database table named "Shapes" with the columns: `Id`, `Type`, and `Data`, and you want to parse its rows into `Circle`, `Square`, or `Triangle` objects based on the value of the Type column. + +```csharp +var shapes = new List(); +using (var reader = connection.ExecuteReader("select * from Shapes")) +{ + // Generate a row parser for each type you expect. + // The generic type is what the parser will return. + // The argument (typeof(*)) is the concrete type to parse. + var circleParser = reader.GetRowParser(typeof(Circle)); + var squareParser = reader.GetRowParser(typeof(Square)); + var triangleParser = reader.GetRowParser(typeof(Triangle)); + + var typeColumnIndex = reader.GetOrdinal("Type"); + + while (reader.Read()) + { + IShape shape; + var type = (ShapeType)reader.GetInt32(typeColumnIndex); + switch (type) + { + case ShapeType.Circle: + shape = circleParser(reader); + break; + case ShapeType.Square: + shape = squareParser(reader); + break; + case ShapeType.Triangle: + shape = triangleParser(reader); + break; + default: + throw new NotImplementedException(); + } + + shapes.Add(shape); + } +} +``` + +Limitations and caveats +--------------------- +Dapper caches information about every query it runs, this allow it to materialize objects quickly and process parameters quickly. The current implementation caches this information in a `ConcurrentDictionary` object. The objects it stores are never flushed. If you are generating SQL strings on the fly without using parameters it is possible you will hit memory issues. We may convert the dictionaries to an LRU Cache. -Dapper does not manage your connection's lifecycle, it assumes the connection it gets is open AND has no existing datareaders enumerating (unless MARS is enabled) +Dapper's simplicity means that many feature that ORMs ship with are stripped out. It worries about the 95% scenario, and gives you the tools you need most of the time. It doesn't attempt to solve every problem. -Will dapper work with my db provider? +Will Dapper work with my DB provider? --------------------- -Dapper has no DB specific implementation details, it works across all .net ado providers including sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server +Dapper has no DB specific implementation details, it works across all .NET ADO providers including [SQLite](https://www.sqlite.org/), SQL CE, Firebird, Oracle, MySQL, PostgreSQL and SQL Server. Do you have a comprehensive list of examples? --------------------- -Dapper has a comprehensive test suite in the [test project](https://github.com/SamSaffron/dapper-dot-net/blob/master/Tests/Tests.cs) +Dapper has a comprehensive test suite in the [test project](https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper.Tests). Who is using this? --------------------- -Dapper is in production use at: - -[Stack Overflow](http://stackoverflow.com/), [helpdesk](http://www.jitbit.com/helpdesk-software/) - -(if you would like to be listed here let me know) +Dapper is in production use at [Stack Overflow](https://stackoverflow.com/). diff --git a/Tests/Assert.cs b/Tests/Assert.cs deleted file mode 100644 index 96493f2d4..000000000 --- a/Tests/Assert.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -#if DNXCORE50 -using ApplicationException = global::System.InvalidOperationException; -#endif - -namespace SqlMapper -{ - static class Assert - { - - public static void IsEqualTo(this T obj, T other) - { - if (!Equals(obj, other)) - { - throw new ApplicationException(string.Format("{0} should be equals to {1}", obj, other)); - } - } - - public static void IsSequenceEqualTo(this IEnumerable obj, IEnumerable other) - { - if (!(obj ?? new T[0]).SequenceEqual(other ?? new T[0])) - { - throw new ApplicationException(string.Format("{0} should be equals to {1}", obj, other)); - } - } - - public static void Fail() - { - throw new ApplicationException("Expectation failed"); - } - public static void IsFalse(this bool b) - { - if (b) - { - throw new ApplicationException("Expected false"); - } - } - - public static void IsTrue(this bool b) - { - if (!b) - { - throw new ApplicationException("Expected true"); - } - } - - public static void IsNull(this object obj) - { - if (obj != null) - { - throw new ApplicationException("Expected null"); - } - } - - public static void IsNotNull(this object obj) - { - if (obj == null) - { - throw new ApplicationException("Expected not null"); - } - } - } -} diff --git a/Tests/DapperTests NET40.csproj b/Tests/DapperTests NET40.csproj deleted file mode 100644 index 21b6540ae..000000000 --- a/Tests/DapperTests NET40.csproj +++ /dev/null @@ -1,312 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {A2A80512-11F4-4028-A995-505463632C84} - Exe - Properties - SqlMapper - Smackdown - v4.5 - - - 512 - true - - - x86 - true - full - false - bin\Debug\ - TRACE;DEBUG;EXTERNALS PERF - prompt - 4 - false - - - x86 - pdbonly - true - bin\Release\ - TRACE;EXTERNALS PERF - prompt - 4 - false - false - - - - bltoolkit\BLToolkit.4.dll - - - False - ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll - - - False - ..\packages\FirebirdSql.Data.FirebirdClient.4.6.1.0\lib\net45\FirebirdSql.Data.FirebirdClient.dll - - - False - ..\packages\FSharp.Core.4.0.0\lib\FSharp.Core.dll - - - False - ..\packages\FSPowerPack.Core.Community.3.0.0.0\Lib\Net40\FSharp.PowerPack.dll - - - False - ..\packages\FSPowerPack.Linq.Community.3.0.0.0\Lib\Net40\FSharp.PowerPack.Linq.dll - - - False - ..\packages\FSPowerPack.Metadata.Community.3.0.0.0\Lib\Net40\FSharp.PowerPack.Metadata.dll - - - False - ..\packages\FSPowerPack.Parallel.Seq.Community.3.0.0.0\Lib\Net40\FSharp.PowerPack.Parallel.Seq.dll - - - NHibernate\Iesi.Collections.dll - - - NHibernate\LinFu.DynamicProxy.dll - - - True - ..\packages\Microsoft.SqlServer.Types.11.0.2\lib\net20\Microsoft.SqlServer.Types.dll - - - False - ..\packages\Npgsql.2.2.5\lib\net45\Mono.Security.dll - - - NHibernate\NHibernate.dll - - - NHibernate\NHibernate.ByteCode.LinFu.dll - - - False - ..\packages\Npgsql.2.2.5\lib\net45\Npgsql.dll - - - False - OrmLite\ServiceStack.Common.dll - - - False - OrmLite\ServiceStack.Interfaces.dll - - - False - OrmLite\ServiceStack.OrmLite.dll - - - False - OrmLite\ServiceStack.OrmLite.SqlServer.dll - - - False - OrmLite\ServiceStack.Text.dll - - - Simple.Data\Simple.Data.dll - - - Simple.Data\Simple.Data.Ado.dll - - - Simple.Data\Simple.Data.SqlServer.dll - - - False - Soma\Soma.Core.dll - - - False - Soma\Soma.Core.IT.MsSql.dll - - - False - Soma\Soma.Core.IT.MsSqlCe.dll - - - SubSonic\SubSonic.Core.dll - - - False - ..\packages\Susanoo.Core.0.8.4.36\lib\net45\Susanoo.Core.dll - - - - - - - - True - ..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll - - - - - - - - - - - - - - True - True - DataClasses.dbml - - - - - - - - - - True - True - Settings.settings - - - - True - True - ActiveRecord.tt - - - True - True - Context.tt - - - True - True - StoredProcedures.tt - - - True - True - Structs.tt - - - - - - - MSLinqToSQLGenerator - DataClasses.designer.cs - Designer - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - TextTemplatingFileGenerator - ActiveRecord.cs - - - TextTemplatingFileGenerator - Context.cs - - - - - TextTemplatingFileGenerator - StoredProcedures.cs - - - TextTemplatingFileGenerator - Structs.cs - - - - - - - - - DataClasses.dbml - - - - - SqlServerTypes\x64\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x64\SqlServerSpatial110.dll - PreserveNewest - - - SqlServerTypes\x86\msvcr100.dll - PreserveNewest - - - SqlServerTypes\x86\SqlServerSpatial110.dll - PreserveNewest - - - - - - - - - - - - - - - - - - - - - {daf737e1-05b5-4189-a5aa-dac6233b64d7} - Dapper NET40 - - - {C2FC4DF5-C8D1-4EA8-8E0C-85A3793EB0BB} - Dapper.Contrib - - - {2544dfba-7f64-4003-9c36-d8337f770a36} - Dapper.EntityFramework NET40 - - - - - - if not exist "$(TargetDir)x86" md "$(TargetDir)x86" - xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" - if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" - xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" - - - \ No newline at end of file diff --git a/Tests/License.txt b/Tests/License.txt deleted file mode 100644 index 443c7d942..000000000 --- a/Tests/License.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2010 Stack Overflow Internet Services, Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/Tests/Linq2Sql/DataClasses.designer.cs b/Tests/Linq2Sql/DataClasses.designer.cs deleted file mode 100644 index 58d3ac565..000000000 --- a/Tests/Linq2Sql/DataClasses.designer.cs +++ /dev/null @@ -1,427 +0,0 @@ -#pragma warning disable 1591 -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18033 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SqlMapper.Linq2Sql -{ - using System.Data.Linq; - using System.Data.Linq.Mapping; - using System.Data; - using System.Collections.Generic; - using System.Reflection; - using System.Linq; - using System.Linq.Expressions; - using System.ComponentModel; - using System; - - - [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="tempdb")] - public partial class DataClassesDataContext : System.Data.Linq.DataContext - { - - private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource(); - - #region Extensibility Method Definitions - partial void OnCreated(); - partial void InsertPost(Post instance); - partial void UpdatePost(Post instance); - partial void DeletePost(Post instance); - #endregion - - public DataClassesDataContext() : - base(global::SqlMapper.Properties.Settings.Default.tempdbConnectionString, mappingSource) - { - OnCreated(); - } - - public DataClassesDataContext(string connection) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataClassesDataContext(System.Data.IDbConnection connection) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : - base(connection, mappingSource) - { - OnCreated(); - } - - public System.Data.Linq.Table Posts - { - get - { - return this.GetTable(); - } - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Posts")] - public partial class Post : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private int _Id; - - private string _Text; - - private System.DateTime _CreationDate; - - private System.DateTime _LastChangeDate; - - private System.Nullable _Counter1; - - private System.Nullable _Counter2; - - private System.Nullable _Counter3; - - private System.Nullable _Counter4; - - private System.Nullable _Counter5; - - private System.Nullable _Counter6; - - private System.Nullable _Counter7; - - private System.Nullable _Counter8; - - private System.Nullable _Counter9; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnIdChanging(int value); - partial void OnIdChanged(); - partial void OnTextChanging(string value); - partial void OnTextChanged(); - partial void OnCreationDateChanging(System.DateTime value); - partial void OnCreationDateChanged(); - partial void OnLastChangeDateChanging(System.DateTime value); - partial void OnLastChangeDateChanged(); - partial void OnCounter1Changing(System.Nullable value); - partial void OnCounter1Changed(); - partial void OnCounter2Changing(System.Nullable value); - partial void OnCounter2Changed(); - partial void OnCounter3Changing(System.Nullable value); - partial void OnCounter3Changed(); - partial void OnCounter4Changing(System.Nullable value); - partial void OnCounter4Changed(); - partial void OnCounter5Changing(System.Nullable value); - partial void OnCounter5Changed(); - partial void OnCounter6Changing(System.Nullable value); - partial void OnCounter6Changed(); - partial void OnCounter7Changing(System.Nullable value); - partial void OnCounter7Changed(); - partial void OnCounter8Changing(System.Nullable value); - partial void OnCounter8Changed(); - partial void OnCounter9Changing(System.Nullable value); - partial void OnCounter9Changed(); - #endregion - - public Post() - { - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public int Id - { - get - { - return this._Id; - } - set - { - if ((this._Id != value)) - { - this.OnIdChanging(value); - this.SendPropertyChanging(); - this._Id = value; - this.SendPropertyChanged("Id"); - this.OnIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Text", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)] - public string Text - { - get - { - return this._Text; - } - set - { - if ((this._Text != value)) - { - this.OnTextChanging(value); - this.SendPropertyChanging(); - this._Text = value; - this.SendPropertyChanged("Text"); - this.OnTextChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreationDate", DbType="DateTime NOT NULL")] - public System.DateTime CreationDate - { - get - { - return this._CreationDate; - } - set - { - if ((this._CreationDate != value)) - { - this.OnCreationDateChanging(value); - this.SendPropertyChanging(); - this._CreationDate = value; - this.SendPropertyChanged("CreationDate"); - this.OnCreationDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastChangeDate", DbType="DateTime NOT NULL")] - public System.DateTime LastChangeDate - { - get - { - return this._LastChangeDate; - } - set - { - if ((this._LastChangeDate != value)) - { - this.OnLastChangeDateChanging(value); - this.SendPropertyChanging(); - this._LastChangeDate = value; - this.SendPropertyChanged("LastChangeDate"); - this.OnLastChangeDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter1", DbType="Int")] - public System.Nullable Counter1 - { - get - { - return this._Counter1; - } - set - { - if ((this._Counter1 != value)) - { - this.OnCounter1Changing(value); - this.SendPropertyChanging(); - this._Counter1 = value; - this.SendPropertyChanged("Counter1"); - this.OnCounter1Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter2", DbType="Int")] - public System.Nullable Counter2 - { - get - { - return this._Counter2; - } - set - { - if ((this._Counter2 != value)) - { - this.OnCounter2Changing(value); - this.SendPropertyChanging(); - this._Counter2 = value; - this.SendPropertyChanged("Counter2"); - this.OnCounter2Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter3", DbType="Int")] - public System.Nullable Counter3 - { - get - { - return this._Counter3; - } - set - { - if ((this._Counter3 != value)) - { - this.OnCounter3Changing(value); - this.SendPropertyChanging(); - this._Counter3 = value; - this.SendPropertyChanged("Counter3"); - this.OnCounter3Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter4", DbType="Int")] - public System.Nullable Counter4 - { - get - { - return this._Counter4; - } - set - { - if ((this._Counter4 != value)) - { - this.OnCounter4Changing(value); - this.SendPropertyChanging(); - this._Counter4 = value; - this.SendPropertyChanged("Counter4"); - this.OnCounter4Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter5", DbType="Int")] - public System.Nullable Counter5 - { - get - { - return this._Counter5; - } - set - { - if ((this._Counter5 != value)) - { - this.OnCounter5Changing(value); - this.SendPropertyChanging(); - this._Counter5 = value; - this.SendPropertyChanged("Counter5"); - this.OnCounter5Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter6", DbType="Int")] - public System.Nullable Counter6 - { - get - { - return this._Counter6; - } - set - { - if ((this._Counter6 != value)) - { - this.OnCounter6Changing(value); - this.SendPropertyChanging(); - this._Counter6 = value; - this.SendPropertyChanged("Counter6"); - this.OnCounter6Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter7", DbType="Int")] - public System.Nullable Counter7 - { - get - { - return this._Counter7; - } - set - { - if ((this._Counter7 != value)) - { - this.OnCounter7Changing(value); - this.SendPropertyChanging(); - this._Counter7 = value; - this.SendPropertyChanged("Counter7"); - this.OnCounter7Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter8", DbType="Int")] - public System.Nullable Counter8 - { - get - { - return this._Counter8; - } - set - { - if ((this._Counter8 != value)) - { - this.OnCounter8Changing(value); - this.SendPropertyChanging(); - this._Counter8 = value; - this.SendPropertyChanged("Counter8"); - this.OnCounter8Changed(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Counter9", DbType="Int")] - public System.Nullable Counter9 - { - get - { - return this._Counter9; - } - set - { - if ((this._Counter9 != value)) - { - this.OnCounter9Changing(value); - this.SendPropertyChanging(); - this._Counter9 = value; - this.SendPropertyChanged("Counter9"); - this.OnCounter9Changed(); - } - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - } -} -#pragma warning restore 1591 diff --git a/Tests/Linq2Sql/Post.cs b/Tests/Linq2Sql/Post.cs deleted file mode 100644 index 2c10217dc..000000000 --- a/Tests/Linq2Sql/Post.cs +++ /dev/null @@ -1,29 +0,0 @@ - -namespace SqlMapper.Linq2Sql -{ - public partial class Post - { - /* - public int Bloat { get; set; } - public int Bloat1 { get; set; } - public int Bloat2 { get; set; } - public int Bloat3 { get; set; } - public int Bloat4 { get; set; } - public int Bloat5 { get; set; } - public int Bloat6 { get; set; } - public int Bloat7 { get; set; } - public int Bloat8 { get; set; } - - - public int Bloat10 { get; set; } - public int Bloat11 { get; set; } - public int Bloat12 { get; set; } - public int Bloat13 { get; set; } - public int Bloat14 { get; set; } - public int Bloat15 { get; set; } - public int Bloat16 { get; set; } - public int Bloat17 { get; set; } - public int Bloat18 { get; set; } - */ - } -} diff --git a/Tests/NHibernate/Iesi.Collections.dll b/Tests/NHibernate/Iesi.Collections.dll deleted file mode 100644 index 848ca527e..000000000 Binary files a/Tests/NHibernate/Iesi.Collections.dll and /dev/null differ diff --git a/Tests/NHibernate/LinFu.DynamicProxy.dll b/Tests/NHibernate/LinFu.DynamicProxy.dll deleted file mode 100644 index 8cc3fad8d..000000000 Binary files a/Tests/NHibernate/LinFu.DynamicProxy.dll and /dev/null differ diff --git a/Tests/NHibernate/NHibernate.ByteCode.LinFu.dll b/Tests/NHibernate/NHibernate.ByteCode.LinFu.dll deleted file mode 100644 index b37dbbeaa..000000000 Binary files a/Tests/NHibernate/NHibernate.ByteCode.LinFu.dll and /dev/null differ diff --git a/Tests/NHibernate/NHibernate.dll b/Tests/NHibernate/NHibernate.dll deleted file mode 100644 index 21232aaa4..000000000 Binary files a/Tests/NHibernate/NHibernate.dll and /dev/null differ diff --git a/Tests/OrmLite/ServiceStack.Common.dll b/Tests/OrmLite/ServiceStack.Common.dll deleted file mode 100644 index 525014d1a..000000000 Binary files a/Tests/OrmLite/ServiceStack.Common.dll and /dev/null differ diff --git a/Tests/OrmLite/ServiceStack.Interfaces.dll b/Tests/OrmLite/ServiceStack.Interfaces.dll deleted file mode 100644 index 727285c19..000000000 Binary files a/Tests/OrmLite/ServiceStack.Interfaces.dll and /dev/null differ diff --git a/Tests/OrmLite/ServiceStack.OrmLite.SqlServer.dll b/Tests/OrmLite/ServiceStack.OrmLite.SqlServer.dll deleted file mode 100644 index feafa4b55..000000000 Binary files a/Tests/OrmLite/ServiceStack.OrmLite.SqlServer.dll and /dev/null differ diff --git a/Tests/OrmLite/ServiceStack.OrmLite.dll b/Tests/OrmLite/ServiceStack.OrmLite.dll deleted file mode 100644 index f451289fa..000000000 Binary files a/Tests/OrmLite/ServiceStack.OrmLite.dll and /dev/null differ diff --git a/Tests/OrmLite/ServiceStack.Text.dll b/Tests/OrmLite/ServiceStack.Text.dll deleted file mode 100644 index b8538bf1b..000000000 Binary files a/Tests/OrmLite/ServiceStack.Text.dll and /dev/null differ diff --git a/Tests/PerformanceTests.cs b/Tests/PerformanceTests.cs deleted file mode 100644 index 6ca8752cc..000000000 --- a/Tests/PerformanceTests.cs +++ /dev/null @@ -1,327 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.Linq; -using System.Data.SqlClient; -using System.Diagnostics; -using System.Linq; -using BLToolkit.Data; -using Dapper; -using Massive; -using NHibernate.Criterion; -using NHibernate.Linq; -using ServiceStack.OrmLite; -using ServiceStack.OrmLite.SqlServer; -using SqlMapper.Linq2Sql; -using SqlMapper.NHibernate; -using Dapper.Contrib.Extensions; -using SqlMapper.EntityFramework; -using Susanoo; - -namespace SqlMapper -{ - class PerformanceTests - { - class Test - { - public static Test Create(Action iteration, string name) - { - return new Test {Iteration = iteration, Name = name }; - } - - public Action Iteration { get; set; } - public string Name { get; set; } - public Stopwatch Watch { get; set; } - } - - class Tests : List - { - public void Add(Action iteration, string name) - { - Add(Test.Create(iteration, name)); - } - - public void Run(int iterations) - { - // warmup - foreach (var test in this) - { - test.Iteration(iterations + 1); - test.Watch = new Stopwatch(); - test.Watch.Reset(); - } - - var rand = new Random(); - for (int i = 1; i <= iterations; i++) - { - foreach (var test in this.OrderBy(ignore => rand.Next())) - { - test.Watch.Start(); - test.Iteration(i); - test.Watch.Stop(); - } - } - - foreach (var test in this.OrderBy(t => t.Watch.ElapsedMilliseconds)) - { - Console.WriteLine(test.Name + " took " + test.Watch.ElapsedMilliseconds + "ms"); - } - } - } - - static DataClassesDataContext GetL2SContext(SqlConnection connection) - { - return new DataClassesDataContext(connection); - } - - internal class SomaConfig : Soma.Core.MsSqlConfig - { - public override string ConnectionString - { - get { return Program.ConnectionString; } - } - - public override void Log(Soma.Core.PreparedStatement preparedStatement) - { - // no op - } - } - - public void Run(int iterations) - { - using (var connection = Program.GetOpenConnection()) - { - var tests = new Tests(); - - var l2scontext1 = GetL2SContext(connection); - tests.Add(id => l2scontext1.Posts.First(p => p.Id == id), "Linq 2 SQL"); - - var l2scontext2 = GetL2SContext(connection); - var compiledGetPost = CompiledQuery.Compile((Linq2Sql.DataClassesDataContext ctx, int id) => ctx.Posts.First(p => p.Id == id)); - tests.Add(id => compiledGetPost(l2scontext2, id), "Linq 2 SQL Compiled"); - - var l2scontext3 = GetL2SContext(connection); - tests.Add(id => l2scontext3.ExecuteQuery("select * from Posts where Id = {0}", id).First(), "Linq 2 SQL ExecuteQuery"); - - var entityContext = new EFContext(connection); - tests.Add(id => entityContext.Posts.First(p => p.Id == id), "Entity framework"); - - - var entityContext2 = new EFContext(connection); - tests.Add(id => entityContext2.Database.SqlQuery("select * from Posts where Id = {0}", id).First(), "Entity framework SqlQuery"); - - //var entityContext3 = new EFContext(connection); - //tests.Add(id => entityFrameworkCompiled(entityContext3, id), "Entity framework CompiledQuery"); - - //var entityContext4 = new EFContext(connection); - //tests.Add(id => entityContext4.Posts.Where("it.Id = @id", new System.Data.Objects.ObjectParameter("id", id)).First(), "Entity framework ESQL"); - - var entityContext5 = new EFContext(connection); - tests.Add(id => entityContext5.Posts.AsNoTracking().First(p => p.Id == id), "Entity framework No Tracking"); - - var mapperConnection = Program.GetOpenConnection(); - tests.Add(id => mapperConnection.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: true).First(), "Mapper Query (buffered)"); - tests.Add(id => mapperConnection.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: false).First(), "Mapper Query (non-buffered)"); - - var mapperConnection2 = Program.GetOpenConnection(); - tests.Add(id => mapperConnection2.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: true).First(), "Dynamic Mapper Query (buffered)"); - tests.Add(id => mapperConnection2.Query("select * from Posts where Id = @Id", new { Id = id }, buffered: false).First(), "Dynamic Mapper Query (non-buffered)"); - - // dapper.contrib - var mapperConnection3 = Program.GetOpenConnection(); - tests.Add(id => mapperConnection3.Get(id), "Dapper.Cotrib"); - - var massiveModel = new DynamicModel(Program.ConnectionString); - var massiveConnection = Program.GetOpenConnection(); - tests.Add(id => massiveModel.Query("select * from Posts where Id = @0", massiveConnection, id).First(), "Dynamic Massive ORM Query"); - - // PetaPoco test with all default options - var petapoco = new PetaPoco.Database(Program.ConnectionString, "System.Data.SqlClient"); - petapoco.OpenSharedConnection(); - tests.Add(id => petapoco.Fetch("SELECT * from Posts where Id=@0", id).First(), "PetaPoco (Normal)"); - - // PetaPoco with some "smart" functionality disabled - var petapocoFast = new PetaPoco.Database(Program.ConnectionString, "System.Data.SqlClient"); - petapocoFast.OpenSharedConnection(); - petapocoFast.EnableAutoSelect = false; - petapocoFast.EnableNamedParams = false; - petapocoFast.ForceDateTimesToUtc = false; - tests.Add(id => petapocoFast.Fetch("SELECT * from Posts where Id=@0", id).First(), "PetaPoco (Fast)"); - - // Subsonic ActiveRecord - tests.Add(id => SubSonic.Post.SingleOrDefault(x => x.Id == id), "SubSonic ActiveRecord.SingleOrDefault"); - - // Subsonic coding horror - SubSonic.tempdbDB db = new SubSonic.tempdbDB(); - tests.Add(id => new SubSonic.Query.CodingHorror(db.Provider, "select * from Posts where Id = @0", id).ExecuteTypedList(), "SubSonic Coding Horror"); - - // NHibernate - - var nhSession1 = NHibernateHelper.OpenSession(); - tests.Add(id => nhSession1.CreateSQLQuery(@"select * from Posts where Id = :id") - .SetInt32("id", id) - .List(), "NHibernate SQL"); - - var nhSession2 = NHibernateHelper.OpenSession(); - tests.Add(id => nhSession2.CreateQuery(@"from Post as p where p.Id = :id") - .SetInt32("id", id) - .List(), "NHibernate HQL"); - - var nhSession3 = NHibernateHelper.OpenSession(); - tests.Add(id => nhSession3.CreateCriteria() - .Add(Restrictions.IdEq(id)) - .List(), "NHibernate Criteria"); - - var nhSession4 = NHibernateHelper.OpenSession(); - tests.Add(id => nhSession4 - .Query() - .Where(p => p.Id == id).First(), "NHibernate LINQ"); - - var nhSession5 = NHibernateHelper.OpenSession(); - tests.Add(id => nhSession5.Get(id), "NHibernate Session.Get"); - - // bltoolkit - var db1 = new DbManager(Program.GetOpenConnection()); - tests.Add(id => db1.SetCommand("select * from Posts where Id = @id", db1.Parameter("id", id)).ExecuteList(), "BLToolkit"); - - // Simple.Data - var sdb = Simple.Data.Database.OpenConnection(Program.ConnectionString); - tests.Add(id => sdb.Posts.FindById(id), "Simple.Data"); - - //Susanoo - var susanooDb = new DatabaseManager("Smackdown.Properties.Settings.tempdbConnectionString"); - var susanooDb2 = new DatabaseManager("Smackdown.Properties.Settings.tempdbConnectionString"); - - var susanooPreDefinedCommand = - CommandManager.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) - .DefineResults() - .Realize("PostById"); - - var susanooDynamicPreDefinedCommand = - CommandManager.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) - .DefineResults() - .Realize("DynamicById"); - - tests.Add(Id => - CommandManager.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) - .DefineResults() - .Realize("PostById") - .Execute(susanooDb, new { Id }).First(), "Susanoo Mapping Cache Retrieval"); - - tests.Add(Id => - CommandManager.DefineCommand("SELECT * FROM Posts WHERE Id = @Id", CommandType.Text) - .DefineResults() - .Realize("DynamicById") - .Execute(susanooDb, new { Id }).First(), "Susanoo Dynamic Mapping Cache Retrieval"); - - tests.Add(Id => - susanooDynamicPreDefinedCommand - .Execute(susanooDb, new { Id }).First(), "Susanoo Dynamic Mapping Static"); - - tests.Add(Id => - susanooPreDefinedCommand - .Execute(susanooDb, new { Id }).First(), "Susanoo Mapping Static"); - - // Soma - // DISABLED: assembly fail loading FSharp.PowerPack, Version=2.0.0.0 - // var somadb = new Soma.Core.Db(new SomaConfig()); - // tests.Add(id => somadb.Find(id), "Soma"); - - //ServiceStack's OrmLite: - OrmLiteConfig.DialectProvider = SqlServerOrmLiteDialectProvider.Instance; //Using SQL Server - IDbCommand ormLiteCmd = Program.GetOpenConnection().CreateCommand(); - tests.Add(id => ormLiteCmd.QueryById(id), "OrmLite QueryById"); - - // HAND CODED - - var postCommand = new SqlCommand(); - postCommand.Connection = connection; - postCommand.CommandText = @"select Id, [Text], [CreationDate], LastChangeDate, - Counter1,Counter2,Counter3,Counter4,Counter5,Counter6,Counter7,Counter8,Counter9 from Posts where Id = @Id"; - var idParam = postCommand.Parameters.Add("@Id", System.Data.SqlDbType.Int); - - tests.Add(id => - { - idParam.Value = id; - - using (var reader = postCommand.ExecuteReader()) - { - reader.Read(); - var post = new Post(); - post.Id = reader.GetInt32(0); - post.Text = reader.GetNullableString(1); - post.CreationDate = reader.GetDateTime(2); - post.LastChangeDate = reader.GetDateTime(3); - - post.Counter1 = reader.GetNullableValue(4); - post.Counter2 = reader.GetNullableValue(5); - post.Counter3 = reader.GetNullableValue(6); - post.Counter4 = reader.GetNullableValue(7); - post.Counter5 = reader.GetNullableValue(8); - post.Counter6 = reader.GetNullableValue(9); - post.Counter7 = reader.GetNullableValue(10); - post.Counter8 = reader.GetNullableValue(11); - post.Counter9 = reader.GetNullableValue(12); - } - }, "hand coded"); - - DataTable table = new DataTable - { - Columns = - { - {"Id", typeof (int)}, - {"Text", typeof (string)}, - {"CreationDate", typeof (DateTime)}, - {"LastChangeDate", typeof (DateTime)}, - {"Counter1", typeof (int)}, - {"Counter2", typeof (int)}, - {"Counter3", typeof (int)}, - {"Counter4", typeof (int)}, - {"Counter5", typeof (int)}, - {"Counter6", typeof (int)}, - {"Counter7", typeof (int)}, - {"Counter8", typeof (int)}, - {"Counter9", typeof (int)}, - } - }; - tests.Add(id => - { - idParam.Value = id; - object[] values = new object[13]; - using (var reader = postCommand.ExecuteReader()) - { - reader.Read(); - reader.GetValues(values); - table.Rows.Add(values); - } - }, "DataTable via IDataReader.GetValues"); - - tests.Run(iterations); - } - } - - } - - static class SqlDataReaderHelper - { - public static string GetNullableString(this SqlDataReader reader, int index) - { - object tmp = reader.GetValue(index); - if (tmp != DBNull.Value) - { - return (string)tmp; - } - return null; - } - - public static Nullable GetNullableValue(this SqlDataReader reader, int index) where T : struct - { - object tmp = reader.GetValue(index); - if (tmp != DBNull.Value) - { - return (T)tmp; - } - return null; - } - } -} \ No newline at end of file diff --git a/Tests/PetaPoco/PetaPoco.cs b/Tests/PetaPoco/PetaPoco.cs deleted file mode 100644 index f7584e375..000000000 --- a/Tests/PetaPoco/PetaPoco.cs +++ /dev/null @@ -1,1465 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Configuration; -using System.Data.Common; -using System.Data; -using System.Text.RegularExpressions; -using System.Reflection; -using System.Reflection.Emit; - -namespace PetaPoco -{ - // Poco's marked [Explicit] require all column properties to be marked - [AttributeUsage(AttributeTargets.Class)] - public class ExplicitColumns : Attribute - { - } - // For non-explicit pocos, causes a property to be ignored - [AttributeUsage(AttributeTargets.Property)] - public class Ignore : Attribute - { - } - - // For explicit pocos, marks property as a column and optionally supplies column name - [AttributeUsage(AttributeTargets.Property)] - public class Column : Attribute - { - public Column() { } - public Column(string name) { Name = name; } - public string Name { get; set; } - } - - // For explicit pocos, marks property as a result column and optionally supplies column name - [AttributeUsage(AttributeTargets.Property)] - public class ResultColumn : Column - { - public ResultColumn() { } - public ResultColumn(string name) : base(name) { } - } - - // Specify the table name of a poco - [AttributeUsage(AttributeTargets.Class)] - public class TableName : Attribute - { - public TableName(string tableName) - { - Value = tableName; - } - public string Value { get; private set; } - } - - // Specific the primary key of a poco class - [AttributeUsage(AttributeTargets.Class)] - public class PrimaryKey : Attribute - { - public PrimaryKey(string primaryKey) - { - Value = primaryKey; - } - - public string Value { get; private set; } - } - - // Results from paged request - public class Page where T : new() - { - public long CurrentPage { get; set; } - public long TotalPages { get; set; } - public long TotalItems { get; set; } - public long ItemsPerPage { get; set; } - public List Items { get; set; } - } - - // Optionally provide and implementation of this to Database.Mapper - public interface IMapper - { - void GetTableInfo(Type t, ref string tableName, ref string primaryKey); - bool MapPropertyToColumn(PropertyInfo pi, ref string columnName, ref bool resultColumn); - Func GetValueConverter(PropertyInfo pi, Type SourceType); - } - - // Database class ... this is where most of the action happens - public class Database : IDisposable - { - public Database(DbConnection connection) - { - _sharedConnection = connection; - _connectionString = connection.ConnectionString; - _sharedConnectionDepth = 2; // Prevent closing external connection - CommonConstruct(); - } - - public Database(string connectionString, string providerName) - { - _connectionString = connectionString; - _providerName = providerName; - CommonConstruct(); - } - - public Database(string connectionStringName) - { - // Use first? - if (connectionStringName == "") - connectionStringName = ConfigurationManager.ConnectionStrings[0].Name; - - // Work out connection string and provider name - var providerName = "System.Data.SqlClient"; - if (ConfigurationManager.ConnectionStrings[connectionStringName] != null) - { - if (!string.IsNullOrEmpty(ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName)) - providerName = ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName; - } - else - { - throw new InvalidOperationException("Can't find a connection string with the name '" + connectionStringName + "'"); - } - - // Store factory and connection string - _connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; - _providerName = providerName; - CommonConstruct(); - } - - // Common initialization - void CommonConstruct() - { - _transactionDepth = 0; - EnableAutoSelect = true; - EnableNamedParams = true; - ForceDateTimesToUtc = true; - - if (_providerName != null) - _factory = DbProviderFactories.GetFactory(_providerName); - - if (_connectionString != null && _connectionString.IndexOf("Allow User Variables=true") >= 0 && IsMySql()) - _paramPrefix = "?"; - } - - // Automatically close one open shared connection - public void Dispose() - { - if (_sharedConnectionDepth > 0) - CloseSharedConnection(); - } - - // Who are we talking too? - bool IsMySql() { return string.Compare(_providerName, "MySql.Data.MySqlClient", true) == 0; } - bool IsSqlServer() { return string.Compare(_providerName, "System.Data.SqlClient", true) == 0; } - - // Open a connection (can be nested) - public void OpenSharedConnection() - { - if (_sharedConnectionDepth == 0) - { - _sharedConnection = _factory.CreateConnection(); - _sharedConnection.ConnectionString = _connectionString; - _sharedConnection.Open(); - } - _sharedConnectionDepth++; - } - - // Close a previously opened connection - public void CloseSharedConnection() - { - _sharedConnectionDepth--; - if (_sharedConnectionDepth == 0) - { - _sharedConnection.Dispose(); - _sharedConnection = null; - } - } - - // Helper to create a transaction scope - public Transaction Transaction - { - get - { - return new Transaction(this); - } - } - - // Use by derived repo generated by T4 templates - public virtual void OnBeginTransaction() { } - public virtual void OnEndTransaction() { } - - // Start a new transaction, can be nested, every call must be - // matched by a call to AbortTransaction or CompleteTransaction - // Use `using (var scope=db.Transaction) { scope.Complete(); }` to ensure correct semantics - public void BeginTransaction() - { - _transactionDepth++; - - if (_transactionDepth == 1) - { - OpenSharedConnection(); - _transaction = _sharedConnection.BeginTransaction(); - _transactionCancelled = false; - OnBeginTransaction(); - } - - } - - // Internal helper to cleanup transaction stuff - void CleanupTransaction() - { - OnEndTransaction(); - - if (_transactionCancelled) - _transaction.Rollback(); - else - _transaction.Commit(); - - _transaction.Dispose(); - _transaction = null; - - CloseSharedConnection(); - } - - // Abort the entire outer most transaction scope - public void AbortTransaction() - { - _transactionCancelled = true; - if ((--_transactionDepth) == 0) - CleanupTransaction(); - } - - // Complete the transaction - public void CompleteTransaction() - { - if ((--_transactionDepth) == 0) - CleanupTransaction(); - } - - // Helper to handle named parameters from object properties - static Regex rxParams = new Regex(@"(? args_dest) - { - return rxParams.Replace(_sql, m => - { - string param = m.Value.Substring(1); - - int paramIndex; - if (int.TryParse(param, out paramIndex)) - { - // Numbered parameter - if (paramIndex < 0 || paramIndex >= args_src.Length) - throw new ArgumentOutOfRangeException(string.Format("Parameter '@{0}' specified but only {1} parameters supplied (in `{2}`)", paramIndex, args_src.Length, _sql)); - args_dest.Add(args_src[paramIndex]); - } - else - { - // Look for a property on one of the arguments with this name - bool found = false; - foreach (var o in args_src) - { - var pi = o.GetType().GetProperty(param); - if (pi != null) - { - args_dest.Add(pi.GetValue(o, null)); - found = true; - break; - } - } - - if (!found) - throw new ArgumentException(string.Format("Parameter '@{0}' specified but none of the passed arguments have a property with this name (in '{1}')", param, _sql)); - } - - return "@" + (args_dest.Count - 1).ToString(); - } - ); - } - - // Add a parameter to a DB command - static void AddParam(DbCommand cmd, object item, string ParameterPrefix) - { - var p = cmd.CreateParameter(); - p.ParameterName = string.Format("{0}{1}", ParameterPrefix, cmd.Parameters.Count); - if (item == null) - { - p.Value = DBNull.Value; - } - else - { - if (item.GetType() == typeof(Guid)) - { - p.Value = item.ToString(); - p.DbType = DbType.String; - p.Size = 4000; - } - else if (item.GetType() == typeof(string)) - { - p.Size = (item as string).Length + 1; - if (p.Size < 4000) - p.Size = 4000; - p.Value = item; - } - else - { - p.Value = item; - } - } - - cmd.Parameters.Add(p); - } - - // Create a command - public DbCommand CreateCommand(DbConnection connection, string sql, params object[] args) - { - if (EnableNamedParams) - { - // Perform named argument replacements - var new_args = new List(); - sql = ProcessParams(sql, args, new_args); - args = new_args.ToArray(); - } - - // If we're in MySQL "Allow User Variables", we need to fix up parameter prefixes - if (_paramPrefix == "?") - { - // Convert "@parameter" -> "?parameter" - Regex paramReg = new Regex(@"(? "?" + m.Value.Substring(1)); - - // Convert @@uservar -> @uservar and @@@systemvar -> @@systemvar - sql = sql.Replace("@@", "@"); - } - - // Save the last sql and args - _lastSql = sql; - _lastArgs = args; - - DbCommand cmd = connection.CreateCommand(); - cmd.CommandText = sql; - cmd.Transaction = _transaction; - foreach (var item in args) - { - var p = cmd.CreateParameter(); - p.ParameterName = string.Format("{0}{1}", _paramPrefix, cmd.Parameters.Count); - if (item == null) - { - p.Value = DBNull.Value; - } - else - { - if (item.GetType() == typeof(Guid)) - { - p.Value = item.ToString(); - p.DbType = DbType.String; - p.Size = 4000; - } - else if (item.GetType() == typeof(string)) - { - p.Size = (item as string).Length + 1; - if (p.Size < 4000) - p.Size = 4000; - p.Value = item; - } - else - { - p.Value = item; - } - } - - cmd.Parameters.Add(p); - } - return cmd; - } - - // Override this to log/capture exceptions - public virtual void OnException(Exception x) - { - System.Diagnostics.Debug.WriteLine(x.ToString()); - System.Diagnostics.Debug.WriteLine(LastCommand); - } - - // Execute a non-query command - public int Execute(string sql, params object[] args) - { - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, sql, args)) - { - return cmd.ExecuteNonQuery(); - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - public int Execute(Sql sql) - { - return Execute(sql.SQL, sql.Arguments); - } - - // Execute and cast a scalar property - public T ExecuteScalar(string sql, params object[] args) - { - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, sql, args)) - { - object val = cmd.ExecuteScalar(); - return (T)Convert.ChangeType(val, typeof(T)); - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - public T ExecuteScalar(Sql sql) - { - return ExecuteScalar(sql.SQL, sql.Arguments); - } - - Regex rxSelect = new Regex(@"^\s*SELECT\s", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline); - string AddSelectClause(string sql) - { - // Already present? - if (rxSelect.IsMatch(sql)) - return sql; - - // Get the poco data for this type - var pd = PocoData.ForType(typeof(T)); - return string.Format("SELECT {0} FROM {1} {2}", pd.QueryColumns, pd.TableName, sql); - } - - public bool EnableAutoSelect { get; set; } - public bool EnableNamedParams { get; set; } - public bool ForceDateTimesToUtc { get; set; } - - // Return a typed list of pocos - public List Fetch(string sql, params object[] args) where T : new() - { - // Auto select clause? - if (EnableAutoSelect) - sql = AddSelectClause(sql); - - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, sql, args)) - { - using (var r = cmd.ExecuteReader()) - { - var l = new List(); - var pd = PocoData.ForType(typeof(T)); - var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); - while (r.Read()) - { - l.Add(factory(r)); - } - return l; - } - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - // Optimized version when only needing a single record - public T FirstOrDefault(string sql, params object[] args) where T : new() - { - // Auto select clause? - if (EnableAutoSelect) - sql = AddSelectClause(sql); - - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, sql, args)) - { - using (var r = cmd.ExecuteReader()) - { - if (!r.Read()) - return default(T); - - var pd = PocoData.ForType(typeof(T)); - var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); - return factory(r); - } - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - // Optimized version when only wanting a single record - public T SingleOrDefault(string sql, params object[] args) where T : new() - { - // Auto select clause? - if (EnableAutoSelect) - sql = AddSelectClause(sql); - - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, sql, args)) - { - using (var r = cmd.ExecuteReader()) - { - if (!r.Read()) - return default(T); - - var pd = PocoData.ForType(typeof(T)); - var factory = pd.GetFactory(sql + "-" + _sharedConnection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); - T ret = factory(r); - - if (r.Read()) - throw new InvalidOperationException("Sequence contains more than one element"); - - return ret; - } - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - - // Warning: scary regex follows - static Regex rxColumns = new Regex(@"^\s*SELECT\s+((?:\((?>\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|.)*?)(?\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|[\w\(\)\.])+(?:\s+(?:ASC|DESC))?(?:\s*,\s*(?:\((?>\((?)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|[\w\(\)\.])+(?:\s+(?:ASC|DESC))?)*", - RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.Compiled); - public static bool SplitSqlForPaging(string sql, out string sqlCount, out string sqlSelectRemoved, out string sqlOrderBy) - { - sqlSelectRemoved = null; - sqlCount = null; - sqlOrderBy = null; - - // Extract the columns from "SELECT FROM" - var m = rxColumns.Match(sql); - if (!m.Success) - return false; - - // Save column list and replace with COUNT(*) - Group g = m.Groups[1]; - sqlCount = sql.Substring(0, g.Index) + "COUNT(*) " + sql.Substring(g.Index + g.Length); - sqlSelectRemoved = sql.Substring(g.Index); - - // Look for an "ORDER BY " clause - m = rxOrderBy.Match(sqlCount); - if (!m.Success) - return false; - - g = m.Groups[0]; - sqlOrderBy = g.ToString(); - sqlCount = sqlCount.Substring(0, g.Index) + sqlCount.Substring(g.Index + g.Length); - - return true; - } - - // Fetch a page - public Page Page(long page, long itemsPerPage, string sql, params object[] args) where T : new() - { - // Add auto select clause - if (EnableAutoSelect) - sql = AddSelectClause(sql); - - // Split the SQL into the bits we need - string sqlCount, sqlSelectRemoved, sqlOrderBy; - if (!SplitSqlForPaging(sql, out sqlCount, out sqlSelectRemoved, out sqlOrderBy)) - throw new Exception("Unable to parse SQL statement for paged query"); - - // Setup the paged result - var result = new Page(); - result.CurrentPage = page; - result.ItemsPerPage = itemsPerPage; - result.TotalItems = ExecuteScalar(sqlCount, args); - result.TotalPages = result.TotalItems / itemsPerPage; - if ((result.TotalItems % itemsPerPage) != 0) - result.TotalPages++; - - - // Build the SQL for the actual final result - string sqlPage; - if (IsSqlServer()) - { - // Ugh really? - sqlSelectRemoved = rxOrderBy.Replace(sqlSelectRemoved, ""); - sqlPage = string.Format("SELECT * FROM (SELECT ROW_NUMBER() OVER ({0}) AS __rn, {1}) as __paged WHERE __rn>{2} AND __rn<={3}", - sqlOrderBy, sqlSelectRemoved, (page - 1) * itemsPerPage, page * itemsPerPage); - } - else - { - // Nice - sqlPage = string.Format("{0}\nLIMIT {1} OFFSET {2}", sql, itemsPerPage, (page - 1) * itemsPerPage); - } - - // Get the records - result.Items = Fetch(sqlPage, args); - - // Done - return result; - } - - public Page Page(long page, long itemsPerPage, Sql sql) where T : new() - { - return Page(page, itemsPerPage, sql.SQL, sql.Arguments); - } - - // Return an enumerable collection of pocos - public IEnumerable Query(string sql, params object[] args) where T : new() - { - if (EnableAutoSelect) - sql = AddSelectClause(sql); - - using (var conn = new ShareableConnection(this)) - { - using (var cmd = CreateCommand(conn.Connection, sql, args)) - { - IDataReader r; - var pd = PocoData.ForType(typeof(T)); - try - { - r = cmd.ExecuteReader(); - } - catch (Exception x) - { - OnException(x); - throw; - } - var factory = pd.GetFactory(sql + "-" + conn.Connection.ConnectionString + ForceDateTimesToUtc.ToString(), ForceDateTimesToUtc, r); - using (r) - { - while (true) - { - T poco; - try - { - if (!r.Read()) - yield break; - poco = factory(r); - } - catch (Exception x) - { - OnException(x); - throw; - } - - yield return poco; - } - } - } - } - } - - public List Fetch(Sql sql) where T : new() - { - return Fetch(sql.SQL, sql.Arguments); - } - - public IEnumerable Query(Sql sql) where T : new() - { - return Query(sql.SQL, sql.Arguments); - } - - - public T Single(string sql, params object[] args) where T : new() - { - T val = SingleOrDefault(sql, args); - if (val != null) - return val; - else - throw new InvalidOperationException("The sequence contains no elements"); - } - public T First(string sql, params object[] args) where T : new() - { - T val = FirstOrDefault(sql, args); - if (val != null) - return val; - else - throw new InvalidOperationException("The sequence contains no elements"); - } - - public T Single(Sql sql) where T : new() - { - return Single(sql.SQL, sql.Arguments); - } - public T SingleOrDefault(Sql sql) where T : new() - { - return SingleOrDefault(sql.SQL, sql.Arguments); - } - public T FirstOrDefault(Sql sql) where T : new() - { - return FirstOrDefault(sql.SQL, sql.Arguments); - } - public T First(Sql sql) where T : new() - { - return First(sql.SQL, sql.Arguments); - } - - // Insert a poco into a table. If the poco has a property with the same name - // as the primary key the id of the new record is assigned to it. Either way, - // the new id is returned. - public object Insert(string tableName, string primaryKeyName, object poco) - { - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, "")) - { - var pd = PocoData.ForType(poco.GetType()); - var names = new List(); - var values = new List(); - var index = 0; - foreach (var i in pd.Columns) - { - // Don't insert the primary key or result only columns - if ((primaryKeyName != null && i.Key == primaryKeyName) || i.Value.ResultColumn) - continue; - - names.Add(i.Key); - values.Add(string.Format("{0}{1}", _paramPrefix, index++)); - AddParam(cmd, i.Value.PropertyInfo.GetValue(poco, null), _paramPrefix); - } - - cmd.CommandText = string.Format("INSERT INTO {0} ({1}) VALUES ({2}); SELECT @@IDENTITY AS NewID;", - tableName, - string.Join(",", names.ToArray()), - string.Join(",", values.ToArray()) - ); - - _lastSql = cmd.CommandText; - _lastArgs = values.ToArray(); - - // Insert the record, should get back it's ID - var id = cmd.ExecuteScalar(); - - // Assign the ID back to the primary key property - if (primaryKeyName != null) - { - PocoColumn pc; - if (pd.Columns.TryGetValue(primaryKeyName, out pc)) - { - pc.PropertyInfo.SetValue(poco, Convert.ChangeType(id, pc.PropertyInfo.PropertyType), null); - } - } - - return id; - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - // Insert an annotated poco object - public object Insert(object poco) - { - var pd = PocoData.ForType(poco.GetType()); - return Insert(pd.TableName, pd.PrimaryKey, poco); - } - - // Update a record with values from a poco. primary key value can be either supplied or read from the poco - public int Update(string tableName, string primaryKeyName, object poco, object primaryKeyValue) - { - try - { - OpenSharedConnection(); - try - { - using (var cmd = CreateCommand(_sharedConnection, "")) - { - var sb = new StringBuilder(); - var index = 0; - var pd = PocoData.ForType(poco.GetType()); - foreach (var i in pd.Columns) - { - // Don't update the primary key, but grab the value if we don't have it - if (i.Key == primaryKeyName) - { - if (primaryKeyValue == null) - primaryKeyValue = i.Value.PropertyInfo.GetValue(poco, null); - continue; - } - - // Dont update result only columns - if (i.Value.ResultColumn) - continue; - - // Build the sql - if (index > 0) - sb.Append(", "); - sb.AppendFormat("{0} = {1}{2}", i.Key, _paramPrefix, index++); - - // Store the parameter in the command - AddParam(cmd, i.Value.PropertyInfo.GetValue(poco, null), _paramPrefix); - } - - cmd.CommandText = string.Format("UPDATE {0} SET {1} WHERE {2} = {3}{4}", - tableName, - sb.ToString(), - primaryKeyName, - _paramPrefix, - index++ - ); - AddParam(cmd, primaryKeyValue, _paramPrefix); - - _lastSql = cmd.CommandText; - _lastArgs = new object[] { primaryKeyValue }; - - // Do it - return cmd.ExecuteNonQuery(); - } - } - finally - { - CloseSharedConnection(); - } - } - catch (Exception x) - { - OnException(x); - throw; - } - } - - public int Update(string tableName, string primaryKeyName, object poco) - { - return Update(tableName, primaryKeyName, poco, null); - } - - public int Update(object poco) - { - return Update(poco, null); - } - - public int Update(object poco, object primaryKeyValue) - { - var pd = PocoData.ForType(poco.GetType()); - return Update(pd.TableName, pd.PrimaryKey, poco, primaryKeyValue); - } - - public int Update(string sql, params object[] args) - { - var pd = PocoData.ForType(typeof(T)); - return Execute(string.Format("UPDATE {0} {1}", pd.TableName, sql), args); - } - - public int Update(Sql sql) - { - var pd = PocoData.ForType(typeof(T)); - return Execute(new Sql(string.Format("UPDATE {0}", pd.TableName)).Append(sql)); - } - - public int Delete(string tableName, string primaryKeyName, object poco) - { - return Delete(tableName, primaryKeyName, poco, null); - } - - public int Delete(string tableName, string primaryKeyName, object poco, object primaryKeyValue) - { - // If primary key value not specified, pick it up from the object - if (primaryKeyValue == null) - { - var pd = PocoData.ForType(poco.GetType()); - PocoColumn pc; - if (pd.Columns.TryGetValue(primaryKeyName, out pc)) - { - primaryKeyValue = pc.PropertyInfo.GetValue(poco, null); - } - } - - // Do it - var sql = string.Format("DELETE FROM {0} WHERE {1}=@0", tableName, primaryKeyName); - return Execute(sql, primaryKeyValue); - } - - public int Delete(object poco) - { - var pd = PocoData.ForType(poco.GetType()); - return Delete(pd.TableName, pd.PrimaryKey, poco); - } - - public int Delete(string sql, params object[] args) - { - var pd = PocoData.ForType(typeof(T)); - return Execute(string.Format("DELETE FROM {0} {1}", pd.TableName, sql), args); - } - - public int Delete(Sql sql) - { - var pd = PocoData.ForType(typeof(T)); - return Execute(new Sql(string.Format("DELETE FROM {0}", pd.TableName)).Append(sql)); - } - - // Check if a poco represents a new record - public bool IsNew(string primaryKeyName, object poco) - { - // If primary key value not specified, pick it up from the object - var pd = PocoData.ForType(poco.GetType()); - PropertyInfo pi; - PocoColumn pc; - if (pd.Columns.TryGetValue(primaryKeyName, out pc)) - { - pi = pc.PropertyInfo; - } - else - { - pi = poco.GetType().GetProperty(primaryKeyName); - if (pi == null) - throw new ArgumentException("The object doesn't have a property matching the primary key column name '{0}'", primaryKeyName); - } - - // Get it's value - var pk = pi.GetValue(poco, null); - if (pk == null) - return true; - - var type = pk.GetType(); - - if (type.IsValueType) - { - // Common primary key types - if (type == typeof(long)) - return (long)pk == 0; - else if (type == typeof(ulong)) - return (ulong)pk == 0; - else if (type == typeof(int)) - return (int)pk == 0; - else if (type == typeof(uint)) - return (int)pk == 0; - - // Create a default instance and compare - return pk == Activator.CreateInstance(pk.GetType()); - } - else - { - return pk == null; - } - } - - public bool IsNew(object poco) - { - var pd = PocoData.ForType(poco.GetType()); - return IsNew(pd.PrimaryKey, poco); - } - - // Insert new record or Update existing record - public void Save(string tableName, string primaryKeyName, object poco) - { - if (IsNew(primaryKeyName, poco)) - { - Insert(tableName, primaryKeyName, poco); - } - else - { - Update(tableName, primaryKeyName, poco); - } - } - - public void Save(object poco) - { - var pd = PocoData.ForType(poco.GetType()); - Save(pd.TableName, pd.PrimaryKey, poco); - } - - public string LastSQL { get { return _lastSql; } } - public object[] LastArgs { get { return _lastArgs; } } - public string LastCommand - { - get - { - var sb = new StringBuilder(); - if (_lastSql == null) - return ""; - sb.Append(_lastSql); - if (_lastArgs != null) - { - sb.Append("\r\n\r\n"); - for (int i = 0; i < _lastArgs.Length; i++) - { - sb.AppendFormat("{0} - {1}\r\n", i, _lastArgs[i].ToString()); - } - } - return sb.ToString(); - } - } - - public static IMapper Mapper - { - get; - set; - } - - internal class PocoColumn - { - public string ColumnName; - public PropertyInfo PropertyInfo; - public bool ResultColumn; - } - internal class PocoData - { - public static PocoData ForType(Type t) - { - lock (m_PocoData) - { - PocoData pd; - if (!m_PocoData.TryGetValue(t, out pd)) - { - pd = new PocoData(t); - m_PocoData.Add(t, pd); - } - return pd; - } - } - - public PocoData(Type t) - { - // Get the table name - var a = t.GetCustomAttributes(typeof(TableName), true); - var tempTableName = a.Length == 0 ? t.Name : (a[0] as TableName).Value; - - // Get the primary key - a = t.GetCustomAttributes(typeof(PrimaryKey), true); - var tempPrimaryKey = a.Length == 0 ? "ID" : (a[0] as PrimaryKey).Value; - - // Call column mapper - if (Database.Mapper != null) - Database.Mapper.GetTableInfo(t, ref tempTableName, ref tempPrimaryKey); - TableName = tempTableName; - PrimaryKey = tempPrimaryKey; - - // Work out bound properties - bool ExplicitColumns = t.GetCustomAttributes(typeof(ExplicitColumns), true).Length > 0; - Columns = new Dictionary(StringComparer.OrdinalIgnoreCase); - foreach (var pi in t.GetProperties()) - { - // Work out if properties is to be included - var ColAttrs = pi.GetCustomAttributes(typeof(Column), true); - if (ExplicitColumns) - { - if (ColAttrs.Length == 0) - continue; - } - else - { - if (pi.GetCustomAttributes(typeof(Ignore), true).Length != 0) - continue; - } - - var pc = new PocoColumn(); - pc.PropertyInfo = pi; - - // Work out the DB column name - if (ColAttrs.Length > 0) - { - var colattr = (Column)ColAttrs[0]; - pc.ColumnName = colattr.Name; - if ((colattr as ResultColumn) != null) - pc.ResultColumn = true; - } - if (pc.ColumnName == null) - { - pc.ColumnName = pi.Name; - if (Database.Mapper != null && !Database.Mapper.MapPropertyToColumn(pi, ref pc.ColumnName, ref pc.ResultColumn)) - continue; - } - - // Store it - Columns.Add(pc.ColumnName, pc); - } - - // Build column list for automatic select - QueryColumns = string.Join(", ", (from c in Columns where !c.Value.ResultColumn select c.Key).ToArray()); - } - - // Create factory function that can convert a IDataReader record into a POCO - public Func GetFactory(string key, bool ForceDateTimesToUtc, IDataReader r) - { - lock (PocoFactories) - { - // Have we already created it? - object factory; - if (PocoFactories.TryGetValue(key, out factory)) - return factory as Func; - - lock (m_Converters) - { - // Create the method - var m = new DynamicMethod("petapoco_factory_" + PocoFactories.Count.ToString(), typeof(T), new Type[] { typeof(IDataReader) }, true); - var il = m.GetILGenerator(); - - // Running under mono? - int p = (int)Environment.OSVersion.Platform; - bool Mono = (p == 4) || (p == 6) || (p == 128); - - // var poco=new T() - il.Emit(OpCodes.Newobj, typeof(T).GetConstructor(Type.EmptyTypes)); - - // Enumerate all fields generating a set assignment for the column - for (int i = 0; i < r.FieldCount; i++) - { - // Get the PocoColumn for this db column, ignore if not known - PocoColumn pc; - if (!Columns.TryGetValue(r.GetName(i), out pc)) - continue; - - // Get the source type for this column - var srcType = r.GetFieldType(i); - var dstType = pc.PropertyInfo.PropertyType; - - // "if (!rdr.IsDBNull(i))" - il.Emit(OpCodes.Ldarg_0); // poco,rdr - il.Emit(OpCodes.Ldc_I4, i); // poco,rdr,i - il.Emit(OpCodes.Callvirt, fnIsDBNull); // poco,bool - var lblNext = il.DefineLabel(); - il.Emit(OpCodes.Brtrue_S, lblNext); // poco - - il.Emit(OpCodes.Dup); // poco,poco - - // Do we need to install a converter? - Func converter = null; - - // Get converter from the mapper - if (Database.Mapper != null) - { - converter = Database.Mapper.GetValueConverter(pc.PropertyInfo, srcType); - } - - // Standard DateTime->Utc mapper - if (ForceDateTimesToUtc && converter == null && srcType == typeof(DateTime) && (dstType == typeof(DateTime) || dstType == typeof(DateTime?))) - { - converter = delegate(object src) { return new DateTime(((DateTime)src).Ticks, DateTimeKind.Utc); }; - } - - // Forced type conversion - if (converter == null && !dstType.IsAssignableFrom(srcType)) - { - converter = delegate(object src) { return Convert.ChangeType(src, dstType, null); }; - } - - // Fast - bool Handled = false; - if (converter == null) - { - var valuegetter = typeof(IDataRecord).GetMethod("Get" + srcType.Name, new Type[] { typeof(int) }); - if (valuegetter != null - && valuegetter.ReturnType == srcType - && (valuegetter.ReturnType == dstType || valuegetter.ReturnType == Nullable.GetUnderlyingType(dstType))) - { - il.Emit(OpCodes.Ldarg_0); // *,rdr - il.Emit(OpCodes.Ldc_I4, i); // *,rdr,i - il.Emit(OpCodes.Callvirt, valuegetter); // *,value - - // Mono give IL error if we don't explicitly create Nullable instance for the assignment - if (Mono && Nullable.GetUnderlyingType(dstType) != null) - { - il.Emit(OpCodes.Newobj, dstType.GetConstructor(new Type[] { Nullable.GetUnderlyingType(dstType) })); - } - - il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod()); // poco - Handled = true; - } - } - - // Not so fast - if (!Handled) - { - // Setup stack for call to converter - int converterIndex = -1; - if (converter != null) - { - // Add the converter - converterIndex = m_Converters.Count; - m_Converters.Add(converter); - - // Generate IL to push the converter onto the stack - il.Emit(OpCodes.Ldsfld, fldConverters); - il.Emit(OpCodes.Ldc_I4, converterIndex); - il.Emit(OpCodes.Callvirt, fnListGetItem); // Converter - } - - // "value = rdr.GetValue(i)" - il.Emit(OpCodes.Ldarg_0); // *,rdr - il.Emit(OpCodes.Ldc_I4, i); // *,rdr,i - il.Emit(OpCodes.Callvirt, fnGetValue); // *,value - - // Call the converter - if (converter != null) - il.Emit(OpCodes.Callvirt, fnInvoke); - - // Assign it - il.Emit(OpCodes.Unbox_Any, pc.PropertyInfo.PropertyType); // poco,poco,value - il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod()); // poco - } - - il.MarkLabel(lblNext); - } - - il.Emit(OpCodes.Ret); - - // Cache it, return it - var del = (Func)m.CreateDelegate(typeof(Func)); - PocoFactories.Add(key, del); - return del; - } - } - } - - - static Dictionary m_PocoData = new Dictionary(); - static List> m_Converters = new List>(); - - static MethodInfo fnGetValue = typeof(IDataRecord).GetMethod("GetValue", new Type[] { typeof(int) }); - static MethodInfo fnIsDBNull = typeof(IDataRecord).GetMethod("IsDBNull"); - static FieldInfo fldConverters = typeof(PocoData).GetField("m_Converters", BindingFlags.Static | BindingFlags.GetField | BindingFlags.NonPublic); - static MethodInfo fnListGetItem = typeof(List>).GetProperty("Item").GetGetMethod(); - static MethodInfo fnInvoke = typeof(Func).GetMethod("Invoke"); - - public string TableName { get; private set; } - public string PrimaryKey { get; private set; } - public string QueryColumns { get; private set; } - public Dictionary Columns { get; private set; } - Dictionary PocoFactories = new Dictionary(); - } - - - // ShareableConnection represents either a shared connection used by a transaction, - // or a one-off connection if not in a transaction. - // Non-shared connections are disposed - class ShareableConnection : IDisposable - { - public ShareableConnection(Database db) - { - _db = db; - _db.OpenSharedConnection(); - } - - public DbConnection Connection - { - get - { - return _db._sharedConnection; - } - } - - Database _db; - - public void Dispose() - { - _db.CloseSharedConnection(); - } - } - - - // Member variables - string _connectionString; - string _providerName; - DbProviderFactory _factory; - DbConnection _sharedConnection; - DbTransaction _transaction; - int _sharedConnectionDepth; - int _transactionDepth; - bool _transactionCancelled; - string _lastSql; - object[] _lastArgs; - string _paramPrefix = "@"; - } - - // Transaction object helps maintain transaction depth counts - public class Transaction : IDisposable - { - public Transaction(Database db) - { - _db = db; - _db.BeginTransaction(); - } - - public void Complete() - { - _db.CompleteTransaction(); - _db = null; - } - - public void Dispose() - { - if (_db != null) - _db.AbortTransaction(); - } - - Database _db; - } - - // Simple helper class for building SQL statments - public class Sql - { - public Sql() - { - } - - public Sql(string sql, params object[] args) - { - _sql = sql; - _args = args; - } - - string _sql; - object[] _args; - Sql _rhs; - string _sqlFinal; - object[] _argsFinal; - - void Build() - { - // already built? - if (_sqlFinal != null) - return; - - // Build it - var sb = new StringBuilder(); - var args = new List(); - Build(sb, args, null); - _sqlFinal = sb.ToString(); - _argsFinal = args.ToArray(); - } - - public string SQL - { - get - { - Build(); - return _sqlFinal; - } - } - - public object[] Arguments - { - get - { - Build(); - return _argsFinal; - } - } - - public Sql Append(Sql sql) - { - if (_rhs != null) - _rhs.Append(sql); - else - _rhs = sql; - - return this; - } - - public Sql Append(string sql, params object[] args) - { - return Append(new Sql(sql, args)); - } - - public Sql Where(string sql, params object[] args) - { - return Append(new Sql("WHERE " + sql, args)); - } - - public Sql OrderBy(params object[] args) - { - return Append(new Sql("ORDER BY " + String.Join(", ", (from x in args select x.ToString()).ToArray()))); - } - - public Sql Select(params object[] args) - { - return Append(new Sql("SELECT " + String.Join(", ", (from x in args select x.ToString()).ToArray()))); - } - - public Sql From(params object[] args) - { - return Append(new Sql("FROM " + String.Join(", ", (from x in args select x.ToString()).ToArray()))); - } - - static bool Is(Sql sql, string sqltype) - { - return sql != null && sql._sql != null && sql._sql.StartsWith(sqltype, StringComparison.InvariantCultureIgnoreCase); - } - - public void Build(StringBuilder sb, List args, Sql lhs) - { - if (!String.IsNullOrEmpty(_sql)) - { - // Add SQL to the string - if (sb.Length > 0) - { - sb.Append("\n"); - } - - var sql = Database.ProcessParams(_sql, _args, args); - - if (Is(lhs, "WHERE ") && Is(this, "WHERE ")) - sql = "AND " + sql.Substring(6); - if (Is(lhs, "ORDER BY ") && Is(this, "ORDER BY ")) - sql = ", " + sql.Substring(9); - - sb.Append(sql); - } - - // Now do rhs - if (_rhs != null) - _rhs.Build(sb, args, this); - } - } -} diff --git a/Tests/Program.cs b/Tests/Program.cs deleted file mode 100644 index f1db5c3dc..000000000 --- a/Tests/Program.cs +++ /dev/null @@ -1,248 +0,0 @@ -using System; -using System.Data.SqlClient; -using System.Reflection; -using System.Linq; -using System.Collections.Generic; -namespace SqlMapper -{ - -#if EXTERNALS - [ServiceStack.DataAnnotations.Alias("Posts")] - [Soma.Core.Table(Name = "Posts")] -#endif - public class Post - { -#if EXTERNALS - [Soma.Core.Id(Soma.Core.IdKind.Identity)] -#endif - public int Id { get; set; } - public string Text { get; set; } - public DateTime CreationDate { get; set; } - public DateTime LastChangeDate { get; set; } - public int? Counter1 { get; set; } - public int? Counter2 { get; set; } - public int? Counter3 { get; set; } - public int? Counter4 { get; set; } - public int? Counter5 { get; set; } - public int? Counter6 { get; set; } - public int? Counter7 { get; set; } - public int? Counter8 { get; set; } - public int? Counter9 { get; set; } - - } - - class Program - { - - public const string ConnectionString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True", - OleDbConnectionString = "Provider=SQLOLEDB;Data Source=.;Initial Catalog=tempdb;Integrated Security=SSPI"; - - public static SqlConnection GetOpenConnection(bool mars = false) - { - var cs = ConnectionString; - if (mars) - { - SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(cs); - scsb.MultipleActiveResultSets = true; - cs = scsb.ConnectionString; - } - var connection = new SqlConnection(cs); - connection.Open(); - return connection; - } - public static SqlConnection GetClosedConnection() - { - return new SqlConnection(ConnectionString); - } - - static void RunPerformanceTests() - { -#if PERF - var test = new PerformanceTests(); - const int iterations = 500; - Console.WriteLine("Running {0} iterations that load up a post entity", iterations); - test.Run(iterations); -#else - Console.WriteLine("Performance tests have not been built; add the PERF symbol"); -#endif - } - - static void Main() - { -#if DNXCORE50 - Console.WriteLine("CoreCLR"); -#else - Console.WriteLine(Environment.Version); -#endif - -#if DEBUG - int fail = 0, skip = 0, pass = 0, frameworkFail = 0; - var failNames = new List(); - - RunTests(ref fail, ref skip, ref pass, ref frameworkFail, failNames); -#if ASYNC - RunTests(ref fail, ref skip, ref pass, ref frameworkFail, failNames); -#endif - - if (fail == 0) - { - Console.WriteLine("(all tests successful)"); - } - else - { - Console.WriteLine("Failures:"); - foreach (var failName in failNames) - { - Console.WriteLine(failName); - } - } - Console.WriteLine("Passed: {0}, Failed: {1}, Skipped: {2}, Framework-fail: {3}", pass, fail, skip, frameworkFail); -#else - EnsureDBSetup(); - RunPerformanceTests(); -#endif - -#if DNXCORE50 - Console.WriteLine("(end of tests; press return)"); - Console.ReadLine(); -#else - Console.WriteLine("(end of tests; press any key)"); - Console.ReadKey(); -#endif - } - - private static void EnsureDBSetup() - { - using (var cnn = GetOpenConnection()) - { - var cmd = cnn.CreateCommand(); - cmd.CommandText = @" -if (OBJECT_ID('Posts') is null) -begin - create table Posts - ( - Id int identity primary key, - [Text] varchar(max) not null, - CreationDate datetime not null, - LastChangeDate datetime not null, - Counter1 int, - Counter2 int, - Counter3 int, - Counter4 int, - Counter5 int, - Counter6 int, - Counter7 int, - Counter8 int, - Counter9 int - ) - - set nocount on - - declare @i int - declare @c int - - declare @id int - - set @i = 0 - - while @i <= 5001 - begin - - insert Posts ([Text],CreationDate, LastChangeDate) values (replicate('x', 2000), GETDATE(), GETDATE()) - set @id = @@IDENTITY - - set @i = @i + 1 - end -end -"; - cmd.Connection = cnn; - cmd.ExecuteNonQuery(); - } - } - private static bool HasAttribute(MemberInfo member) where T : Attribute - { -#if DNXCORE50 - return member.CustomAttributes.Any(x => x.AttributeType == typeof(T)); -#else - return Attribute.IsDefined(member, typeof(T), true); -#endif - } - - private static void RunTests(ref int fail, ref int skip, ref int pass, ref int frameworkFail, List failNames) where T : class, new() - { - var tester = new T(); - using (tester as IDisposable) - { - - MethodInfo[] methods = typeof(T).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly); - var activeTests = methods.Where(m => HasAttribute(m)).ToArray(); - if (activeTests.Length != 0) methods = activeTests; - foreach (var method in methods) - { - if (HasAttribute(method)) - { - Console.Write("Skipping " + method.Name); - skip++; - continue; - } - bool expectFrameworkFail = HasAttribute(method); - - Console.Write("Running " + method.Name); - try - { - method.Invoke(tester, null); - if (expectFrameworkFail) - { - Console.WriteLine(" - was expected to framework-fail, but didn't"); - fail++; - failNames.Add(method.Name); - } - else - { - Console.WriteLine(" - OK!"); - pass++; - } - } - catch (TargetInvocationException tie) - { - Console.WriteLine(" - " + tie.InnerException.Message); - if (expectFrameworkFail) - { - frameworkFail++; - } - else - { - fail++; - failNames.Add(method.Name); - if (tie.InnerException is TypeInitializationException) - { - Console.WriteLine("> " + tie.InnerException.InnerException.Message); - } - } - } - catch (Exception ex) - { - fail++; - Console.WriteLine(" - " + ex.Message); - failNames.Add(method.Name); - } - } - Console.WriteLine(); - } - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] - public sealed class ActiveTestAttribute : Attribute {} - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] - public sealed class SkipTestAttribute : Attribute { } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] - public sealed class FrameworkFail : Attribute { - public FrameworkFail(string url) { - this.Url = url; - } - public string Url { get; private set; } - } - -} diff --git a/Tests/Properties/AssemblyInfo.cs b/Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 1c1825fcf..000000000 --- a/Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -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("Smackdown")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Smackdown")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[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("77246f63-77a4-4d9f-a4d6-62282d67c8be")] - -// 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.40.0.0")] -[assembly: AssemblyFileVersion("1.40.0.0")] diff --git a/Tests/Properties/DataSources/SqlMapper.EntityFramework.tempdbEntities1.datasource b/Tests/Properties/DataSources/SqlMapper.EntityFramework.tempdbEntities1.datasource deleted file mode 100644 index 6fe69f3cf..000000000 --- a/Tests/Properties/DataSources/SqlMapper.EntityFramework.tempdbEntities1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - SqlMapper.EntityFramework.tempdbEntities1, EntityFramework.Model.Designer.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Tests/Properties/Settings.Designer.cs b/Tests/Properties/Settings.Designer.cs deleted file mode 100644 index f4e0bc90c..000000000 --- a/Tests/Properties/Settings.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18033 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SqlMapper.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=.;Initial Catalog=tempdb;Integrated Security=True")] - public string tempdbConnectionString { - get { - return ((string)(this["tempdbConnectionString"])); - } - } - } -} diff --git a/Tests/Properties/Settings.settings b/Tests/Properties/Settings.settings deleted file mode 100644 index d145a094b..000000000 --- a/Tests/Properties/Settings.settings +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Data Source=.;Initial Catalog=tempdb;Integrated Security=True</ConnectionString> - <ProviderName>System.Data.SqlClient</ProviderName> -</SerializableConnectionString> - Data Source=.;Initial Catalog=tempdb;Integrated Security=True - - - \ No newline at end of file diff --git a/Tests/Simple.Data/Simple.Data.Ado.dll b/Tests/Simple.Data/Simple.Data.Ado.dll deleted file mode 100644 index a0daf8058..000000000 Binary files a/Tests/Simple.Data/Simple.Data.Ado.dll and /dev/null differ diff --git a/Tests/Simple.Data/Simple.Data.SqlServer.dll b/Tests/Simple.Data/Simple.Data.SqlServer.dll deleted file mode 100644 index dc5c95e14..000000000 Binary files a/Tests/Simple.Data/Simple.Data.SqlServer.dll and /dev/null differ diff --git a/Tests/Simple.Data/Simple.Data.dll b/Tests/Simple.Data/Simple.Data.dll deleted file mode 100644 index 81904fd1f..000000000 Binary files a/Tests/Simple.Data/Simple.Data.dll and /dev/null differ diff --git a/Tests/Soma/Soma.Core.IT.MsSql.dll b/Tests/Soma/Soma.Core.IT.MsSql.dll deleted file mode 100644 index b582015e1..000000000 Binary files a/Tests/Soma/Soma.Core.IT.MsSql.dll and /dev/null differ diff --git a/Tests/Soma/Soma.Core.IT.MsSqlCe.dll b/Tests/Soma/Soma.Core.IT.MsSqlCe.dll deleted file mode 100644 index c1278300d..000000000 Binary files a/Tests/Soma/Soma.Core.IT.MsSqlCe.dll and /dev/null differ diff --git a/Tests/Soma/Soma.Core.dll b/Tests/Soma/Soma.Core.dll deleted file mode 100644 index c1811a701..000000000 Binary files a/Tests/Soma/Soma.Core.dll and /dev/null differ diff --git a/Tests/SqlServerTypes/Loader.cs b/Tests/SqlServerTypes/Loader.cs deleted file mode 100644 index 891102912..000000000 --- a/Tests/SqlServerTypes/Loader.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace SqlServerTypes -{ - /// - /// Utility methods related to CLR Types for SQL Server - /// - internal class Utilities - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern IntPtr LoadLibrary(string libname); - - /// - /// Loads the required native assemblies for the current architecture (x86 or x64) - /// - /// - /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications - /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. - /// - public static void LoadNativeAssemblies(string rootApplicationPath) - { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); - } - - private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) - { - var path = Path.Combine(nativeBinaryPath, assemblyName); - var ptr = LoadLibrary(path); - if (ptr == IntPtr.Zero) - { - throw new Exception(string.Format( - "Error loading {0} (ErrorCode: {1})", - assemblyName, - Marshal.GetLastWin32Error())); - } - } - } -} \ No newline at end of file diff --git a/Tests/SqlServerTypes/readme.htm b/Tests/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/Tests/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/Tests/SubSonic/ActiveRecord.cs b/Tests/SubSonic/ActiveRecord.cs deleted file mode 100644 index 0e125239f..000000000 --- a/Tests/SubSonic/ActiveRecord.cs +++ /dev/null @@ -1,669 +0,0 @@ - - - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Data; -using SubSonic.DataProviders; -using SubSonic.Extensions; -using System.Linq.Expressions; -using SubSonic.Schema; -using System.Collections; -using SubSonic; -using SubSonic.Repository; -using System.ComponentModel; -using System.Data.Common; - -namespace SubSonic -{ - - - /// - /// A class which represents the Posts table in the tempdb Database. - /// - public partial class Post: IActiveRecord - { - - #region Built-in testing - static TestRepository _testRepo; - - - - static void SetTestRepo(){ - _testRepo = _testRepo ?? new TestRepository(new SubSonic.tempdbDB()); - } - public static void ResetTestRepo(){ - _testRepo = null; - SetTestRepo(); - } - public static void Setup(List testlist){ - SetTestRepo(); - foreach (var item in testlist) - { - _testRepo._items.Add(item); - } - } - public static void Setup(Post item) { - SetTestRepo(); - _testRepo._items.Add(item); - } - public static void Setup(int testItems) { - SetTestRepo(); - for(int i=0;i _repo; - ITable tbl; - bool _isNew; - public bool IsNew(){ - return _isNew; - } - - public void SetIsLoaded(bool isLoaded){ - _isLoaded=isLoaded; - if(isLoaded) - OnLoaded(); - } - - public void SetIsNew(bool isNew){ - _isNew=isNew; - } - bool _isLoaded; - public bool IsLoaded(){ - return _isLoaded; - } - - List _dirtyColumns; - public bool IsDirty(){ - return _dirtyColumns.Count>0; - } - - public List GetDirtyColumns (){ - return _dirtyColumns; - } - - SubSonic.tempdbDB _db; - public Post(string connectionString, string providerName) { - - _db=new SubSonic.tempdbDB(connectionString, providerName); - Init(); - } - void Init(){ - TestMode=this._db.DataProvider.ConnectionString.Equals("test", StringComparison.InvariantCultureIgnoreCase); - _dirtyColumns=new List(); - if(TestMode){ - Post.SetTestRepo(); - _repo=_testRepo; - }else{ - _repo = new SubSonicRepository(_db); - } - tbl=_repo.GetTable(); - SetIsNew(true); - OnCreated(); - - } - - public Post(){ - _db=new SubSonic.tempdbDB(); - Init(); - } - - - partial void OnCreated(); - - partial void OnLoaded(); - - partial void OnSaved(); - - partial void OnChanged(); - - public IList Columns{ - get{ - return tbl.Columns; - } - } - - public Post(Expression> expression):this() { - - SetIsLoaded(_repo.Load(this,expression)); - } - - - - internal static IRepository GetRepo(string connectionString, string providerName){ - SubSonic.tempdbDB db; - if(String.IsNullOrEmpty(connectionString)){ - db=new SubSonic.tempdbDB(); - }else{ - db=new SubSonic.tempdbDB(connectionString, providerName); - } - IRepository _repo; - - if(db.TestMode){ - Post.SetTestRepo(); - _repo=_testRepo; - }else{ - _repo = new SubSonicRepository(db); - } - return _repo; - } - - internal static IRepository GetRepo(){ - return GetRepo("",""); - } - - public static Post SingleOrDefault(Expression> expression) { - var repo = GetRepo(); - var results=repo.Find(expression); - Post single=null; - if(results.Count() > 0){ - single=results.ToList()[0]; - single.OnLoaded(); - single.SetIsLoaded(true); - single.SetIsNew(false); - } - - return single; - } - - public static Post SingleOrDefault(Expression> expression,string connectionString, string providerName) { - var repo = GetRepo(connectionString,providerName); - var results=repo.Find(expression); - Post single=null; - if(results.Count() > 0){ - single=results.ToList()[0]; - } - - return single; - - - } - - - public static bool Exists(Expression> expression,string connectionString, string providerName) { - - return All(connectionString,providerName).Any(expression); - } - public static bool Exists(Expression> expression) { - - return All().Any(expression); - } - - public static IList Find(Expression> expression) { - - var repo = GetRepo(); - return repo.Find(expression).ToList(); - } - - public static IList Find(Expression> expression,string connectionString, string providerName) { - - var repo = GetRepo(connectionString,providerName); - return repo.Find(expression).ToList(); - - } - public static IQueryable All(string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetAll(); - } - public static IQueryable All() { - return GetRepo().GetAll(); - } - - public static PagedList GetPaged(string sortBy, int pageIndex, int pageSize,string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetPaged(sortBy, pageIndex, pageSize); - } - - public static PagedList GetPaged(string sortBy, int pageIndex, int pageSize) { - return GetRepo().GetPaged(sortBy, pageIndex, pageSize); - } - - public static PagedList GetPaged(int pageIndex, int pageSize,string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetPaged(pageIndex, pageSize); - - } - - - public static PagedList GetPaged(int pageIndex, int pageSize) { - return GetRepo().GetPaged(pageIndex, pageSize); - - } - - public string KeyName() - { - return "Id"; - } - - public object KeyValue() - { - return this.Id; - } - - public void SetKeyValue(object value) { - if (value != null && value!=DBNull.Value) { - var settable = value.ChangeTypeTo(); - this.GetType().GetProperty(this.KeyName()).SetValue(this, settable, null); - } - } - - public override string ToString(){ - return this.Text.ToString(); - } - - public override bool Equals(object obj){ - if(obj.GetType()==typeof(Post)){ - Post compare=(Post)obj; - return compare.KeyValue()==this.KeyValue(); - }else{ - return base.Equals(obj); - } - } - - - public override int GetHashCode() { - return this.Id; - } - - public string DescriptorValue() - { - return this.Text.ToString(); - } - - public string DescriptorColumn() { - return "Text"; - } - public static string GetKeyColumn() - { - return "Id"; - } - public static string GetDescriptorColumn() - { - return "Text"; - } - - #region ' Foreign Keys ' - #endregion - - - int _Id; - public int Id - { - get { return _Id; } - set - { - if(_Id!=value){ - _Id=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Id"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - string _Text; - public string Text - { - get { return _Text; } - set - { - if(_Text!=value){ - _Text=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Text"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - DateTime _CreationDate; - public DateTime CreationDate - { - get { return _CreationDate; } - set - { - if(_CreationDate!=value){ - _CreationDate=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="CreationDate"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - DateTime _LastChangeDate; - public DateTime LastChangeDate - { - get { return _LastChangeDate; } - set - { - if(_LastChangeDate!=value){ - _LastChangeDate=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="LastChangeDate"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter1; - public int? Counter1 - { - get { return _Counter1; } - set - { - if(_Counter1!=value){ - _Counter1=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter1"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter2; - public int? Counter2 - { - get { return _Counter2; } - set - { - if(_Counter2!=value){ - _Counter2=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter2"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter3; - public int? Counter3 - { - get { return _Counter3; } - set - { - if(_Counter3!=value){ - _Counter3=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter3"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter4; - public int? Counter4 - { - get { return _Counter4; } - set - { - if(_Counter4!=value){ - _Counter4=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter4"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter5; - public int? Counter5 - { - get { return _Counter5; } - set - { - if(_Counter5!=value){ - _Counter5=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter5"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter6; - public int? Counter6 - { - get { return _Counter6; } - set - { - if(_Counter6!=value){ - _Counter6=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter6"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter7; - public int? Counter7 - { - get { return _Counter7; } - set - { - if(_Counter7!=value){ - _Counter7=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter7"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter8; - public int? Counter8 - { - get { return _Counter8; } - set - { - if(_Counter8!=value){ - _Counter8=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter8"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - int? _Counter9; - public int? Counter9 - { - get { return _Counter9; } - set - { - if(_Counter9!=value){ - _Counter9=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="Counter9"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - - - - public DbCommand GetUpdateCommand() { - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToUpdateQuery(_db.Provider).GetCommand().ToDbCommand(); - - } - public DbCommand GetInsertCommand() { - - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToInsertQuery(_db.Provider).GetCommand().ToDbCommand(); - } - - public DbCommand GetDeleteCommand() { - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToDeleteQuery(_db.Provider).GetCommand().ToDbCommand(); - } - - - public void Update(){ - Update(_db.DataProvider); - } - - public void Update(IDataProvider provider){ - - - if(this._dirtyColumns.Count>0){ - _repo.Update(this,provider); - _dirtyColumns.Clear(); - } - OnSaved(); - } - - public void Add(){ - Add(_db.DataProvider); - } - - - - public void Add(IDataProvider provider){ - - - var key=KeyValue(); - if(key==null){ - var newKey=_repo.Add(this,provider); - this.SetKeyValue(newKey); - }else{ - _repo.Add(this,provider); - } - SetIsNew(false); - OnSaved(); - } - - - - public void Save() { - Save(_db.DataProvider); - } - public void Save(IDataProvider provider) { - - - if (_isNew) { - Add(provider); - - } else { - Update(provider); - } - - } - - - - public void Delete(IDataProvider provider) { - - - _repo.Delete(KeyValue()); - - } - - - public void Delete() { - Delete(_db.DataProvider); - } - - - public static void Delete(Expression> expression) { - var repo = GetRepo(); - - - - repo.DeleteMany(expression); - - } - - - - public void Load(IDataReader rdr) { - Load(rdr, true); - } - public void Load(IDataReader rdr, bool closeReader) { - if (rdr.Read()) { - - try { - rdr.Load(this); - SetIsNew(false); - SetIsLoaded(true); - } catch { - SetIsLoaded(false); - throw; - } - }else{ - SetIsLoaded(false); - } - - if (closeReader) - rdr.Dispose(); - } - - - } -} diff --git a/Tests/SubSonic/ActiveRecord.tt b/Tests/SubSonic/ActiveRecord.tt deleted file mode 100644 index a0149c20d..000000000 --- a/Tests/SubSonic/ActiveRecord.tt +++ /dev/null @@ -1,619 +0,0 @@ -<#@ include file="SQLServer.ttinclude" #> -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Data; -using SubSonic.DataProviders; -using SubSonic.Extensions; -using System.Linq.Expressions; -using SubSonic.Schema; -using System.Collections; -using SubSonic; -using SubSonic.Repository; -using System.ComponentModel; -using System.Data.Common; - -namespace <#=Namespace #> -{ -<# - - var tables = LoadTables(); - - foreach(Table tbl in tables) - { - if(!ExcludeTables.Contains(tbl.Name)) - { -#> - - - /// - /// A class which represents the <#=tbl.Name #> table in the <#=DatabaseName#> Database. - /// - public partial class <#=tbl.ClassName#>: IActiveRecord - { - - #region Built-in testing - static TestRepository<<#=tbl.ClassName#>> _testRepo; - - - - static void SetTestRepo(){ - _testRepo = _testRepo ?? new TestRepository<<#=tbl.ClassName#>>(new <#=Namespace#>.<#=DatabaseName#>DB()); - } - public static void ResetTestRepo(){ - _testRepo = null; - SetTestRepo(); - } - public static void Setup(List<<#=tbl.ClassName#>> testlist){ - SetTestRepo(); - foreach (var item in testlist) - { - _testRepo._items.Add(item); - } - } - public static void Setup(<#=tbl.ClassName#> item) { - SetTestRepo(); - _testRepo._items.Add(item); - } - public static void Setup(int testItems) { - SetTestRepo(); - for(int i=0;i item=new <#=tbl.ClassName#>(); - _testRepo._items.Add(item); - } - } - - public bool TestMode = false; - - - #endregion - - IRepository<<#=tbl.ClassName#>> _repo; - ITable tbl; - bool _isNew; - public bool IsNew(){ - return _isNew; - } - - public void SetIsLoaded(bool isLoaded){ - _isLoaded=isLoaded; - if(isLoaded) - OnLoaded(); - } - - public void SetIsNew(bool isNew){ - _isNew=isNew; - } - bool _isLoaded; - public bool IsLoaded(){ - return _isLoaded; - } - - List _dirtyColumns; - public bool IsDirty(){ - return _dirtyColumns.Count>0; - } - - public List GetDirtyColumns (){ - return _dirtyColumns; - } - - <#=Namespace#>.<#=DatabaseName#>DB _db; - public <#=tbl.ClassName#>(string connectionString, string providerName) { - - _db=new <#=Namespace#>.<#=DatabaseName#>DB(connectionString, providerName); - Init(); - } - void Init(){ - TestMode=this._db.DataProvider.ConnectionString.Equals("test", StringComparison.InvariantCultureIgnoreCase); - _dirtyColumns=new List(); - if(TestMode){ - <#=tbl.ClassName#>.SetTestRepo(); - _repo=_testRepo; - }else{ - _repo = new SubSonicRepository<<#=tbl.ClassName#>>(_db); - } - tbl=_repo.GetTable(); - SetIsNew(true); - OnCreated(); - - } - - public <#=tbl.ClassName#>(){ - _db=new <#=Namespace#>.<#=DatabaseName#>DB(); - Init(); - } - - - partial void OnCreated(); - - partial void OnLoaded(); - - partial void OnSaved(); - - partial void OnChanged(); - - public IList Columns{ - get{ - return tbl.Columns; - } - } - - public <#=tbl.ClassName#>(Expression, bool>> expression):this() { - - SetIsLoaded(_repo.Load(this,expression)); - } - - - - internal static IRepository<<#=tbl.ClassName#>> GetRepo(string connectionString, string providerName){ - <#=Namespace#>.<#=DatabaseName#>DB db; - if(String.IsNullOrEmpty(connectionString)){ - db=new <#=Namespace#>.<#=DatabaseName#>DB(); - }else{ - db=new <#=Namespace#>.<#=DatabaseName#>DB(connectionString, providerName); - } - IRepository<<#=tbl.ClassName#>> _repo; - - if(db.TestMode){ - <#=tbl.ClassName#>.SetTestRepo(); - _repo=_testRepo; - }else{ - _repo = new SubSonicRepository<<#=tbl.ClassName#>>(db); - } - return _repo; - } - - internal static IRepository<<#=tbl.ClassName#>> GetRepo(){ - return GetRepo("",""); - } - - public static <#=tbl.ClassName#> SingleOrDefault(Expression, bool>> expression) { - var repo = GetRepo(); - var results=repo.Find(expression); - <#=tbl.ClassName#> single=null; - if(results.Count() > 0){ - single=results.ToList()[0]; - single.OnLoaded(); - single.SetIsLoaded(true); - single.SetIsNew(false); - } - - return single; - } - - public static <#=tbl.ClassName#> SingleOrDefault(Expression, bool>> expression,string connectionString, string providerName) { - var repo = GetRepo(connectionString,providerName); - var results=repo.Find(expression); - <#=tbl.ClassName#> single=null; - if(results.Count() > 0){ - single=results.ToList()[0]; - } - - return single; - - - } - - - public static bool Exists(Expression, bool>> expression,string connectionString, string providerName) { - - return All(connectionString,providerName).Any(expression); - } - public static bool Exists(Expression, bool>> expression) { - - return All().Any(expression); - } - - public static IList<<#=tbl.ClassName#>> Find(Expression, bool>> expression) { - - var repo = GetRepo(); - return repo.Find(expression).ToList(); - } - - public static IList<<#=tbl.ClassName#>> Find(Expression, bool>> expression,string connectionString, string providerName) { - - var repo = GetRepo(connectionString,providerName); - return repo.Find(expression).ToList(); - - } - public static IQueryable<<#=tbl.ClassName#>> All(string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetAll(); - } - public static IQueryable<<#=tbl.ClassName#>> All() { - return GetRepo().GetAll(); - } - - public static PagedList<<#=tbl.ClassName#>> GetPaged(string sortBy, int pageIndex, int pageSize,string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetPaged(sortBy, pageIndex, pageSize); - } - - public static PagedList<<#=tbl.ClassName#>> GetPaged(string sortBy, int pageIndex, int pageSize) { - return GetRepo().GetPaged(sortBy, pageIndex, pageSize); - } - - public static PagedList<<#=tbl.ClassName#>> GetPaged(int pageIndex, int pageSize,string connectionString, string providerName) { - return GetRepo(connectionString,providerName).GetPaged(pageIndex, pageSize); - - } - - - public static PagedList<<#=tbl.ClassName#>> GetPaged(int pageIndex, int pageSize) { - return GetRepo().GetPaged(pageIndex, pageSize); - - } - - public string KeyName() - { - return "<#=tbl.PK.CleanName #>"; - } - - public object KeyValue() - { - return this.<#=tbl.PK.CleanName#>; - } - - public void SetKeyValue(object value) { - if (value != null && value!=DBNull.Value) { - var settable = value.ChangeTypeTo<<#=tbl.PK.SysType#>>(); - this.GetType().GetProperty(this.KeyName()).SetValue(this, settable, null); - } - } - - public override string ToString(){ - <# if (tbl.ClassName == tbl.Descriptor.CleanName){ #> - return this.<#=tbl.Descriptor.CleanName+"X" #>.ToString(); - <# } else { #> - return this.<#=tbl.Descriptor.CleanName #>.ToString(); - <# } #> - } - - public override bool Equals(object obj){ - if(obj.GetType()==typeof(<#=tbl.ClassName#>)){ - <#=tbl.ClassName#> compare=(<#=tbl.ClassName#>)obj; - return compare.KeyValue()==this.KeyValue(); - }else{ - return base.Equals(obj); - } - } - -<# if(tbl.PK.SysType=="int"){#> - - public override int GetHashCode() { - return this.<#=tbl.PK.CleanName #>; - } - -<# }#> - public string DescriptorValue() - { - <# if (tbl.ClassName == tbl.Descriptor.CleanName){ #> - return this.<#=tbl.Descriptor.CleanName+"X" #>.ToString(); - <# } else { #> - return this.<#=tbl.Descriptor.CleanName #>.ToString(); - <# } #> - } - - public string DescriptorColumn() { - return "<#=tbl.Descriptor.CleanName #>"; - } - public static string GetKeyColumn() - { - return "<#=tbl.PK.CleanName #>"; - } - public static string GetDescriptorColumn() - { - return "<#=tbl.Descriptor.CleanName #>"; - } - - #region ' Foreign Keys ' -<# - List fkCreated = new List(); - foreach(FKTable fk in tbl.FKTables) - { - - if(!ExcludeTables.Contains(fk.OtherTable)){ - string propName=fk.OtherQueryable; - if(fkCreated.Contains(propName)) - { - propName=fk.OtherQueryable+fkCreated.Count.ToString(); - } - - fkCreated.Add(fk.OtherQueryable); - - -#> - public IQueryable<<#=fk.OtherClass #>> <#=propName #> - { - get - { - - var repo=<#=Namespace #>.<#=fk.OtherClass#>.GetRepo(); - return from items in repo.GetAll() - where items.<#=CleanUp(fk.OtherColumn)#> == _<#=CleanUp(fk.ThisColumn)#> - select items; - } - } - -<# - } - } - -#> - #endregion - - -<# - foreach(Column col in tbl.Columns) - { - - if (tbl.ClassName == col.CleanName) - { - col.CleanName += "X"; - } -#> - <#=col.SysType #><#=CheckNullable(col)#> _<#=col.CleanName #>; - public <#=col.SysType #><#=CheckNullable(col)#> <#=col.CleanName #> - { - get { return _<#=col.CleanName #>; } - set - { - if(_<#=col.CleanName #>!=value){ - _<#=col.CleanName #>=value; - var col=tbl.Columns.SingleOrDefault(x=>x.Name=="<#=col.Name #>"); - if(col!=null){ - if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ - _dirtyColumns.Add(col); - } - } - OnChanged(); - } - } - } - -<# - } -#> - - - public DbCommand GetUpdateCommand() { -<#if(tbl.Columns.Any(x=>x.Name.ToLower()=="modifiedon")){#> - if (!_dirtyColumns.Any(x => x.Name.ToLower() == "modifiedon")) { - this.<#=tbl.Columns.Single(x=>x.Name.ToLower()=="modifiedon").CleanName#>=<#=DatabaseName#>DB.DateTimeNowTruncatedDownToSecond(); - } -<#}#> - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToUpdateQuery(_db.Provider).GetCommand().ToDbCommand(); - - } - public DbCommand GetInsertCommand() { - - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToInsertQuery(_db.Provider).GetCommand().ToDbCommand(); - } - - public DbCommand GetDeleteCommand() { - if(TestMode) - return _db.DataProvider.CreateCommand(); - else - return this.ToDeleteQuery(_db.Provider).GetCommand().ToDbCommand(); - } - - - public void Update(){ - Update(_db.DataProvider); - } - - public void Update(IDataProvider provider){ - -<#if(tbl.Columns.Any(x=>x.Name=="ModifiedBy")){#> - if(String.IsNullOrEmpty(this.ModifiedBy)) - this.ModifiedBy=Environment.UserName; -<#}#> -<#if(tbl.Columns.Any(x=>x.Name=="ModifiedOn")){#> - this.ModifiedOn=<#=DatabaseName#>DB.DateTimeNowTruncatedDownToSecond(); -<#}#> - - if(this._dirtyColumns.Count>0){ - _repo.Update(this,provider); - _dirtyColumns.Clear(); - } - OnSaved(); - } - - public void Add(){ - Add(_db.DataProvider); - } - - <#if(tbl.Columns.Any(x=>x.Name=="ModifiedBy")){#> - public void Update(string username){ - - this.ModifiedBy=username; - Update(); - - } - public void Update(string username, IDataProvider provider){ - - this.ModifiedBy=username; - Update(provider); - } - <#}#> - - - public void Add(IDataProvider provider){ - -<#if(tbl.Columns.Any(x=>x.Name=="CreatedOn")){#> - - this.CreatedOn=<#=DatabaseName#>DB.DateTimeNowTruncatedDownToSecond(); -<#}#> -<#if(tbl.Columns.Any(x=>x.Name=="CreatedBy")){#> - if(String.IsNullOrEmpty(this.CreatedBy)) - this.CreatedBy=Environment.UserName; -<#}#> -<#if(tbl.Columns.Any(x=>x.Name=="ModifiedOn")){#> - this.ModifiedOn=<#=DatabaseName#>DB.DateTimeNowTruncatedDownToSecond(); -<#}#> -<#if(tbl.Columns.Any(x=>x.Name=="ModifiedBy")){#> - if(String.IsNullOrEmpty(this.ModifiedBy)) - this.ModifiedBy=Environment.UserName; -<#}#> - - var key=KeyValue(); - if(key==null){ - var newKey=_repo.Add(this,provider); - this.SetKeyValue(newKey); - }else{ - _repo.Add(this,provider); - } - SetIsNew(false); - OnSaved(); - } - - <#if(tbl.Columns.Any(x=>x.Name=="CreatedBy")){#> - public void Add(string username){ - - this.CreatedBy=username; - Add(); - - } - public void Add(string username, IDataProvider provider){ - - this.CreatedBy=username; - Add(provider); - } - <#}#> - - - public void Save() { - Save(_db.DataProvider); - } - public void Save(IDataProvider provider) { - - - if (_isNew) { - Add(provider); - - } else { - Update(provider); - } - - } - - <#if(tbl.Columns.Any(x=>x.Name=="CreatedBy" || x.Name=="ModifiedBy")){#> - public void Save(string username, IDataProvider provider) { - - - if (_isNew) { - <#if(tbl.Columns.Any(x=>x.Name=="CreatedBy")){#> - Add(username,provider); - <#}else{#> - Add(provider); - <#}#> - } else { - <#if(tbl.Columns.Any(x=>x.Name=="ModifiedBy")){#> - Update(username,provider); - <#}else{#> - Update(provider); - <#}#> - - } - - } - <#}#> - - - public void Delete(IDataProvider provider) { - <#if(tbl.HasLogicalDelete()){#> - - this.<#=tbl.DeleteColumn.CleanName#>=true; - _repo.Update(this,provider); - - <#}else{#> - - _repo.Delete(KeyValue()); - - <#}#> - } - - - public void Delete() { - Delete(_db.DataProvider); - } - - - public static void Delete(Expression, bool>> expression) { - var repo = GetRepo(); - -<#if(tbl.HasLogicalDelete()){#> - - List<<#=tbl.ClassName#>> items=repo.GetAll().Where(expression).ToList(); - items.ForEach(x=>x.<#=tbl.DeleteColumn.CleanName#>=true); - repo.Update(items); - -<#}else{#> - - repo.DeleteMany(expression); - -<#}#> - } - - <#if(tbl.HasLogicalDelete()){#> - - public static void Destroy(Func<<#=tbl.ClassName#>, bool> expression) { - var repo = GetRepo(); - repo.Delete(expression); - } - - public static void Destroy(object key) { - var repo = GetRepo(); - repo.Delete(key); - } - - public static void Destroy(object key, IDataProvider provider) { - - var repo = GetRepo(); - repo.Delete(key,provider); - - } - - public void Destroy() { - _repo.Delete(KeyValue()); - } - public void Destroy(IDataProvider provider) { - _repo.Delete(KeyValue(), provider); - } - <#}#> - - - public void Load(IDataReader rdr) { - Load(rdr, true); - } - public void Load(IDataReader rdr, bool closeReader) { - if (rdr.Read()) { - - try { - rdr.Load(this); - SetIsNew(false); - SetIsLoaded(true); - } catch { - SetIsLoaded(false); - throw; - } - }else{ - SetIsLoaded(false); - } - - if (closeReader) - rdr.Dispose(); - } - - - } -<# } - } -#> -} diff --git a/Tests/SubSonic/Context.cs b/Tests/SubSonic/Context.cs deleted file mode 100644 index dc8ea8729..000000000 --- a/Tests/SubSonic/Context.cs +++ /dev/null @@ -1,258 +0,0 @@ - - - -using System; -using System.Data; -using System.Linq; -using System.Linq.Expressions; -using SubSonic.DataProviders; -using SubSonic.Extensions; -using SubSonic.Linq.Structure; -using SubSonic.Query; -using SubSonic.Schema; -using System.Data.Common; -using System.Collections.Generic; - -namespace SubSonic -{ - public partial class tempdbDB : IQuerySurface - { - - public IDataProvider DataProvider; - public DbQueryProvider provider; - - public static IDataProvider DefaultDataProvider { get; set; } - - public bool TestMode - { - get - { - return DataProvider.ConnectionString.Equals("test", StringComparison.InvariantCultureIgnoreCase); - } - } - - public tempdbDB() - { - if (DefaultDataProvider == null) { - DataProvider = ProviderFactory.GetProvider("Smackdown.Properties.Settings.tempdbConnectionString"); - } - else { - DataProvider = DefaultDataProvider; - } - Init(); - } - - public tempdbDB(string connectionStringName) - { - DataProvider = ProviderFactory.GetProvider(connectionStringName); - Init(); - } - - public tempdbDB(string connectionString, string providerName) - { - DataProvider = ProviderFactory.GetProvider(connectionString,providerName); - Init(); - } - - public ITable FindByPrimaryKey(string pkName) - { - return DataProvider.Schema.Tables.SingleOrDefault(x => x.PrimaryKey.Name.Equals(pkName, StringComparison.InvariantCultureIgnoreCase)); - } - - public Query GetQuery() - { - return new Query(provider); - } - - public ITable FindTable(string tableName) - { - return DataProvider.FindTable(tableName); - } - - public IDataProvider Provider - { - get { return DataProvider; } - set {DataProvider=value;} - } - - public DbQueryProvider QueryProvider - { - get { return provider; } - } - - BatchQuery _batch = null; - public void Queue(IQueryable qry) - { - if (_batch == null) - _batch = new BatchQuery(Provider, QueryProvider); - _batch.Queue(qry); - } - - public void Queue(ISqlQuery qry) - { - if (_batch == null) - _batch = new BatchQuery(Provider, QueryProvider); - _batch.Queue(qry); - } - - public void ExecuteTransaction(IList commands) - { - if(!TestMode) - { - using(var connection = commands[0].Connection) - { - if (connection.State == ConnectionState.Closed) - connection.Open(); - - using (var trans = connection.BeginTransaction()) - { - foreach (var cmd in commands) - { - cmd.Transaction = trans; - cmd.Connection = connection; - cmd.ExecuteNonQuery(); - } - trans.Commit(); - } - connection.Close(); - } - } - } - - public IDataReader ExecuteBatch() - { - if (_batch == null) - throw new InvalidOperationException("There's nothing in the queue"); - if(!TestMode) - return _batch.ExecuteReader(); - return null; - } - - public Query Posts { get; set; } - - - - #region ' Aggregates and SubSonic Queries ' - public Select SelectColumns(params string[] columns) - { - return new Select(DataProvider, columns); - } - - public Select Select - { - get { return new Select(this.Provider); } - } - - public Insert Insert - { - get { return new Insert(this.Provider); } - } - - public Update Update() where T:new() - { - return new Update(this.Provider); - } - - public SqlQuery Delete(Expression> column) where T:new() - { - LambdaExpression lamda = column; - SqlQuery result = new Delete(this.Provider); - result = result.From(); - result.Constraints=lamda.ParseConstraints().ToList(); - return result; - } - - public SqlQuery Max(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = DataProvider.FindTable(objectName).Name; - return new Select(DataProvider, new Aggregate(colName, AggregateFunction.Max)).From(tableName); - } - - public SqlQuery Min(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Min)).From(tableName); - } - - public SqlQuery Sum(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Sum)).From(tableName); - } - - public SqlQuery Avg(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Avg)).From(tableName); - } - - public SqlQuery Count(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Count)).From(tableName); - } - - public SqlQuery Variance(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Var)).From(tableName); - } - - public SqlQuery StandardDeviation(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.StDev)).From(tableName); - } - - #endregion - - void Init() - { - provider = new DbQueryProvider(this.Provider); - - #region ' Query Defs ' - Posts = new Query(provider); - #endregion - - - #region ' Schemas ' - if(DataProvider.Schema.Tables.Count == 0) - { - DataProvider.Schema.Tables.Add(new PostsTable(DataProvider)); - } - #endregion - } - - - #region ' Helpers ' - - internal static DateTime DateTimeNowTruncatedDownToSecond() { - var now = DateTime.Now; - return now.AddTicks(-now.Ticks % TimeSpan.TicksPerSecond); - } - - #endregion - - } -} \ No newline at end of file diff --git a/Tests/SubSonic/Context.tt b/Tests/SubSonic/Context.tt deleted file mode 100644 index a0e98913c..000000000 --- a/Tests/SubSonic/Context.tt +++ /dev/null @@ -1,295 +0,0 @@ -<#@ template language="C#v3.5" debug="False" hostspecific="True" #> -<#@ output extension=".cs" #> -<#@ include file="SQLServer.ttinclude" #> -<# - var tables = LoadTables(); -#> -using System; -using System.Data; -using System.Linq; -using System.Linq.Expressions; -using SubSonic.DataProviders; -using SubSonic.Extensions; -using SubSonic.Linq.Structure; -using SubSonic.Query; -using SubSonic.Schema; -using System.Data.Common; -using System.Collections.Generic; - -namespace <#=Namespace#> -{ - public partial class <#=DatabaseName#>DB : IQuerySurface - { - - public IDataProvider DataProvider; - public DbQueryProvider provider; - - public static IDataProvider DefaultDataProvider { get; set; } - - public bool TestMode - { - get - { - return DataProvider.ConnectionString.Equals("test", StringComparison.InvariantCultureIgnoreCase); - } - } - - public <#=DatabaseName#>DB() - { - if (DefaultDataProvider == null) { - DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>"); - } - else { - DataProvider = DefaultDataProvider; - } - Init(); - } - - public <#=DatabaseName#>DB(string connectionStringName) - { - DataProvider = ProviderFactory.GetProvider(connectionStringName); - Init(); - } - - public <#=DatabaseName#>DB(string connectionString, string providerName) - { - DataProvider = ProviderFactory.GetProvider(connectionString,providerName); - Init(); - } - - public ITable FindByPrimaryKey(string pkName) - { - return DataProvider.Schema.Tables.SingleOrDefault(x => x.PrimaryKey.Name.Equals(pkName, StringComparison.InvariantCultureIgnoreCase)); - } - - public Query GetQuery() - { - return new Query(provider); - } - - public ITable FindTable(string tableName) - { - return DataProvider.FindTable(tableName); - } - - public IDataProvider Provider - { - get { return DataProvider; } - set {DataProvider=value;} - } - - public DbQueryProvider QueryProvider - { - get { return provider; } - } - - BatchQuery _batch = null; - public void Queue(IQueryable qry) - { - if (_batch == null) - _batch = new BatchQuery(Provider, QueryProvider); - _batch.Queue(qry); - } - - public void Queue(ISqlQuery qry) - { - if (_batch == null) - _batch = new BatchQuery(Provider, QueryProvider); - _batch.Queue(qry); - } - - public void ExecuteTransaction(IList commands) - { - if(!TestMode) - { - using(var connection = commands[0].Connection) - { - if (connection.State == ConnectionState.Closed) - connection.Open(); - - using (var trans = connection.BeginTransaction()) - { - foreach (var cmd in commands) - { - cmd.Transaction = trans; - cmd.Connection = connection; - cmd.ExecuteNonQuery(); - } - trans.Commit(); - } - connection.Close(); - } - } - } - - public IDataReader ExecuteBatch() - { - if (_batch == null) - throw new InvalidOperationException("There's nothing in the queue"); - if(!TestMode) - return _batch.ExecuteReader(); - return null; - } -<# //################################################ IQueryable ####################################### #> -<# foreach(Table tbl in tables){ - if(!ExcludeTables.Contains(tbl.Name)) - { -#> - public Query<<#=tbl.ClassName#>> <#=tbl.QueryableName#> { get; set; } -<# - } - } -#> - -<# //################################################ Aggregates and Queries ####################################### #> - - #region ' Aggregates and SubSonic Queries ' - public Select SelectColumns(params string[] columns) - { - return new Select(DataProvider, columns); - } - - public Select Select - { - get { return new Select(this.Provider); } - } - - public Insert Insert - { - get { return new Insert(this.Provider); } - } - - public Update Update() where T:new() - { - return new Update(this.Provider); - } - - public SqlQuery Delete(Expression> column) where T:new() - { - LambdaExpression lamda = column; - SqlQuery result = new Delete(this.Provider); - result = result.From(); - result.Constraints=lamda.ParseConstraints().ToList(); - return result; - } - - public SqlQuery Max(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = DataProvider.FindTable(objectName).Name; - return new Select(DataProvider, new Aggregate(colName, AggregateFunction.Max)).From(tableName); - } - - public SqlQuery Min(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Min)).From(tableName); - } - - public SqlQuery Sum(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Sum)).From(tableName); - } - - public SqlQuery Avg(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Avg)).From(tableName); - } - - public SqlQuery Count(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Count)).From(tableName); - } - - public SqlQuery Variance(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.Var)).From(tableName); - } - - public SqlQuery StandardDeviation(Expression> column) - { - LambdaExpression lamda = column; - string colName = lamda.ParseObjectValue(); - string objectName = typeof(T).Name; - string tableName = this.Provider.FindTable(objectName).Name; - return new Select(this.Provider, new Aggregate(colName, AggregateFunction.StDev)).From(tableName); - } - - #endregion - - void Init() - { - provider = new DbQueryProvider(this.Provider); - -<# - //################################################ QUERIES ####################################### #> - #region ' Query Defs ' -<# - foreach(Table tbl in tables) - { - if(!ExcludeTables.Contains(tbl.Name)) - { -#> - <#=tbl.QueryableName#> = new Query<<#=tbl.ClassName#>>(provider); -<# - } -#> -<# - } -#> - #endregion - -<#//################################################ SCHEMAS ####################################### #> - - #region ' Schemas ' - if(DataProvider.Schema.Tables.Count == 0) - { -<# - foreach(Table tbl in tables) - { - if(!ExcludeTables.Contains(tbl.Name)) - { -#> - DataProvider.Schema.Tables.Add(new <#=tbl.CleanName#>Table(DataProvider)); -<# - } - } -#> - } - #endregion - } - -<#//################################################ HELPERS ####################################### #> - - #region ' Helpers ' - - internal static DateTime DateTimeNowTruncatedDownToSecond() { - var now = DateTime.Now; - return now.AddTicks(-now.Ticks % TimeSpan.TicksPerSecond); - } - - #endregion - - } -} \ No newline at end of file diff --git a/Tests/SubSonic/SQLServer.ttinclude b/Tests/SubSonic/SQLServer.ttinclude deleted file mode 100644 index fe9db0f4c..000000000 --- a/Tests/SubSonic/SQLServer.ttinclude +++ /dev/null @@ -1,347 +0,0 @@ -<#@ include file="Settings.ttinclude" #> -<#+ - -IDataReader GetReader(string sql){ - SqlConnection conn=new SqlConnection(ConnectionString); - SqlCommand cmd=new SqlCommand(sql,conn); - conn.Open(); - return cmd.ExecuteReader(CommandBehavior.CloseConnection); -} -SqlCommand GetCommand(string sql){ - SqlConnection conn=new SqlConnection(ConnectionString); - SqlCommand cmd=new SqlCommand(sql,conn); - conn.Open(); - return cmd; -} - -const string FKSql=@"SELECT - ThisTable = FK.TABLE_NAME, - ThisColumn = CU.COLUMN_NAME, - OtherTable = PK.TABLE_NAME, - OtherColumn = PT.COLUMN_NAME, - Constraint_Name = C.CONSTRAINT_NAME, - Owner = FK.TABLE_SCHEMA - FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C - INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME - INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME - INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME - INNER JOIN - ( - SELECT i1.TABLE_NAME, i2.COLUMN_NAME - FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1 - INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME - WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY' - ) - PT ON PT.TABLE_NAME = PK.TABLE_NAME - WHERE FK.Table_NAME=@tableName OR PK.Table_NAME=@tableName"; - - -const string TABLE_SQL=@"SELECT * - FROM INFORMATION_SCHEMA.TABLES - WHERE TABLE_TYPE='BASE TABLE'"; - -const string COLUMN_SQL=@"SELECT - TABLE_CATALOG AS [Database], - TABLE_SCHEMA AS Owner, - TABLE_NAME AS TableName, - COLUMN_NAME AS ColumnName, - ORDINAL_POSITION AS OrdinalPosition, - COLUMN_DEFAULT AS DefaultSetting, - IS_NULLABLE AS IsNullable, DATA_TYPE AS DataType, - CHARACTER_MAXIMUM_LENGTH AS MaxLength, - DATETIME_PRECISION AS DatePrecision, - COLUMNPROPERTY(object_id('[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']'), COLUMN_NAME, 'IsIdentity') AS IsIdentity, - COLUMNPROPERTY(object_id('[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']'), COLUMN_NAME, 'IsComputed') as IsComputed - FROM INFORMATION_SCHEMA.COLUMNS - WHERE TABLE_NAME=@tableName - ORDER BY OrdinalPosition ASC"; - - -List GetSPParams(string spName){ - var result=new List(); - - string dbName = null; - - if(!String.IsNullOrEmpty(DatabaseName)) - dbName = DatabaseName; - - string[] restrictions = new string[4] { dbName , null, spName, null }; - - using(SqlConnection conn=new SqlConnection(ConnectionString)){ - conn.Open(); - var sprocs=conn.GetSchema("ProcedureParameters", restrictions); - conn.Close(); - foreach(DataRow row in sprocs.Select("", "ORDINAL_POSITION")){ - SPParam p=new SPParam(); - p.SysType=GetSysType(row["DATA_TYPE"].ToString()); - p.DbType=GetDbType(row["DATA_TYPE"].ToString()).ToString(); - p.Name=row["PARAMETER_NAME"].ToString().Replace("@",""); - p.CleanName=CleanUp(p.Name); - result.Add(p); - } - - - } - return result; -} -List GetSPs(){ - var result=new List(); - //pull the SPs - - DataTable sprocs=null; - DataTable parameters=null; - - using(SqlConnection conn=new SqlConnection(ConnectionString)){ - conn.Open(); - sprocs=conn.GetSchema("Procedures"); - conn.Close(); - } - - foreach(DataRow row in sprocs.Rows){ - string spType=row["ROUTINE_TYPE"].ToString(); - var sp=new SP(); - sp.Name=row["ROUTINE_NAME"].ToString(); - - if(spType=="PROCEDURE" &! sp.Name.StartsWith("sp_")){ - - sp.CleanName=CleanUp(sp.Name); - - sp.Parameters=GetSPParams(sp.Name); - result.Add(sp); - } - } - return result; - -} - - -List LoadTables(){ - var result=new List
(); - - //pull the tables in a reader - using(IDataReader rdr=GetReader(TABLE_SQL)){ - while(rdr.Read()){ - Table tbl=new Table(); - tbl.Name=rdr["TABLE_NAME"].ToString(); - tbl.Schema=rdr["TABLE_SCHEMA"].ToString(); - tbl.Columns=LoadColumns(tbl); - tbl.PrimaryKey=GetPK(tbl.Name); - tbl.CleanName=CleanUp(tbl.Name); - tbl.ClassName=Inflector.MakeSingular(tbl.CleanName); - tbl.QueryableName=Inflector.MakePlural(tbl.ClassName); - - //set the PK for the columns - var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==tbl.PrimaryKey.ToLower().Trim()); - if(pkColumn!=null) - pkColumn.IsPK=true; - - tbl.FKTables=LoadFKTables(tbl.Name); - - result.Add(tbl); - } - } - - foreach(Table tbl in result){ - //loop the FK tables and see if there's a match for our FK columns - foreach(Column col in tbl.Columns){ - col.IsForeignKey=tbl.FKTables.Any( - x=>x.ThisColumn.Equals(col.Name,StringComparison.InvariantCultureIgnoreCase) - ); - } - } - return result; -} - -List LoadColumns(Table tbl){ - var result=new List(); - var cmd=GetCommand(COLUMN_SQL); - cmd.Parameters.AddWithValue("@tableName",tbl.Name); - - using(IDataReader rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection)){ - while(rdr.Read()){ - Column col=new Column(); - col.Name=rdr["ColumnName"].ToString(); - col.CleanName=CleanUp(col.Name); - col.DataType=rdr["DataType"].ToString(); - col.SysType=GetSysType(col.DataType); - col.DbType=GetDbType(col.DataType); - col.AutoIncrement=rdr["IsIdentity"].ToString()=="1"; - col.IsNullable=rdr["IsNullable"].ToString()=="YES"; - int.TryParse(rdr["MaxLength"].ToString(),out col.MaxLength); - - result.Add(col); - } - - } - - return result; -} - -List LoadFKTables(string tableName){ - - //this is a "bi-directional" scheme - //which pulls both 1-many and many-1 - - var result=new List(); - var cmd=GetCommand(FKSql); - cmd.Parameters.AddWithValue("@tableName",tableName); - using(IDataReader rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection)){ - while(rdr.Read()){ - FKTable fk=new FKTable(); - string thisTable=rdr["ThisTable"].ToString(); - - if(tableName.ToLower()==thisTable.ToLower()){ - fk.ThisTable=rdr["ThisTable"].ToString(); - fk.ThisColumn=rdr["ThisColumn"].ToString(); - fk.OtherTable=rdr["OtherTable"].ToString(); - fk.OtherColumn=rdr["OtherColumn"].ToString(); - - }else{ - fk.ThisTable=rdr["OtherTable"].ToString(); - fk.ThisColumn=rdr["OtherColumn"].ToString(); - fk.OtherTable=rdr["ThisTable"].ToString(); - fk.OtherColumn=rdr["ThisColumn"].ToString(); - - } - - fk.OtherClass=Inflector.MakeSingular(CleanUp(fk.OtherTable)); - fk.OtherQueryable=Inflector.MakePlural(fk.OtherClass); - - result.Add(fk); - } - } - return result; - -} - -string GetPK(string table){ - - string pk=""; - DataTable pkTable=new DataTable(); - string sql=@"SELECT KCU.COLUMN_NAME - FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU - JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC - ON KCU.CONSTRAINT_NAME=TC.CONSTRAINT_NAME - WHERE TC.CONSTRAINT_TYPE='PRIMARY KEY' - AND KCU.TABLE_NAME=@tableName"; - - var cmd=GetCommand(sql); - cmd.Parameters.AddWithValue("@tableName",table); - var result=cmd.ExecuteScalar(); - cmd.Dispose(); - if(result!=null) - pk=result.ToString(); - - return pk; -} - -string GetSysType(string sqlType){ - string sysType="string"; - switch (sqlType) { - case "bigint": - sysType = "long"; - break; - case "smallint": - sysType= "short"; - break; - case "int": - sysType= "int"; - break; - case "uniqueidentifier": - sysType= "Guid"; - break; - case "smalldatetime": - case "datetime": - case "date": - sysType= "DateTime"; - break; - case "float": - sysType="double"; - break; - case "real": - case "numeric": - case "smallmoney": - case "decimal": - case "money": - sysType= "decimal"; - break; - case "tinyint": - sysType = "byte"; - break; - case "bit": - sysType= "bool"; - break; - case "image": - case "binary": - case "varbinary": - case "timestamp": - sysType= "byte[]"; - break; - } - return sysType; -} - -DbType GetDbType(string sqlType){ - switch(sqlType) - { - case "varchar": - return DbType.AnsiString; - case "nvarchar": - return DbType.String; - case "int": - return DbType.Int32; - case "uniqueidentifier": - return DbType.Guid; - case "datetime": - return DbType.DateTime; - case "bigint": - return DbType.Int64; - case "binary": - return DbType.Binary; - case "bit": - return DbType.Boolean; - case "char": - return DbType.AnsiStringFixedLength; - case "decimal": - return DbType.Decimal; - case "float": - return DbType.Double; - case "image": - return DbType.Binary; - case "money": - return DbType.Currency; - case "nchar": - return DbType.String; - case "ntext": - return DbType.String; - case "numeric": - return DbType.Decimal; - case "real": - return DbType.Single; - case "smalldatetime": - return DbType.DateTime; - case "smallint": - return DbType.Int16; - case "smallmoney": - return DbType.Currency; - case "sql_variant": - return DbType.String; - case "sysname": - return DbType.String; - case "text": - return DbType.AnsiString; - case "timestamp": - return DbType.Binary; - case "tinyint": - return DbType.Byte; - case "varbinary": - return DbType.Binary; - case "xml": - return DbType.Xml; - default: - return DbType.AnsiString; - } - -} - -#> \ No newline at end of file diff --git a/Tests/SubSonic/Settings.ttinclude b/Tests/SubSonic/Settings.ttinclude deleted file mode 100644 index dd9605caa..000000000 --- a/Tests/SubSonic/Settings.ttinclude +++ /dev/null @@ -1,552 +0,0 @@ -<#@ template language="C#v3.5" debug="True" hostspecific="True" #> -<#@ assembly name="EnvDTE" #> -<#@ assembly name="System.Core.dll" #> -<#@ assembly name="System.Data" #> -<#@ assembly name="System.Xml" #> -<#@ assembly name="System.Configuration" #> -<#@ import namespace="System.Collections.Generic" #> -<#@ import namespace="System.Data" #> -<#@ import namespace="System.Data.SqlClient" #> -<#@ import namespace="System.Data.Common" #> -<#@ import namespace="System.Diagnostics" #> -<#@ import namespace="System.Globalization" #> -<#@ import namespace="System.IO" #> -<#@ import namespace="System.Linq" #> -<#@ import namespace="System.Text" #> -<#@ import namespace="System.Text.RegularExpressions" #> -<#@ import namespace="System.Configuration" #> - -<#+ - - const string Namespace = "SubSonic"; - const string ConnectionStringName = "Smackdown.Properties.Settings.tempdbConnectionString"; - - //This is the name of your database and is used in naming - //the repository. By default we set it to the connection string name - const string DatabaseName = "tempdb"; - - const bool TreatTinyint1AsBool = false; - - //this is a list of tables you don't want generated - string[] ExcludeTables = new string[]{ - "sysdiagrams", - "BuildVersion", - }; - - string CleanUp(string tableName){ - string result=tableName; - - //strip blanks - result=result.Replace(" ",""); - - //put your logic here... - - return result; - } - - string CheckNullable(Column col){ - string result=""; - if(col.IsNullable && col.SysType !="byte[]" && col.SysType !="string") - result="?"; - return result; - } - string GetConnectionString(string connectionStringName){ - var _CurrentProject = GetCurrentProject(); - - string result=""; - ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(); - configFile.ExeConfigFilename = GetConfigPath(); - - if (string.IsNullOrEmpty(configFile.ExeConfigFilename)) - throw new ArgumentNullException("The project does not contain App.config or Web.config file."); - - - var config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None); - var connSection=config.ConnectionStrings; - - //if the connectionString is empty - which is the defauls - //look for count-1 - this is the last connection string - //and takes into account AppServices and LocalSqlServer - if(string.IsNullOrEmpty(connectionStringName)){ - if(connSection.ConnectionStrings.Count>1){ - result=connSection.ConnectionStrings[connSection.ConnectionStrings.Count-1].ConnectionString; - } - }else{ - try{ - result=connSection.ConnectionStrings[connectionStringName].ConnectionString; - }catch{ - result="There is no connection string name called '"+connectionStringName+"'"; - } - } - - return result; - } - - string _connectionString=""; - public string ConnectionString{ - get { - if(String.IsNullOrEmpty(_connectionString)){ - - _connectionString=GetConnectionString(ConnectionStringName); - - } - - if(_connectionString.Contains("|DataDirectory|")){ - //have to replace it - string dataFilePath=GetDataDirectory(); - _connectionString=_connectionString.Replace("|DataDirectory|",dataFilePath); - } - - return _connectionString; - } - } - - public EnvDTE.Project GetCurrentProject() { - - IServiceProvider _ServiceProvider = (IServiceProvider)Host; - if (_ServiceProvider == null) - throw new Exception("Host property returned unexpected value (null)"); - - EnvDTE.DTE dte = (EnvDTE.DTE)_ServiceProvider.GetService(typeof(EnvDTE.DTE)); - if (dte == null) - throw new Exception("Unable to retrieve EnvDTE.DTE"); - - Array activeSolutionProjects = (Array)dte.ActiveSolutionProjects; - if (activeSolutionProjects == null) - throw new Exception("DTE.ActiveSolutionProjects returned null"); - - EnvDTE.Project dteProject = (EnvDTE.Project)activeSolutionProjects.GetValue(0); - if (dteProject == null) - throw new Exception("DTE.ActiveSolutionProjects[0] returned null"); - - return dteProject; - - } - - private string GetProjectPath() - { - EnvDTE.Project project = GetCurrentProject(); - System.IO.FileInfo info = new System.IO.FileInfo(project.FullName); - return info.Directory.FullName; - } - - private string GetConfigPath() - { - EnvDTE.Project project = GetCurrentProject(); - foreach (EnvDTE.ProjectItem item in project.ProjectItems) - { - // if it is the app.config file, then open it up - if (item.Name.Equals("App.config",StringComparison.InvariantCultureIgnoreCase) || item.Name.Equals("Web.config",StringComparison.InvariantCultureIgnoreCase)) - return GetProjectPath() + "\\" + item.Name; - } - return String.Empty; - } - - public string GetDataDirectory(){ - EnvDTE.Project project=GetCurrentProject(); - return System.IO.Path.GetDirectoryName(project.FileName)+"\\App_Data\\"; - } - - public class Table{ - - public List Columns; - public List FKTables; - public string Name; - public string CleanName; - public string ClassName; - public string PrimaryKey; - public string Schema; - public string QueryableName; - - public bool HasLogicalDelete(){ - return this.Columns.Any(x=>x.Name.ToLower()=="deleted" || x.Name.ToLower()=="isdeleted"); - } - public Column DeleteColumn{ - get{ - Column result=null; - if(this.Columns.Any(x=>x.Name.ToLower()=="deleted")) - result=this.Columns.Single(x=>x.Name.ToLower()=="deleted"); - if(this.Columns.Any(x=>x.Name.ToLower()=="isdeleted")) - result=this.Columns.Single(x=>x.Name.ToLower()=="isdeleted"); - return result; - } - } - public Column PK{ - get{ - return this.Columns.FirstOrDefault(x=>x.IsPK) ?? this.Columns[0]; - } - } - public Column Descriptor{ - get{ - if(this.Columns.Count==1){ - return this.Columns[0]; - }else{ - //get the first string column - Column result=null; - result=this.Columns.FirstOrDefault(x=>x.SysType.ToLower().Trim()=="string"); - if(result==null) - result=this.Columns[1]; - return result; - } - } - } - } - - public class Column{ - public string Name; - public string CleanName; - public string SysType; - public string DataType; - public DbType DbType; - public bool AutoIncrement; - public bool IsPK; - public int MaxLength; - public bool IsNullable; - public bool IsForeignKey; - public bool IsUnsigned; - } - public class FKTable{ - public string ThisTable; - public string ThisColumn; - public string OtherTable; - public string OtherColumn; - public string OtherClass; - public string OtherQueryable; - } - - public class SP{ - public string Name; - public string CleanName; - public string ClassName; - public List Parameters; - public SP(){ - Parameters=new List(); - } - public string ArgList{ - get{ - StringBuilder sb=new StringBuilder(); - int loopCount=1; - foreach(var par in Parameters){ - sb.AppendFormat("{0} {1}", par.SysType,par.CleanName); - if(loopCount - /// Summary for the Inflector class - /// - public static class Inflector { - private static readonly List _plurals = new List(); - private static readonly List _singulars = new List(); - private static readonly List _uncountables = new List(); - - /// - /// Initializes the class. - /// - static Inflector() { - AddPluralRule("$", "s"); - AddPluralRule("s$", "s"); - AddPluralRule("(ax|test)is$", "$1es"); - AddPluralRule("(octop|vir)us$", "$1i"); - AddPluralRule("(alias|status)$", "$1es"); - AddPluralRule("(bu)s$", "$1ses"); - AddPluralRule("(buffal|tomat)o$", "$1oes"); - AddPluralRule("([ti])um$", "$1a"); - AddPluralRule("sis$", "ses"); - AddPluralRule("(?:([^f])fe|([lr])f)$", "$1$2ves"); - AddPluralRule("(hive)$", "$1s"); - AddPluralRule("([^aeiouy]|qu)y$", "$1ies"); - AddPluralRule("(x|ch|ss|sh)$", "$1es"); - AddPluralRule("(matr|vert|ind)ix|ex$", "$1ices"); - AddPluralRule("([m|l])ouse$", "$1ice"); - AddPluralRule("^(ox)$", "$1en"); - AddPluralRule("(quiz)$", "$1zes"); - - AddSingularRule("s$", String.Empty); - AddSingularRule("ss$", "ss"); - AddSingularRule("(n)ews$", "$1ews"); - AddSingularRule("([ti])a$", "$1um"); - AddSingularRule("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "$1$2sis"); - AddSingularRule("(^analy)ses$", "$1sis"); - AddSingularRule("([^f])ves$", "$1fe"); - AddSingularRule("(hive)s$", "$1"); - AddSingularRule("(tive)s$", "$1"); - AddSingularRule("([lr])ves$", "$1f"); - AddSingularRule("([^aeiouy]|qu)ies$", "$1y"); - AddSingularRule("(s)eries$", "$1eries"); - AddSingularRule("(m)ovies$", "$1ovie"); - AddSingularRule("(x|ch|ss|sh)es$", "$1"); - AddSingularRule("([m|l])ice$", "$1ouse"); - AddSingularRule("(bus)es$", "$1"); - AddSingularRule("(o)es$", "$1"); - AddSingularRule("(shoe)s$", "$1"); - AddSingularRule("(cris|ax|test)es$", "$1is"); - AddSingularRule("(octop|vir)i$", "$1us"); - AddSingularRule("(alias|status)$", "$1"); - AddSingularRule("(alias|status)es$", "$1"); - AddSingularRule("^(ox)en", "$1"); - AddSingularRule("(vert|ind)ices$", "$1ex"); - AddSingularRule("(matr)ices$", "$1ix"); - AddSingularRule("(quiz)zes$", "$1"); - - AddIrregularRule("person", "people"); - AddIrregularRule("man", "men"); - AddIrregularRule("child", "children"); - AddIrregularRule("sex", "sexes"); - AddIrregularRule("tax", "taxes"); - AddIrregularRule("move", "moves"); - - AddUnknownCountRule("equipment"); - AddUnknownCountRule("information"); - AddUnknownCountRule("rice"); - AddUnknownCountRule("money"); - AddUnknownCountRule("species"); - AddUnknownCountRule("series"); - AddUnknownCountRule("fish"); - AddUnknownCountRule("sheep"); - } - - /// - /// Adds the irregular rule. - /// - /// The singular. - /// The plural. - private static void AddIrregularRule(string singular, string plural) { - AddPluralRule(String.Concat("(", singular[0], ")", singular.Substring(1), "$"), String.Concat("$1", plural.Substring(1))); - AddSingularRule(String.Concat("(", plural[0], ")", plural.Substring(1), "$"), String.Concat("$1", singular.Substring(1))); - } - - /// - /// Adds the unknown count rule. - /// - /// The word. - private static void AddUnknownCountRule(string word) { - _uncountables.Add(word.ToLower()); - } - - /// - /// Adds the plural rule. - /// - /// The rule. - /// The replacement. - private static void AddPluralRule(string rule, string replacement) { - _plurals.Add(new InflectorRule(rule, replacement)); - } - - /// - /// Adds the singular rule. - /// - /// The rule. - /// The replacement. - private static void AddSingularRule(string rule, string replacement) { - _singulars.Add(new InflectorRule(rule, replacement)); - } - - /// - /// Makes the plural. - /// - /// The word. - /// - public static string MakePlural(string word) { - return ApplyRules(_plurals, word); - } - - /// - /// Makes the singular. - /// - /// The word. - /// - public static string MakeSingular(string word) { - return ApplyRules(_singulars, word); - } - - /// - /// Applies the rules. - /// - /// The rules. - /// The word. - /// - private static string ApplyRules(IList rules, string word) { - string result = word; - if (!_uncountables.Contains(word.ToLower())) { - for (int i = rules.Count - 1; i >= 0; i--) { - string currentPass = rules[i].Apply(word); - if (currentPass != null) { - result = currentPass; - break; - } - } - } - return result; - } - - /// - /// Converts the string to title case. - /// - /// The word. - /// - public static string ToTitleCase(string word) { - return Regex.Replace(ToHumanCase(AddUnderscores(word)), @"\b([a-z])", - delegate(Match match) { return match.Captures[0].Value.ToUpper(); }); - } - - /// - /// Converts the string to human case. - /// - /// The lowercase and underscored word. - /// - public static string ToHumanCase(string lowercaseAndUnderscoredWord) { - return MakeInitialCaps(Regex.Replace(lowercaseAndUnderscoredWord, @"_", " ")); - } - - - /// - /// Adds the underscores. - /// - /// The pascal cased word. - /// - public static string AddUnderscores(string pascalCasedWord) { - return Regex.Replace(Regex.Replace(Regex.Replace(pascalCasedWord, @"([A-Z]+)([A-Z][a-z])", "$1_$2"), @"([a-z\d])([A-Z])", "$1_$2"), @"[-\s]", "_").ToLower(); - } - - /// - /// Makes the initial caps. - /// - /// The word. - /// - public static string MakeInitialCaps(string word) { - return String.Concat(word.Substring(0, 1).ToUpper(), word.Substring(1).ToLower()); - } - - /// - /// Makes the initial lower case. - /// - /// The word. - /// - public static string MakeInitialLowerCase(string word) { - return String.Concat(word.Substring(0, 1).ToLower(), word.Substring(1)); - } - - - /// - /// Determine whether the passed string is numeric, by attempting to parse it to a double - /// - /// The string to evaluated for numeric conversion - /// - /// true if the string can be converted to a number; otherwise, false. - /// - public static bool IsStringNumeric(string str) { - double result; - return (double.TryParse(str, NumberStyles.Float, NumberFormatInfo.CurrentInfo, out result)); - } - - /// - /// Adds the ordinal suffix. - /// - /// The number. - /// - public static string AddOrdinalSuffix(string number) { - if (IsStringNumeric(number)) { - int n = int.Parse(number); - int nMod100 = n % 100; - - if (nMod100 >= 11 && nMod100 <= 13) - return String.Concat(number, "th"); - - switch (n % 10) { - case 1: - return String.Concat(number, "st"); - case 2: - return String.Concat(number, "nd"); - case 3: - return String.Concat(number, "rd"); - default: - return String.Concat(number, "th"); - } - } - return number; - } - - /// - /// Converts the underscores to dashes. - /// - /// The underscored word. - /// - public static string ConvertUnderscoresToDashes(string underscoredWord) { - return underscoredWord.Replace('_', '-'); - } - - - #region Nested type: InflectorRule - - /// - /// Summary for the InflectorRule class - /// - private class InflectorRule { - /// - /// - /// - public readonly Regex regex; - - /// - /// - /// - public readonly string replacement; - - /// - /// Initializes a new instance of the class. - /// - /// The regex pattern. - /// The replacement text. - public InflectorRule(string regexPattern, string replacementText) { - regex = new Regex(regexPattern, RegexOptions.IgnoreCase); - replacement = replacementText; - } - - /// - /// Applies the specified word. - /// - /// The word. - /// - public string Apply(string word) { - if (!regex.IsMatch(word)) - return null; - - string replace = regex.Replace(word, replacement); - if (word == word.ToUpper()) - replace = replace.ToUpper(); - - return replace; - } - } - - #endregion - } - -#> \ No newline at end of file diff --git a/Tests/SubSonic/StoredProcedures.cs b/Tests/SubSonic/StoredProcedures.cs deleted file mode 100644 index 64b4f4774..000000000 --- a/Tests/SubSonic/StoredProcedures.cs +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Tests/SubSonic/StoredProcedures.tt b/Tests/SubSonic/StoredProcedures.tt deleted file mode 100644 index e178460ba..000000000 --- a/Tests/SubSonic/StoredProcedures.tt +++ /dev/null @@ -1,30 +0,0 @@ -<#@ template language="C#v3.5" debug="False" hostspecific="True" #> -<#@ output extension=".cs" #> -<#@ include file="SQLServer.ttinclude" #> -<# - var sps = GetSPs(); - if(sps.Count>0){ -#> -using System; -using SubSonic; -using SubSonic.Schema; -using SubSonic.DataProviders; -using System.Data; - -namespace <#=Namespace#>{ - public partial class <#=DatabaseName#>DB{ - -<# foreach(var sp in sps){#> - public StoredProcedure <#=sp.CleanName#>(<#=sp.ArgList#>){ - StoredProcedure sp=new StoredProcedure("<#=sp.Name#>",this.Provider); -<# foreach(var par in sp.Parameters){#> - sp.Command.AddParameter("<#=par.Name#>",<#=par.CleanName#>,DbType.<#=par.DbType#>); -<# }#> - return sp; - } -<# }#> - - } - -} -<# }#> \ No newline at end of file diff --git a/Tests/SubSonic/Structs.cs b/Tests/SubSonic/Structs.cs deleted file mode 100644 index a3f87ff14..000000000 --- a/Tests/SubSonic/Structs.cs +++ /dev/null @@ -1,317 +0,0 @@ - - - -using System; -using SubSonic.Schema; -using System.Collections.Generic; -using SubSonic.DataProviders; -using System.Data; - -namespace SubSonic { - - /// - /// Table: Posts - /// Primary Key: Id - /// - - public class PostsTable: DatabaseTable { - - public PostsTable(IDataProvider provider):base("Posts",provider){ - ClassName = "Post"; - SchemaName = "dbo"; - - - Columns.Add(new DatabaseColumn("Id", this) - { - IsPrimaryKey = true, - DataType = DbType.Int32, - IsNullable = false, - AutoIncrement = true, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Text", this) - { - IsPrimaryKey = false, - DataType = DbType.AnsiString, - IsNullable = false, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = -1 - }); - - Columns.Add(new DatabaseColumn("CreationDate", this) - { - IsPrimaryKey = false, - DataType = DbType.DateTime, - IsNullable = false, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("LastChangeDate", this) - { - IsPrimaryKey = false, - DataType = DbType.DateTime, - IsNullable = false, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter1", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter2", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter3", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter4", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter5", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter6", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter7", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter8", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - Columns.Add(new DatabaseColumn("Counter9", this) - { - IsPrimaryKey = false, - DataType = DbType.Int32, - IsNullable = true, - AutoIncrement = false, - IsForeignKey = false, - MaxLength = 0 - }); - - - - } - - public IColumn Id{ - get{ - return this.GetColumn("Id"); - } - } - - public static string IdColumn{ - get{ - return "Id"; - } - } - - public IColumn Text{ - get{ - return this.GetColumn("Text"); - } - } - - public static string TextColumn{ - get{ - return "Text"; - } - } - - public IColumn CreationDate{ - get{ - return this.GetColumn("CreationDate"); - } - } - - public static string CreationDateColumn{ - get{ - return "CreationDate"; - } - } - - public IColumn LastChangeDate{ - get{ - return this.GetColumn("LastChangeDate"); - } - } - - public static string LastChangeDateColumn{ - get{ - return "LastChangeDate"; - } - } - - public IColumn Counter1{ - get{ - return this.GetColumn("Counter1"); - } - } - - public static string Counter1Column{ - get{ - return "Counter1"; - } - } - - public IColumn Counter2{ - get{ - return this.GetColumn("Counter2"); - } - } - - public static string Counter2Column{ - get{ - return "Counter2"; - } - } - - public IColumn Counter3{ - get{ - return this.GetColumn("Counter3"); - } - } - - public static string Counter3Column{ - get{ - return "Counter3"; - } - } - - public IColumn Counter4{ - get{ - return this.GetColumn("Counter4"); - } - } - - public static string Counter4Column{ - get{ - return "Counter4"; - } - } - - public IColumn Counter5{ - get{ - return this.GetColumn("Counter5"); - } - } - - public static string Counter5Column{ - get{ - return "Counter5"; - } - } - - public IColumn Counter6{ - get{ - return this.GetColumn("Counter6"); - } - } - - public static string Counter6Column{ - get{ - return "Counter6"; - } - } - - public IColumn Counter7{ - get{ - return this.GetColumn("Counter7"); - } - } - - public static string Counter7Column{ - get{ - return "Counter7"; - } - } - - public IColumn Counter8{ - get{ - return this.GetColumn("Counter8"); - } - } - - public static string Counter8Column{ - get{ - return "Counter8"; - } - } - - public IColumn Counter9{ - get{ - return this.GetColumn("Counter9"); - } - } - - public static string Counter9Column{ - get{ - return "Counter9"; - } - } - - - } - -} \ No newline at end of file diff --git a/Tests/SubSonic/Structs.tt b/Tests/SubSonic/Structs.tt deleted file mode 100644 index 7f8b9aaa7..000000000 --- a/Tests/SubSonic/Structs.tt +++ /dev/null @@ -1,67 +0,0 @@ -<#@ template language="C#v3.5" debug="False" hostspecific="True" #> -<#@ output extension=".cs" #> -<#@ include file="SQLServer.ttinclude" #> -<# - var tables = LoadTables(); -#> -using System; -using SubSonic.Schema; -using System.Collections.Generic; -using SubSonic.DataProviders; -using System.Data; - -namespace <#=Namespace#> { - -<# foreach(var tbl in tables){ - if(!ExcludeTables.Contains(tbl.Name)) - { -#> - /// - /// Table: <#=tbl.Name#> - /// Primary Key: <#=tbl.PrimaryKey#> - /// - - public class <#=tbl.CleanName#>Table: DatabaseTable { - - public <#=tbl.CleanName#>Table(IDataProvider provider):base("<#=tbl.Name#>",provider){ - ClassName = "<#=tbl.ClassName#>"; - SchemaName = "<#=tbl.Schema ?? ""#>"; - -<# foreach(var col in tbl.Columns){#> - - Columns.Add(new DatabaseColumn("<#=col.Name#>", this) - { - IsPrimaryKey = <#=col.IsPK.ToString().ToLower()#>, - DataType = DbType.<#=col.DbType.ToString()#>, - IsNullable = <#=col.IsNullable.ToString().ToLower()#>, - AutoIncrement = <#=col.AutoIncrement.ToString().ToLower()#>, - IsForeignKey = <#=col.IsForeignKey.ToString().ToLower()#>, - MaxLength = <#=col.MaxLength#> - }); -<# }#> - - - } - -<# foreach(var col in tbl.Columns){#> - public IColumn <#=col.CleanName#>{ - get{ - return this.GetColumn("<#=col.Name#>"); - } - } - - public static string <#= col.CleanName #>Column{ - get{ - return "<#= col.Name #>"; - } - } - -<# }#> - } - -<# - } - - } -#> -} \ No newline at end of file diff --git a/Tests/SubSonic/SubSonic.Core.dll b/Tests/SubSonic/SubSonic.Core.dll deleted file mode 100644 index 065bba65d..000000000 Binary files a/Tests/SubSonic/SubSonic.Core.dll and /dev/null differ diff --git a/Tests/Tests.cs b/Tests/Tests.cs deleted file mode 100644 index c2c0bc5e1..000000000 --- a/Tests/Tests.cs +++ /dev/null @@ -1,4659 +0,0 @@ -//#define POSTGRESQL // uncomment to run postgres tests - -#if DNXCORE50 -using IDbCommand = global::System.Data.Common.DbCommand; -using IDbDataParameter = global::System.Data.Common.DbParameter; -using IDbConnection = global::System.Data.Common.DbConnection; -using IDbTransaction = global::System.Data.Common.DbTransaction; -using IDataReader = global::System.Data.Common.DbDataReader; -#endif - -using System; -using System.Collections.Generic; -using System.Data.SqlClient; -using System.Linq; -using Dapper; -using System.IO; -using System.Data; -using System.Collections; -using System.Reflection; -using System.Dynamic; -using System.ComponentModel; -using Microsoft.CSharp.RuntimeBinder; -using System.Data.Common; -using System.Globalization; -using System.Threading; -using System.Data.SqlTypes; -using System.Diagnostics; - -#if EXTERNALS -using FirebirdSql.Data.FirebirdClient; -using System.Data.Entity.Spatial; -using Microsoft.SqlServer.Types; -using System.Data.SqlServerCe; -#if POSTGRESQL -using Npgsql; -#endif -#endif - -#if DNXCORE50 -namespace System.ComponentModel { - public sealed class DescriptionAttribute : Attribute { - public DescriptionAttribute(string description) - { - Description = description; - } - public string Description {get;private set;} - } -} -namespace System -{ - public enum GenericUriParserOptions - { - Default - } - public class GenericUriParser - { - private GenericUriParserOptions options; - - public GenericUriParser(GenericUriParserOptions options) - { - this.options = options; - } - } -} -#endif - -namespace SqlMapper -{ - - class Tests - { - SqlConnection connection = Program.GetOpenConnection(); - - public class AbstractInheritance - { - public abstract class Order - { - internal int Internal { get; set; } - protected int Protected { get; set; } - public int Public { get; set; } - - public int ProtectedVal { get { return Protected; } } - } - - public class ConcreteOrder : Order - { - public int Concrete { get; set; } - } - } - - class UserWithConstructor - { - public UserWithConstructor(int id, string name) - { - Ident = id; - FullName = name; - } - public int Ident { get; set; } - public string FullName { get; set; } - } - - class PostWithConstructor - { - public PostWithConstructor(int id, int ownerid, string content) - { - Ident = id; - FullContent = content; - } - - public int Ident { get; set; } - public UserWithConstructor Owner { get; set; } - public string FullContent { get; set; } - public Comment Comment { get; set; } - } - - public void TestMultiMapWithConstructor() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post')"; - connection.Execute(createSql); - try - { - string sql = @"select * from #Posts p - left join #Users u on u.Id = p.OwnerId - Order by p.Id"; - PostWithConstructor[] data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToArray(); - var p = data.First(); - - p.FullContent.IsEqualTo("Sams Post1"); - p.Ident.IsEqualTo(1); - p.Owner.FullName.IsEqualTo("Sam"); - p.Owner.Ident.IsEqualTo(99); - - data[2].Owner.IsNull(); - } - finally - { - connection.Execute("drop table #Users drop table #Posts"); - } - } - - - class MultipleConstructors - { - public MultipleConstructors() - { - - } - public MultipleConstructors(int a, string b) - { - A = a + 1; - B = b + "!"; - } - public int A { get; set; } - public string B { get; set; } - } - - public void TestMultipleConstructors() - { - MultipleConstructors mult = connection.Query("select 0 A, 'Dapper' b").First(); - mult.A.IsEqualTo(0); - mult.B.IsEqualTo("Dapper"); - } - - class ConstructorsWithAccessModifiers - { - private ConstructorsWithAccessModifiers() - { - } - public ConstructorsWithAccessModifiers(int a, string b) - { - A = a + 1; - B = b + "!"; - } - public int A { get; set; } - public string B { get; set; } - } - - public void TestConstructorsWithAccessModifiers() - { - ConstructorsWithAccessModifiers value = connection.Query("select 0 A, 'Dapper' b").First(); - value.A.IsEqualTo(1); - value.B.IsEqualTo("Dapper!"); - } - - class NoDefaultConstructor - { - public NoDefaultConstructor(int a1, int? b1, float f1, string s1, Guid G1) - { - A = a1; - B = b1; - F = f1; - S = s1; - G = G1; - } - public int A { get; set; } - public int? B { get; set; } - public float F { get; set; } - public string S { get; set; } - public Guid G { get; set; } - } - - public void TestNoDefaultConstructor() - { - var guid = Guid.NewGuid(); - NoDefaultConstructor nodef = connection.Query("select CAST(NULL AS integer) A1, CAST(NULL AS integer) b1, CAST(NULL AS real) f1, 'Dapper' s1, G1 = @id", new { id = guid }).First(); - nodef.A.IsEqualTo(0); - nodef.B.IsEqualTo(null); - nodef.F.IsEqualTo(0); - nodef.S.IsEqualTo("Dapper"); - nodef.G.IsEqualTo(guid); - } - - class NoDefaultConstructorWithChar - { - public NoDefaultConstructorWithChar(char c1, char? c2, char? c3) - { - Char1 = c1; - Char2 = c2; - Char3 = c3; - } - public char Char1 { get; set; } - public char? Char2 { get; set; } - public char? Char3 { get; set; } - } - - public void TestNoDefaultConstructorWithChar() - { - const char c1 = 'ą'; - const char c3 = 'ó'; - NoDefaultConstructorWithChar nodef = connection.Query("select @c1 c1, @c2 c2, @c3 c3", new { c1 = c1, c2 = (char?)null, c3 = c3 }).First(); - nodef.Char1.IsEqualTo(c1); - nodef.Char2.IsEqualTo(null); - nodef.Char3.IsEqualTo(c3); - } - - class NoDefaultConstructorWithEnum - { - public NoDefaultConstructorWithEnum(ShortEnum e1, ShortEnum? n1, ShortEnum? n2) - { - E = e1; - NE1 = n1; - NE2 = n2; - } - public ShortEnum E { get; set; } - public ShortEnum? NE1 { get; set; } - public ShortEnum? NE2 { get; set; } - } - - public void TestNoDefaultConstructorWithEnum() - { - NoDefaultConstructorWithEnum nodef = connection.Query("select cast(2 as smallint) E1, cast(5 as smallint) n1, cast(null as smallint) n2").First(); - nodef.E.IsEqualTo(ShortEnum.Two); - nodef.NE1.IsEqualTo(ShortEnum.Five); - nodef.NE2.IsEqualTo(null); - } -#if EXTERNALS - class NoDefaultConstructorWithBinary - { - public System.Data.Linq.Binary Value { get; set; } - public int Ynt { get; set; } - public NoDefaultConstructorWithBinary(System.Data.Linq.Binary val) - { - Value = val; - } - } - public void TestNoDefaultConstructorBinary() - { - byte[] orig = new byte[20]; - new Random(123456).NextBytes(orig); - var input = new System.Data.Linq.Binary(orig); - var output = connection.Query("select @input as val", new { input }).First().Value; - output.ToArray().IsSequenceEqualTo(orig); - } -#endif - - // http://stackoverflow.com/q/8593871 - public void TestAbstractInheritance() - { - var order = connection.Query("select 1 Internal,2 Protected,3 [Public],4 Concrete").First(); - - order.Internal.IsEqualTo(1); - order.ProtectedVal.IsEqualTo(2); - order.Public.IsEqualTo(3); - order.Concrete.IsEqualTo(4); - } - - public void TestListOfAnsiStrings() - { - var results = connection.Query("select * from (select 'a' str union select 'b' union select 'c') X where str in @strings", - new { strings = new[] { new DbString { IsAnsi = true, Value = "a" }, new DbString { IsAnsi = true, Value = "b" } } }).ToList(); - - results[0].IsEqualTo("a"); - results[1].IsEqualTo("b"); - } - - public void TestNullableGuidSupport() - { - var guid = connection.Query("select null").First(); - guid.IsNull(); - - guid = Guid.NewGuid(); - var guid2 = connection.Query("select @guid", new { guid }).First(); - guid.IsEqualTo(guid2); - } - - public void TestNonNullableGuidSupport() - { - var guid = Guid.NewGuid(); - var guid2 = connection.Query("select @guid", new { guid }).First(); - Assert.IsTrue(guid == guid2); - } - - struct Car - { - public enum TrapEnum : int - { - A = 1, - B = 2 - } -#pragma warning disable 0649 - public string Name; -#pragma warning restore 0649 - public int Age { get; set; } - public TrapEnum Trap { get; set; } - - } - - struct CarWithAllProps - { - public string Name { get; set; } - public int Age { get; set; } - - public Car.TrapEnum Trap { get; set; } - } - - public void TestStructs() - { - var car = connection.Query("select 'Ford' Name, 21 Age, 2 Trap").First(); - - car.Age.IsEqualTo(21); - car.Name.IsEqualTo("Ford"); - ((int)car.Trap).IsEqualTo(2); - } - - public void TestStructAsParam() - { - var car1 = new CarWithAllProps { Name = "Ford", Age = 21, Trap = Car.TrapEnum.B }; - // note Car has Name as a field; parameters only respect properties at the moment - var car2 = connection.Query("select @Name Name, @Age Age, @Trap Trap", car1).First(); - - car2.Name.IsEqualTo(car1.Name); - car2.Age.IsEqualTo(car1.Age); - car2.Trap.IsEqualTo(car1.Trap); - } - - public void SelectListInt() - { - connection.Query("select 1 union all select 2 union all select 3") - .IsSequenceEqualTo(new[] { 1, 2, 3 }); - } - public void SelectBinary() - { - connection.Query("select cast(1 as varbinary(4))").First().SequenceEqual(new byte[] { 1 }); - } - public void PassInIntArray() - { - connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[] { 1, 2, 3 }.AsEnumerable() }) - .IsSequenceEqualTo(new[] { 1, 2, 3 }); - } - - public void PassInEmptyIntArray() - { - connection.Query("select * from (select 1 as Id union all select 2 union all select 3) as X where Id in @Ids", new { Ids = new int[0] }) - .IsSequenceEqualTo(new int[0]); - } - - public void TestSchemaChanged() - { - connection.Execute("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')"); - try - { - var d = connection.Query("select * from #dog").Single(); - d.Name.IsEqualTo("Alf"); - d.Age.IsEqualTo(1); - connection.Execute("alter table #dog drop column Name"); - d = connection.Query("select * from #dog").Single(); - d.Name.IsNull(); - d.Age.IsEqualTo(1); - } - finally - { - connection.Execute("drop table #dog"); - } - } - - public void TestSchemaChangedMultiMap() - { - connection.Execute("create table #dog(Age int, Name nvarchar(max)) insert #dog values(1, 'Alf')"); - try - { - var tuple = connection.Query>("select * from #dog d1 join #dog d2 on 1=1", (d1, d2) => Tuple.Create(d1, d2), splitOn: "Age").Single(); - - tuple.Item1.Name.IsEqualTo("Alf"); - tuple.Item1.Age.IsEqualTo(1); - tuple.Item2.Name.IsEqualTo("Alf"); - tuple.Item2.Age.IsEqualTo(1); - - connection.Execute("alter table #dog drop column Name"); - tuple = connection.Query>("select * from #dog d1 join #dog d2 on 1=1", (d1, d2) => Tuple.Create(d1, d2), splitOn: "Age").Single(); - - tuple.Item1.Name.IsNull(); - tuple.Item1.Age.IsEqualTo(1); - tuple.Item2.Name.IsNull(); - tuple.Item2.Age.IsEqualTo(1); - } - finally - { - connection.Execute("drop table #dog"); - } - } - - public void TestReadMultipleIntegersWithSplitOnAny() - { - connection.Query>( - "select 1,2,3 union all select 4,5,6", Tuple.Create, splitOn: "*") - .IsSequenceEqualTo(new[] { Tuple.Create(1, 2, 3), Tuple.Create(4, 5, 6) }); - } - - public void TestDoubleParam() - { - connection.Query("select @d", new { d = 0.1d }).First() - .IsEqualTo(0.1d); - } - - public void TestBoolParam() - { - connection.Query("select @b", new { b = false }).First() - .IsFalse(); - } - - // http://code.google.com/p/dapper-dot-net/issues/detail?id=70 - // https://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time - public void TestTimeSpanParam() - { - connection.Query("select @ts", new { ts = TimeSpan.FromMinutes(42) }).First() - .IsEqualTo(TimeSpan.FromMinutes(42)); - } - - public void TestStrings() - { - connection.Query(@"select 'a' a union select 'b'") - .IsSequenceEqualTo(new[] { "a", "b" }); - } - - // see http://stackoverflow.com/questions/16726709/string-format-with-sql-wildcard-causing-dapper-query-to-break - public void CheckComplexConcat() - { - string end_wildcard = @" -SELECT * FROM #users16726709 -WHERE (first_name LIKE CONCAT(@search_term, '%') OR last_name LIKE CONCAT(@search_term, '%'));"; - - string both_wildcards = @" -SELECT * FROM #users16726709 -WHERE (first_name LIKE CONCAT('%', @search_term, '%') OR last_name LIKE CONCAT('%', @search_term, '%'));"; - - string formatted = @" -SELECT * FROM #users16726709 -WHERE (first_name LIKE {0} OR last_name LIKE {0});"; - - string use_end_only = @"CONCAT(@search_term, '%')"; - string use_both = @"CONCAT('%', @search_term, '%')"; - - // if true, slower query due to not being able to use indices, but will allow searching inside strings - bool allow_start_wildcards = false; - - string query = String.Format(formatted, allow_start_wildcards ? use_both : use_end_only); - string term = "F"; // the term the user searched for - - connection.Execute(@"create table #users16726709 (first_name varchar(200), last_name varchar(200)) -insert #users16726709 values ('Fred','Bloggs') insert #users16726709 values ('Tony','Farcus') insert #users16726709 values ('Albert','TenoF')"); - - // Using Dapper - connection.Query(end_wildcard, new { search_term = term }).Count().IsEqualTo(2); - connection.Query(both_wildcards, new { search_term = term }).Count().IsEqualTo(3); - connection.Query(query, new { search_term = term }).Count().IsEqualTo(2); - - } - - enum EnumParam : short - { - None, A, B - } - class EnumParamObject - { - public EnumParam A { get; set; } - public EnumParam? B { get; set; } - public EnumParam? C { get; set; } - } - class EnumParamObjectNonNullable - { - public EnumParam A { get; set; } - public EnumParam? B { get; set; } - public EnumParam? C { get; set; } - } - public void TestEnumParamsWithNullable() - { - EnumParam a = EnumParam.A; - EnumParam? b = EnumParam.B, c = null; - var obj = connection.Query("select @a as A, @b as B, @c as C", - new { a, b, c }).Single(); - obj.A.IsEqualTo(EnumParam.A); - obj.B.IsEqualTo(EnumParam.B); - obj.C.IsEqualTo(null); - } - public void TestEnumParamsWithoutNullable() - { - EnumParam a = EnumParam.A; - EnumParam b = EnumParam.B, c = 0; - var obj = connection.Query("select @a as A, @b as B, @c as C", - new { a, b, c }).Single(); - obj.A.IsEqualTo(EnumParam.A); - obj.B.IsEqualTo(EnumParam.B); - obj.C.IsEqualTo((EnumParam)0); - } - public class Dog - { - public int? Age { get; set; } - public Guid Id { get; set; } - public string Name { get; set; } - public float? Weight { get; set; } - - public int IgnoredProperty { get { return 1; } } - } - - public void TestExtraFields() - { - var guid = Guid.NewGuid(); - var dog = connection.Query("select '' as Extra, 1 as Age, 0.1 as Name1 , Id = @id", new { id = guid }); - - dog.Count() - .IsEqualTo(1); - - dog.First().Age - .IsEqualTo(1); - - dog.First().Id - .IsEqualTo(guid); - } -#if EXTERNALS - // see http://stackoverflow.com/q/18847510/23354 - public void TestOleDbParameters() - { - using (var conn = ConnectViaOledb()) - { - var row = conn.Query("select Id = ?, Age = ?", - new { foo = 12, bar = 23 } // these names DO NOT MATTER!!! - ).Single(); - int age = row.Age; - int id = row.Id; - age.IsEqualTo(23); - id.IsEqualTo(12); - } - } - - System.Data.OleDb.OleDbConnection ConnectViaOledb() - { - var conn = new System.Data.OleDb.OleDbConnection(Program.OleDbConnectionString); - conn.Open(); - return conn; - } -#endif - public void TestStrongType() - { - var guid = Guid.NewGuid(); - var dog = connection.Query("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); - - dog.Count() - .IsEqualTo(1); - - dog.First().Age - .IsNull(); - - dog.First().Id - .IsEqualTo(guid); - } - - public void TestSimpleNull() - { - connection.Query("select null").First().IsNull(); - } - - public void TestExpando() - { - var rows = connection.Query("select 1 A, 2 B union all select 3, 4").ToList(); - - ((int)rows[0].A) - .IsEqualTo(1); - - ((int)rows[0].B) - .IsEqualTo(2); - - ((int)rows[1].A) - .IsEqualTo(3); - - ((int)rows[1].B) - .IsEqualTo(4); - } - - public void TestStringList() - { - connection.Query("select * from (select 'a' as x union all select 'b' union all select 'c') as T where x in @strings", new { strings = new[] { "a", "b", "c" } }) - .IsSequenceEqualTo(new[] { "a", "b", "c" }); - - connection.Query("select * from (select 'a' as x union all select 'b' union all select 'c') as T where x in @strings", new { strings = new string[0] }) - .IsSequenceEqualTo(new string[0]); - } - - public void TestExecuteCommand() - { - connection.Execute(@" - set nocount on - create table #t(i int) - set nocount off - insert #t - select @a a union all select @b - set nocount on - drop table #t", new { a = 1, b = 2 }).IsEqualTo(2); - } - public void TestExecuteCommandWithHybridParameters() - { - var p = new DynamicParameters(new { a = 1, b = 2 }); - p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output); - connection.Execute(@"set @c = @a + @b", p); - p.Get("@c").IsEqualTo(3); - } - public void TestExecuteMultipleCommand() - { - connection.Execute("create table #t(i int)"); - try - { - int tally = connection.Execute(@"insert #t (i) values(@a)", new[] { new { a = 1 }, new { a = 2 }, new { a = 3 }, new { a = 4 } }); - int sum = connection.Query("select sum(i) from #t").First(); - tally.IsEqualTo(4); - sum.IsEqualTo(10); - } - finally - { - connection.Execute("drop table #t"); - } - } - - class Student - { - public string Name { get; set; } - public int Age { get; set; } - } - - public void TestExecuteMultipleCommandStrongType() - { - connection.Execute("create table #t(Name nvarchar(max), Age int)"); - try - { - int tally = connection.Execute(@"insert #t (Name,Age) values(@Name, @Age)", new List - { - new Student{Age = 1, Name = "sam"}, - new Student{Age = 2, Name = "bob"} - }); - int sum = connection.Query("select sum(Age) from #t").First(); - tally.IsEqualTo(2); - sum.IsEqualTo(3); - } - finally - { - connection.Execute("drop table #t"); - } - } - - public void TestExecuteMultipleCommandObjectArray() - { - connection.Execute("create table #t(i int)"); - int tally = connection.Execute(@"insert #t (i) values(@a)", new object[] { new { a = 1 }, new { a = 2 }, new { a = 3 }, new { a = 4 } }); - int sum = connection.Query("select sum(i) from #t drop table #t").First(); - tally.IsEqualTo(4); - sum.IsEqualTo(10); - } - - public void TestMassiveStrings() - { - var str = new string('X', 20000); - connection.Query("select @a", new { a = str }).First() - .IsEqualTo(str); - } - - class TestObj - { - public int _internal; - internal int Internal { set { _internal = value; } } - - public int _priv; - private int Priv { set { _priv = value; } } - - private int PrivGet { get { return _priv; } } - } - - public void TestSetInternal() - { - connection.Query("select 10 as [Internal]").First()._internal.IsEqualTo(10); - } - - public void TestSetPrivate() - { - connection.Query("select 10 as [Priv]").First()._priv.IsEqualTo(10); - } - - - public void TestExpandWithNullableFields() - { - var row = connection.Query("select null A, 2 B").Single(); - - ((int?)row.A) - .IsNull(); - - ((int?)row.B) - .IsEqualTo(2); - } - - public void TestEnumeration() - { - var en = connection.Query("select 1 as one union all select 2 as one", buffered: false); - var i = en.GetEnumerator(); - i.MoveNext(); - - bool gotException = false; - try - { - var x = connection.Query("select 1 as one", buffered: false).First(); - } - catch (Exception) - { - gotException = true; - } - - while (i.MoveNext()) - { } - - // should not exception, since enumerated - en = connection.Query("select 1 as one", buffered: false); - - gotException.IsTrue(); - } - - public void TestEnumerationDynamic() - { - var en = connection.Query("select 1 as one union all select 2 as one", buffered: false); - var i = en.GetEnumerator(); - i.MoveNext(); - - bool gotException = false; - try - { - var x = connection.Query("select 1 as one", buffered: false).First(); - } - catch (Exception) - { - gotException = true; - } - - while (i.MoveNext()) - { } - - // should not exception, since enumertated - en = connection.Query("select 1 as one", buffered: false); - - gotException.IsTrue(); - } - - public void TestNakedBigInt() - { - long foo = 12345; - var result = connection.Query("select @foo", new { foo }).Single(); - foo.IsEqualTo(result); - } - - public void TestBigIntMember() - { - long foo = 12345; - var result = connection.Query(@" -declare @bar table(Value bigint) -insert @bar values (@foo) -select * from @bar", new { foo }).Single(); - result.Value.IsEqualTo(foo); - } - class WithBigInt - { - public long Value { get; set; } - } - - class User - { - public int Id { get; set; } - public string Name { get; set; } - } - class Post - { - public int Id { get; set; } - public User Owner { get; set; } - public string Content { get; set; } - public Comment Comment { get; set; } - } - public void TestMultiMap() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post') -"; - connection.Execute(createSql); - try - { - var sql = - @"select * from #Posts p -left join #Users u on u.Id = p.OwnerId -Order by p.Id"; - - var data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToList(); - var p = data.First(); - - p.Content.IsEqualTo("Sams Post1"); - p.Id.IsEqualTo(1); - p.Owner.Name.IsEqualTo("Sam"); - p.Owner.Id.IsEqualTo(99); - - data[2].Owner.IsNull(); - } - finally - { - connection.Execute("drop table #Users drop table #Posts"); - } - } - - class ReviewBoard - { - public int Id { get; set; } - public string Name { get; set; } - public User User1 { get; set; } - public User User2 { get; set; } - public User User3 { get; set; } - public User User4 { get; set; } - public User User5 { get; set; } - public User User6 { get; set; } - public User User7 { get; set; } - public User User8 { get; set; } - public User User9 { get; set; } - } - - public void TestMultiMapArbitraryMaps() - { - // please excuse the trite example, but it is easier to follow than a more real-world one - var createSql = @" - create table #ReviewBoards (Id int, Name varchar(20), User1Id int, User2Id int, User3Id int, User4Id int, User5Id int, User6Id int, User7Id int, User8Id int, User9Id int) - create table #Users (Id int, Name varchar(20)) - - insert #Users values(1, 'User 1') - insert #Users values(2, 'User 2') - insert #Users values(3, 'User 3') - insert #Users values(4, 'User 4') - insert #Users values(5, 'User 5') - insert #Users values(6, 'User 6') - insert #Users values(7, 'User 7') - insert #Users values(8, 'User 8') - insert #Users values(9, 'User 9') - - insert #ReviewBoards values(1, 'Review Board 1', 1, 2, 3, 4, 5, 6, 7, 8, 9) -"; - connection.Execute(createSql); - try - { - var sql = @" - select - rb.Id, rb.Name, - u1.*, u2.*, u3.*, u4.*, u5.*, u6.*, u7.*, u8.*, u9.* - from #ReviewBoards rb - inner join #Users u1 on u1.Id = rb.User1Id - inner join #Users u2 on u2.Id = rb.User2Id - inner join #Users u3 on u3.Id = rb.User3Id - inner join #Users u4 on u4.Id = rb.User4Id - inner join #Users u5 on u5.Id = rb.User5Id - inner join #Users u6 on u6.Id = rb.User6Id - inner join #Users u7 on u7.Id = rb.User7Id - inner join #Users u8 on u8.Id = rb.User8Id - inner join #Users u9 on u9.Id = rb.User9Id -"; - - var types = new[] { typeof(ReviewBoard), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User), typeof(User) }; - - Func mapper = (objects) => - { - var board = (ReviewBoard)objects[0]; - board.User1 = (User)objects[1]; - board.User2 = (User)objects[2]; - board.User3 = (User)objects[3]; - board.User4 = (User)objects[4]; - board.User5 = (User)objects[5]; - board.User6 = (User)objects[6]; - board.User7 = (User)objects[7]; - board.User8 = (User)objects[8]; - board.User9 = (User)objects[9]; - return board; - }; - - var data = connection.Query(sql, types, mapper).ToList(); - - var p = data.First(); - p.Id.IsEqualTo(1); - p.Name.IsEqualTo("Review Board 1"); - p.User1.Id.IsEqualTo(1); - p.User2.Id.IsEqualTo(2); - p.User3.Id.IsEqualTo(3); - p.User4.Id.IsEqualTo(4); - p.User5.Id.IsEqualTo(5); - p.User6.Id.IsEqualTo(6); - p.User7.Id.IsEqualTo(7); - p.User8.Id.IsEqualTo(8); - p.User9.Id.IsEqualTo(9); - p.User1.Name.IsEqualTo("User 1"); - p.User2.Name.IsEqualTo("User 2"); - p.User3.Name.IsEqualTo("User 3"); - p.User4.Name.IsEqualTo("User 4"); - p.User5.Name.IsEqualTo("User 5"); - p.User6.Name.IsEqualTo("User 6"); - p.User7.Name.IsEqualTo("User 7"); - p.User8.Name.IsEqualTo("User 8"); - p.User9.Name.IsEqualTo("User 9"); - } - finally - { - connection.Execute("drop table #Users drop table #ReviewBoards"); - } - } - - public void TestMultiMapGridReader() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post') -"; - connection.Execute(createSql); - - var sql = -@"select p.*, u.Id, u.Name + '0' Name from #Posts p -left join #Users u on u.Id = p.OwnerId -Order by p.Id - -select p.*, u.Id, u.Name + '1' Name from #Posts p -left join #Users u on u.Id = p.OwnerId -Order by p.Id -"; - - var grid = connection.QueryMultiple(sql); - - for (int i = 0; i < 2; i++) - { - var data = grid.Read((post, user) => { post.Owner = user; return post; }).ToList(); - var p = data.First(); - - p.Content.IsEqualTo("Sams Post1"); - p.Id.IsEqualTo(1); - p.Owner.Name.IsEqualTo("Sam" + i); - p.Owner.Id.IsEqualTo(99); - - data[2].Owner.IsNull(); - } - - connection.Execute("drop table #Users drop table #Posts"); - - } - - public void TestQueryMultipleBuffered() - { - using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) - { - var a = grid.Read(); - var b = grid.Read(); - var c = grid.Read(); - var d = grid.Read(); - - a.Single().Equals(1); - b.Single().Equals(2); - c.Single().Equals(3); - d.Single().Equals(4); - } - } - - public void TestQueryMultipleNonBufferedIncorrectOrder() - { - using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) - { - var a = grid.Read(false); - try - { - var b = grid.Read(false); - throw new InvalidOperationException(); // should have thrown - } - catch (InvalidOperationException) - { - // that's expected - } - - } - } - public void TestQueryMultipleNonBufferedCcorrectOrder() - { - using (var grid = connection.QueryMultiple("select 1; select 2; select @x; select 4", new { x = 3 })) - { - var a = grid.Read(false).Single(); - var b = grid.Read(false).Single(); - var c = grid.Read(false).Single(); - var d = grid.Read(false).Single(); - - a.Equals(1); - b.Equals(2); - c.Equals(3); - d.Equals(4); - } - } - public void TestMultiMapDynamic() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post') -"; - connection.Execute(createSql); - - var sql = -@"select * from #Posts p -left join #Users u on u.Id = p.OwnerId -Order by p.Id"; - - var data = connection.Query(sql, (post, user) => { post.Owner = user; return post; }).ToList(); - var p = data.First(); - - // hairy extension method support for dynamics - ((string)p.Content).IsEqualTo("Sams Post1"); - ((int)p.Id).IsEqualTo(1); - ((string)p.Owner.Name).IsEqualTo("Sam"); - ((int)p.Owner.Id).IsEqualTo(99); - - ((object)data[2].Owner).IsNull(); - - connection.Execute("drop table #Users drop table #Posts"); - } - - class Product - { - public int Id { get; set; } - public string Name { get; set; } - public Category Category { get; set; } - } - class Category - { - public int Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - } - public void TestMultiMapWithSplit() // http://stackoverflow.com/q/6056778/23354 - { - var sql = @"select 1 as id, 'abc' as name, 2 as id, 'def' as name"; - var product = connection.Query(sql, (prod, cat) => - { - prod.Category = cat; - return prod; - }).First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.Id.IsEqualTo(2); - product.Category.Name.IsEqualTo("def"); - } - public void TestMultiMapWithSplitWithNullValue() // http://stackoverflow.com/q/10744728/449906 - { - var sql = @"select 1 as id, 'abc' as name, NULL as description, 'def' as name"; - var product = connection.Query(sql, (prod, cat) => - { - prod.Category = cat; - return prod; - }, splitOn: "description").First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.IsNull(); - } - public void TestMultiMapWithSplitWithNullValueAndSpoofColumn() // http://stackoverflow.com/q/10744728/449906 - { - var sql = @"select 1 as id, 'abc' as name, 1 as spoof, NULL as description, 'def' as name"; - var product = connection.Query(sql, (prod, cat) => - { - prod.Category = cat; - return prod; - }, splitOn: "spoof").First(); - // assertions - product.Id.IsEqualTo(1); - product.Name.IsEqualTo("abc"); - product.Category.IsNotNull(); - product.Category.Id.IsEqualTo(0); - product.Category.Name.IsEqualTo("def"); - product.Category.Description.IsNull(); - } - public void TestFieldsAndPrivates() - { - var data = connection.Query( - @"select a=1,b=2,c=3,d=4,f='5'").Single(); - - - data.a.IsEqualTo(1); - data.GetB().IsEqualTo(2); - data.c.IsEqualTo(3); - data.GetD().IsEqualTo(4); - data.e.IsEqualTo(5); - - - } - -#if EXTERNALS - public void ExecuteReader() - { - var dt = new DataTable(); - dt.Load(connection.ExecuteReader("select 3 as [three], 4 as [four]")); - dt.Columns.Count.IsEqualTo(2); - dt.Columns[0].ColumnName.IsEqualTo("three"); - dt.Columns[1].ColumnName.IsEqualTo("four"); - dt.Rows.Count.IsEqualTo(1); - ((int)dt.Rows[0][0]).IsEqualTo(3); - ((int)dt.Rows[0][1]).IsEqualTo(4); - } -#endif - private class TestFieldCaseAndPrivatesEntity - { - public int a { get; set; } - private int b { get; set; } - public int GetB() { return b; } - public int c = 0; - private int d = 0; - public int GetD() { return d; } - public int e { get; set; } - private string f - { - get { return e.ToString(); } - set { e = int.Parse(value); } - } - } - - public void TestMultiReaderBasic() - { - var sql = @"select 1 as Id union all select 2 as Id select 'abc' as name select 1 as Id union all select 2 as Id"; - int i, j; - string s; - using (var multi = connection.QueryMultiple(sql)) - { - i = multi.Read().First(); - s = multi.Read().Single(); - j = multi.Read().Sum(); - } - Assert.IsEqualTo(i, 1); - Assert.IsEqualTo(s, "abc"); - Assert.IsEqualTo(j, 3); - } - public void TestMultiMappingVariations() - { - var sql = @"select 1 as Id, 'a' as Content, 2 as Id, 'b' as Content, 3 as Id, 'c' as Content, 4 as Id, 'd' as Content, 5 as Id, 'e' as Content"; - - var order = connection.Query(sql, (o, owner, creator) => { o.Owner = owner; o.Creator = creator; return o; }).First(); - - Assert.IsEqualTo(order.Id, 1); - Assert.IsEqualTo(order.Content, "a"); - Assert.IsEqualTo(order.Owner.Id, 2); - Assert.IsEqualTo(order.Owner.Content, "b"); - Assert.IsEqualTo(order.Creator.Id, 3); - Assert.IsEqualTo(order.Creator.Content, "c"); - - order = connection.Query(sql, (o, owner, creator, address) => - { - o.Owner = owner; - o.Creator = creator; - o.Owner.Address = address; - return o; - }).First(); - - Assert.IsEqualTo(order.Id, 1); - Assert.IsEqualTo(order.Content, "a"); - Assert.IsEqualTo(order.Owner.Id, 2); - Assert.IsEqualTo(order.Owner.Content, "b"); - Assert.IsEqualTo(order.Creator.Id, 3); - Assert.IsEqualTo(order.Creator.Content, "c"); - Assert.IsEqualTo(order.Owner.Address.Id, 4); - Assert.IsEqualTo(order.Owner.Address.Content, "d"); - - order = connection.Query(sql, (a, b, c, d, e) => { a.B = b; a.C = c; a.C.D = d; a.E = e; return a; }).First(); - - Assert.IsEqualTo(order.Id, 1); - Assert.IsEqualTo(order.Content, "a"); - Assert.IsEqualTo(order.B.Id, 2); - Assert.IsEqualTo(order.B.Content, "b"); - Assert.IsEqualTo(order.C.Id, 3); - Assert.IsEqualTo(order.C.Content, "c"); - Assert.IsEqualTo(order.C.D.Id, 4); - Assert.IsEqualTo(order.C.D.Content, "d"); - Assert.IsEqualTo(order.E.Id, 5); - Assert.IsEqualTo(order.E.Content, "e"); - - } - - class InheritanceTest1 - { - public string Base1 { get; set; } - public string Base2 { get; private set; } - } - - class InheritanceTest2 : InheritanceTest1 - { - public string Derived1 { get; set; } - public string Derived2 { get; private set; } - } - - public void TestInheritance() - { - // Test that inheritance works. - var list = connection.Query("select 'One' as Derived1, 'Two' as Derived2, 'Three' as Base1, 'Four' as Base2"); - list.First().Derived1.IsEqualTo("One"); - list.First().Derived2.IsEqualTo("Two"); - list.First().Base1.IsEqualTo("Three"); - list.First().Base2.IsEqualTo("Four"); - } - - - public class PostCE - { - public int ID { get; set; } - public string Title { get; set; } - public string Body { get; set; } - - public AuthorCE Author { get; set; } - } - - public class AuthorCE - { - public int ID { get; set; } - public string Name { get; set; } - } -#if EXTERNALS - public void MultiRSSqlCE() - { - if (File.Exists("Test.sdf")) - File.Delete("Test.sdf"); - - var cnnStr = "Data Source = Test.sdf;"; - var engine = new SqlCeEngine(cnnStr); - engine.CreateDatabase(); - - using (var cnn = new SqlCeConnection(cnnStr)) - { - cnn.Open(); - - cnn.Execute("create table Posts (ID int, Title nvarchar(50), Body nvarchar(50), AuthorID int)"); - cnn.Execute("create table Authors (ID int, Name nvarchar(50))"); - - cnn.Execute("insert Posts values (1,'title','body',1)"); - cnn.Execute("insert Posts values(2,'title2','body2',null)"); - cnn.Execute("insert Authors values(1,'sam')"); - - var data = cnn.Query(@"select * from Posts p left join Authors a on a.ID = p.AuthorID", (post, author) => { post.Author = author; return post; }).ToList(); - var firstPost = data.First(); - firstPost.Title.IsEqualTo("title"); - firstPost.Author.Name.IsEqualTo("sam"); - data[1].Author.IsNull(); - cnn.Close(); - } - } -#endif - enum TestEnum : byte - { - Bla = 1 - } - class TestEnumClass - { - public TestEnum? EnumEnum { get; set; } - } - class TestEnumClassNoNull - { - public TestEnum EnumEnum { get; set; } - } - public void TestEnumWeirdness() - { - connection.Query("select null as [EnumEnum]").First().EnumEnum.IsEqualTo(null); - connection.Query("select cast(1 as tinyint) as [EnumEnum]").First().EnumEnum.IsEqualTo(TestEnum.Bla); - } - public void TestEnumStrings() - { - connection.Query("select 'BLA' as [EnumEnum]").First().EnumEnum.IsEqualTo(TestEnum.Bla); - connection.Query("select 'bla' as [EnumEnum]").First().EnumEnum.IsEqualTo(TestEnum.Bla); - - connection.Query("select 'BLA' as [EnumEnum]").First().EnumEnum.IsEqualTo(TestEnum.Bla); - connection.Query("select 'bla' as [EnumEnum]").First().EnumEnum.IsEqualTo(TestEnum.Bla); - } - - public void TestSupportForDynamicParameters() - { - var p = new DynamicParameters(); - p.Add("name", "bob"); - p.Add("age", dbType: DbType.Int32, direction: ParameterDirection.Output); - - connection.Query("set @age = 11 select @name", p).First().IsEqualTo("bob"); - - p.Get("age").IsEqualTo(11); - } - - public void TestSupportForDynamicParametersOutputExpressions() - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - connection.Execute(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId", p); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - } - public void TestSupportForDynamicParametersOutputExpressions_Scalar() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = (int)connection.ExecuteScalar(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Query_Buffered() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = connection.Query(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p, buffered: true).Single(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - public void TestSupportForDynamicParametersOutputExpressions_Query_NonBuffered() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - var result = connection.Query(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -SET @AddressPersonId = @PersonId -select 42", p, buffered: false).Single(); - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - result.IsEqualTo(42); - } - } - - public void TestSupportForDynamicParametersOutputExpressions_QueryMultiple() - { - using (var connection = Program.GetOpenConnection()) - { - var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } }; - - var p = new DynamicParameters(bob); - p.Output(bob, b => b.PersonId); - p.Output(bob, b => b.Occupation); - p.Output(bob, b => b.NumberOfLegs); - p.Output(bob, b => b.Address.Name); - p.Output(bob, b => b.Address.PersonId); - - int x, y; - using (var multi = connection.QueryMultiple(@" -SET @Occupation = 'grillmaster' -SET @PersonId = @PersonId + 1 -SET @NumberOfLegs = @NumberOfLegs - 1 -SET @AddressName = 'bobs burgers' -select 42 -select 17 -SET @AddressPersonId = @PersonId", p)) - { - x = multi.Read().Single(); - y = multi.Read().Single(); - } - - bob.Occupation.IsEqualTo("grillmaster"); - bob.PersonId.IsEqualTo(2); - bob.NumberOfLegs.IsEqualTo(1); - bob.Address.Name.IsEqualTo("bobs burgers"); - bob.Address.PersonId.IsEqualTo(2); - x.IsEqualTo(42); - y.IsEqualTo(17); - } - } - public void TestSupportForExpandoObjectParameters() - { - dynamic p = new ExpandoObject(); - p.name = "bob"; - object parameters = p; - string result = connection.Query("select @name", parameters).First(); - result.IsEqualTo("bob"); - } - - public void TestProcSupport() - { - var p = new DynamicParameters(); - p.Add("a", 11); - p.Add("b", dbType: DbType.Int32, direction: ParameterDirection.Output); - p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); - - connection.Execute(@"create proc #TestProc - @a int, - @b int output -as -begin - set @b = 999 - select 1111 - return @a -end"); - connection.Query("#TestProc", p, commandType: CommandType.StoredProcedure).First().IsEqualTo(1111); - - p.Get("c").IsEqualTo(11); - p.Get("b").IsEqualTo(999); - - } - - public void TestDbString() - { - var obj = connection.Query("select datalength(@a) as a, datalength(@b) as b, datalength(@c) as c, datalength(@d) as d, datalength(@e) as e, datalength(@f) as f", - new - { - a = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = true }, - b = new DbString { Value = "abcde", IsFixedLength = true, Length = 10, IsAnsi = false }, - c = new DbString { Value = "abcde", IsFixedLength = false, Length = 10, IsAnsi = true }, - d = new DbString { Value = "abcde", IsFixedLength = false, Length = 10, IsAnsi = false }, - e = new DbString { Value = "abcde", IsAnsi = true }, - f = new DbString { Value = "abcde", IsAnsi = false }, - }).First(); - ((int)obj.a).IsEqualTo(10); - ((int)obj.b).IsEqualTo(20); - ((int)obj.c).IsEqualTo(5); - ((int)obj.d).IsEqualTo(10); - ((int)obj.e).IsEqualTo(5); - ((int)obj.f).IsEqualTo(10); - } - - class Person - { - public int PersonId { get; set; } - public string Name { get; set; } - public string Occupation { get; private set; } - public int NumberOfLegs = 2; - public Address Address { get; set; } - } - - class Address - { - public int AddressId { get; set; } - public string Name { get; set; } - public int PersonId { get; set; } - } - - class Extra - { - public int Id { get; set; } - public string Name { get; set; } - } - - public void TestFlexibleMultiMapping() - { - var sql = -@"select - 1 as PersonId, 'bob' as Name, - 2 as AddressId, 'abc street' as Name, 1 as PersonId, - 3 as Id, 'fred' as Name - "; - var personWithAddress = connection.Query> - (sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId,Id").First(); - - personWithAddress.Item1.PersonId.IsEqualTo(1); - personWithAddress.Item1.Name.IsEqualTo("bob"); - personWithAddress.Item2.AddressId.IsEqualTo(2); - personWithAddress.Item2.Name.IsEqualTo("abc street"); - personWithAddress.Item2.PersonId.IsEqualTo(1); - personWithAddress.Item3.Id.IsEqualTo(3); - personWithAddress.Item3.Name.IsEqualTo("fred"); - - } - - public void TestMultiMappingWithSplitOnSpaceBetweenCommas() - { - var sql = @"select - 1 as PersonId, 'bob' as Name, - 2 as AddressId, 'abc street' as Name, 1 as PersonId, - 3 as Id, 'fred' as Name - "; - var personWithAddress = connection.Query> - (sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId, Id").First(); - - personWithAddress.Item1.PersonId.IsEqualTo(1); - personWithAddress.Item1.Name.IsEqualTo("bob"); - personWithAddress.Item2.AddressId.IsEqualTo(2); - personWithAddress.Item2.Name.IsEqualTo("abc street"); - personWithAddress.Item2.PersonId.IsEqualTo(1); - personWithAddress.Item3.Id.IsEqualTo(3); - personWithAddress.Item3.Name.IsEqualTo("fred"); - - } - - public void TestMultiMappingWithNonReturnedProperty() - { - var sql = @"select - 1 as PostId, 'Title' as Title, - 2 as BlogId, 'Blog' as Title"; - var postWithBlog = connection.Query(sql, - (p, b) => - { - p.Blog = b; - return p; - }, splitOn: "BlogId").First(); - - postWithBlog.PostId.IsEqualTo(1); - postWithBlog.Title.IsEqualTo("Title"); - postWithBlog.Blog.BlogId.IsEqualTo(2); - postWithBlog.Blog.Title.IsEqualTo("Blog"); - } - - class Post_DupeProp - { - public int PostId { get; set; } - public string Title { get; set; } - public int BlogId { get; set; } - public Blog_DupeProp Blog { get; set; } - } - - class Blog_DupeProp - { - public int BlogId { get; set; } - public string Title { get; set; } - } - - public void TestFastExpandoSupportsIDictionary() - { - var row = connection.Query("select 1 A, 'two' B").First() as IDictionary; - row["A"].IsEqualTo(1); - row["B"].IsEqualTo("two"); - } - - - class PrivateDan - { - public int Shadow { get; set; } - private string ShadowInDB - { - set - { - Shadow = value == "one" ? 1 : 0; - } - } - } - public void TestDapperSetsPrivates() - { - connection.Query("select 'one' ShadowInDB").First().Shadow.IsEqualTo(1); - } - - - class IntDynamicParam : Dapper.SqlMapper.IDynamicParameters - { - IEnumerable numbers; - public IntDynamicParam(IEnumerable numbers) - { - this.numbers = numbers; - } - - public void AddParameters(IDbCommand command, Dapper.SqlMapper.Identity identity) - { - var sqlCommand = (SqlCommand)command; - sqlCommand.CommandType = CommandType.StoredProcedure; - - List number_list = new List(); - - // Create an SqlMetaData object that describes our table type. - Microsoft.SqlServer.Server.SqlMetaData[] tvp_definition = { new Microsoft.SqlServer.Server.SqlMetaData("n", SqlDbType.Int) }; - - foreach (int n in numbers) - { - // Create a new record, using the metadata array above. - Microsoft.SqlServer.Server.SqlDataRecord rec = new Microsoft.SqlServer.Server.SqlDataRecord(tvp_definition); - rec.SetInt32(0, n); // Set the value. - number_list.Add(rec); // Add it to the list. - } - - // Add the table parameter. - var p = sqlCommand.Parameters.Add("ints", SqlDbType.Structured); - p.Direction = ParameterDirection.Input; - p.TypeName = "int_list_type"; - p.Value = number_list; - - } - } -#if EXTERNALS - // SQL Server specific test to demonstrate TVP - public void TestTVP() - { - try - { - connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); - connection.Execute("CREATE PROC get_ints @ints int_list_type READONLY AS select * from @ints"); - - var nums = connection.Query("get_ints", new IntDynamicParam(new int[] { 1, 2, 3 })).ToList(); - nums[0].IsEqualTo(1); - nums[1].IsEqualTo(2); - nums[2].IsEqualTo(3); - nums.Count.IsEqualTo(3); - - } - finally - { - try - { - connection.Execute("DROP PROC get_ints"); - } - finally - { - connection.Execute("DROP TYPE int_list_type"); - } - } - } - - class DynamicParameterWithIntTVP : Dapper.DynamicParameters, Dapper.SqlMapper.IDynamicParameters - { - IEnumerable numbers; - public DynamicParameterWithIntTVP(IEnumerable numbers) - { - this.numbers = numbers; - } - - public new void AddParameters(IDbCommand command, Dapper.SqlMapper.Identity identity) - { - base.AddParameters(command, identity); - - var sqlCommand = (SqlCommand)command; - sqlCommand.CommandType = CommandType.StoredProcedure; - - List number_list = new List(); - - // Create an SqlMetaData object that describes our table type. - Microsoft.SqlServer.Server.SqlMetaData[] tvp_definition = { new Microsoft.SqlServer.Server.SqlMetaData("n", SqlDbType.Int) }; - - foreach (int n in numbers) - { - // Create a new record, using the metadata array above. - Microsoft.SqlServer.Server.SqlDataRecord rec = new Microsoft.SqlServer.Server.SqlDataRecord(tvp_definition); - rec.SetInt32(0, n); // Set the value. - number_list.Add(rec); // Add it to the list. - } - - // Add the table parameter. - var p = sqlCommand.Parameters.Add("ints", SqlDbType.Structured); - p.Direction = ParameterDirection.Input; - p.TypeName = "int_list_type"; - p.Value = number_list; - - } - } - - public void TestTVPWithAdditionalParams() - { - try - { - connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); - connection.Execute("CREATE PROC get_values @ints int_list_type READONLY, @stringParam varchar(20), @dateParam datetime AS select i.*, @stringParam as stringParam, @dateParam as dateParam from @ints i"); - - var dynamicParameters = new DynamicParameterWithIntTVP(new int[] { 1, 2, 3 }); - dynamicParameters.AddDynamicParams(new { stringParam = "stringParam", dateParam = new DateTime(2012, 1, 1) }); - - var results = connection.Query("get_values", dynamicParameters, commandType: CommandType.StoredProcedure).ToList(); - results.Count.IsEqualTo(3); - for (int i = 0; i < results.Count; i++) - { - var result = results[i]; - Assert.IsEqualTo(i + 1, result.n); - Assert.IsEqualTo("stringParam", result.stringParam); - Assert.IsEqualTo(new DateTime(2012, 1, 1), result.dateParam); - } - - } - finally - { - try - { - connection.Execute("DROP PROC get_values"); - } - finally - { - connection.Execute("DROP TYPE int_list_type"); - } - } - } -#endif - class IntCustomParam : Dapper.SqlMapper.ICustomQueryParameter - { - IEnumerable numbers; - public IntCustomParam(IEnumerable numbers) - { - this.numbers = numbers; - } - - public void AddParameter(IDbCommand command, string name) - { - var sqlCommand = (SqlCommand)command; - sqlCommand.CommandType = CommandType.StoredProcedure; - - List number_list = new List(); - - // Create an SqlMetaData object that describes our table type. - Microsoft.SqlServer.Server.SqlMetaData[] tvp_definition = { new Microsoft.SqlServer.Server.SqlMetaData("n", SqlDbType.Int) }; - - foreach (int n in numbers) - { - // Create a new record, using the metadata array above. - Microsoft.SqlServer.Server.SqlDataRecord rec = new Microsoft.SqlServer.Server.SqlDataRecord(tvp_definition); - rec.SetInt32(0, n); // Set the value. - number_list.Add(rec); // Add it to the list. - } - - // Add the table parameter. - var p = sqlCommand.Parameters.Add(name, SqlDbType.Structured); - p.Direction = ParameterDirection.Input; - p.TypeName = "int_list_type"; - p.Value = number_list; - } - } -#if EXTERNALS - public void TestTVPWithAnonymousObject() - { - try - { - connection.Execute("CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)"); - connection.Execute("CREATE PROC get_ints @integers int_list_type READONLY AS select * from @integers"); - - var nums = connection.Query("get_ints", new { integers = new IntCustomParam(new int[] { 1, 2, 3 }) }, commandType: CommandType.StoredProcedure).ToList(); - nums[0].IsEqualTo(1); - nums[1].IsEqualTo(2); - nums[2].IsEqualTo(3); - nums.Count.IsEqualTo(3); - - } - finally - { - try - { - connection.Execute("DROP PROC get_ints"); - } - finally - { - connection.Execute("DROP TYPE int_list_type"); - } - } - } -#endif - - class Parent - { - public int Id { get; set; } - public readonly List Children = new List(); - } - class Child - { - public int Id { get; set; } - } - public void ParentChildIdentityAssociations() - { - var lookup = new Dictionary(); - var parents = connection.Query(@"select 1 as [Id], 1 as [Id] union all select 1,2 union all select 2,3 union all select 1,4 union all select 3,5", - (parent, child) => - { - Parent found; - if (!lookup.TryGetValue(parent.Id, out found)) - { - lookup.Add(parent.Id, found = parent); - } - found.Children.Add(child); - return found; - }).Distinct().ToDictionary(p => p.Id); - parents.Count().IsEqualTo(3); - parents[1].Children.Select(c => c.Id).SequenceEqual(new[] { 1, 2, 4 }).IsTrue(); - parents[2].Children.Select(c => c.Id).SequenceEqual(new[] { 3 }).IsTrue(); - parents[3].Children.Select(c => c.Id).SequenceEqual(new[] { 5 }).IsTrue(); - } - - - /* TODO: - * - public void TestMagicParam() - { - // magic params allow you to pass in single params without using an anon class - // this test fails for now, but I would like to support a single param by parsing the sql with regex and remapping. - - var first = connection.Query("select @a as a", 1).First(); - Assert.IsEqualTo(first.a, 1); - } - * */ - - class WithBizarreData - { - public GenericUriParser Foo { get; set; } - public int Bar { get; set; } - } - - public void TestUnexpectedDataMessage() - { - string msg = null; - try - { - connection.Query("select count(1) where 1 = @Foo", new WithBizarreData { Foo = new GenericUriParser(GenericUriParserOptions.Default), Bar = 23 }).First(); - - } - catch (Exception ex) - { - msg = ex.Message; - } - msg.IsEqualTo("The member Foo of type System.GenericUriParser cannot be used as a parameter value"); - } - - public void TestUnexpectedButFilteredDataMessage() - { - int i = connection.Query("select @Bar", new WithBizarreData { Foo = new GenericUriParser(GenericUriParserOptions.Default), Bar = 23 }).Single(); - - i.IsEqualTo(23); - } - - class WithCharValue - { - public char Value { get; set; } - public char? ValueNullable { get; set; } - } - public void TestCharInputAndOutput() - { - const char test = '〠'; - char c = connection.Query("select @c", new { c = test }).Single(); - - c.IsEqualTo(test); - - var obj = connection.Query("select @Value as Value", new WithCharValue { Value = c }).Single(); - - obj.Value.IsEqualTo(test); - } - public void TestNullableCharInputAndOutputNonNull() - { - char? test = '〠'; - char? c = connection.Query("select @c", new { c = test }).Single(); - - c.IsEqualTo(test); - - var obj = connection.Query("select @ValueNullable as ValueNullable", new WithCharValue { ValueNullable = c }).Single(); - - obj.ValueNullable.IsEqualTo(test); - } - public void TestNullableCharInputAndOutputNull() - { - char? test = null; - char? c = connection.Query("select @c", new { c = test }).Single(); - - c.IsEqualTo(test); - - var obj = connection.Query("select @ValueNullable as ValueNullable", new WithCharValue { ValueNullable = c }).Single(); - - obj.ValueNullable.IsEqualTo(test); - } - public void TestInvalidSplitCausesNiceError() - { - try - { - connection.Query("select 1 A, 2 B, 3 C", (x, y) => x); - } - catch (ArgumentException) - { - // expecting an app exception due to multi mapping being bodged - } - - try - { - connection.Query("select 1 A, 2 B, 3 C", (x, y) => x); - } - catch (ArgumentException) - { - // expecting an app exception due to multi mapping being bodged - } - } - - - - class Comment - { - public int Id { get; set; } - public string CommentData { get; set; } - } - - - public void TestMultiMapThreeTypesWithGridReader() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - create table #Comments (Id int, PostId int, CommentData varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post') - - insert #Comments values(1, 1, 'Comment 1')"; - connection.Execute(createSql); - try - { - var sql = @"SELECT p.* FROM #Posts p - -select p.*, u.Id, u.Name + '0' Name, c.Id, c.CommentData from #Posts p -left join #Users u on u.Id = p.OwnerId -left join #Comments c on c.PostId = p.Id -where p.Id = 1 -Order by p.Id"; - - var grid = connection.QueryMultiple(sql); - - var post1 = grid.Read().ToList(); - - var post2 = grid.Read((post, user, comment) => { post.Owner = user; post.Comment = comment; return post; }).SingleOrDefault(); - - post2.Comment.Id.IsEqualTo(1); - post2.Owner.Id.IsEqualTo(99); - - } - finally - { - connection.Execute("drop table #Users drop table #Posts drop table #Comments"); - } - } - - public class DbParams : Dapper.SqlMapper.IDynamicParameters, IEnumerable - { - private readonly List parameters = new List(); - public IEnumerator GetEnumerator() { return parameters.GetEnumerator(); } - IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } - public void Add(IDbDataParameter value) - { - parameters.Add(value); - } - void Dapper.SqlMapper.IDynamicParameters.AddParameters(IDbCommand command, - Dapper.SqlMapper.Identity identity) - { - foreach (IDbDataParameter parameter in parameters) - command.Parameters.Add(parameter); - - } - } - public void TestCustomParameters() - { - var args = new DbParams { - new SqlParameter("foo", 123), - new SqlParameter("bar", "abc") - }; - var result = connection.Query("select Foo=@foo, Bar=@bar", args).Single(); - int foo = result.Foo; - string bar = result.Bar; - foo.IsEqualTo(123); - bar.IsEqualTo("abc"); - } - - - public void TestReadDynamicWithGridReader() - { - var createSql = @" - create table #Users (Id int, Name varchar(20)) - create table #Posts (Id int, OwnerId int, Content varchar(20)) - - insert #Users values(99, 'Sam') - insert #Users values(2, 'I am') - - insert #Posts values(1, 99, 'Sams Post1') - insert #Posts values(2, 99, 'Sams Post2') - insert #Posts values(3, null, 'no ones post')"; - try - { - connection.Execute(createSql); - - var sql = @"SELECT * FROM #Users ORDER BY Id - SELECT * FROM #Posts ORDER BY Id DESC"; - - var grid = connection.QueryMultiple(sql); - - var users = grid.Read().ToList(); - var posts = grid.Read().ToList(); - - users.Count.IsEqualTo(2); - posts.Count.IsEqualTo(3); - - ((int)users.First().Id).IsEqualTo(2); - ((int)posts.First().Id).IsEqualTo(3); - } - finally - { - connection.Execute("drop table #Users drop table #Posts"); - } - } - - public void TestDynamicParamNullSupport() - { - var p = new DynamicParameters(); - - p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output); - connection.Execute("select @b = null", p); - - p.Get("@b").IsNull(); - } - class Foo1 - { -#pragma warning disable 0649 - public int Id; -#pragma warning restore 0649 - public int BarId { get; set; } - } - class Bar1 - { -#pragma warning disable 0649 - public int BarId; -#pragma warning restore 0649 - public string Name { get; set; } - } - public void TestMultiMapperIsNotConfusedWithUnorderedCols() - { - var result = connection.Query>("select 1 as Id, 2 as BarId, 3 as BarId, 'a' as Name", (f, b) => Tuple.Create(f, b), splitOn: "BarId").First(); - - result.Item1.Id.IsEqualTo(1); - result.Item1.BarId.IsEqualTo(2); - result.Item2.BarId.IsEqualTo(3); - result.Item2.Name.IsEqualTo("a"); - } - -#if EXTERNALS - public void TestLinqBinaryToClass() - { - byte[] orig = new byte[20]; - new Random(123456).NextBytes(orig); - var input = new System.Data.Linq.Binary(orig); - - var output = connection.Query("select @input as [Value]", new { input }).First().Value; - - output.ToArray().IsSequenceEqualTo(orig); - } - - public void TestLinqBinaryRaw() - { - byte[] orig = new byte[20]; - new Random(123456).NextBytes(orig); - var input = new System.Data.Linq.Binary(orig); - - var output = connection.Query("select @input as [Value]", new { input }).First(); - - output.ToArray().IsSequenceEqualTo(orig); - } - - class WithBinary - { - public System.Data.Linq.Binary Value { get; set; } - } -#endif - - class WithPrivateConstructor - { - public int Foo { get; set; } - private WithPrivateConstructor() { } - } - - public void TestWithNonPublicConstructor() - { - var output = connection.Query("select 1 as Foo").First(); - output.Foo.IsEqualTo(1); - } - - public void TestAppendingAnonClasses() - { - DynamicParameters p = new DynamicParameters(); - p.AddDynamicParams(new { A = 1, B = 2 }); - p.AddDynamicParams(new { C = 3, D = 4 }); - - var result = connection.Query("select @A a,@B b,@C c,@D d", p).Single(); - - ((int)result.a).IsEqualTo(1); - ((int)result.b).IsEqualTo(2); - ((int)result.c).IsEqualTo(3); - ((int)result.d).IsEqualTo(4); - } - - public void TestAppendingADictionary() - { - var dictionary = new Dictionary(); - dictionary.Add("A", 1); - dictionary.Add("B", "two"); - - DynamicParameters p = new DynamicParameters(); - p.AddDynamicParams(dictionary); - - var result = connection.Query("select @A a, @B b", p).Single(); - - ((int)result.a).IsEqualTo(1); - ((string)result.b).IsEqualTo("two"); - } - - public void TestAppendingAnExpandoObject() - { - dynamic expando = new System.Dynamic.ExpandoObject(); - expando.A = 1; - expando.B = "two"; - - DynamicParameters p = new DynamicParameters(); - p.AddDynamicParams(expando); - - var result = connection.Query("select @A a, @B b", p).Single(); - - ((int)result.a).IsEqualTo(1); - ((string)result.b).IsEqualTo("two"); - } - - public void TestAppendingAList() - { - DynamicParameters p = new DynamicParameters(); - var list = new int[] { 1, 2, 3 }; - p.AddDynamicParams(new { list }); - - var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @list", p).ToList(); - - result[0].IsEqualTo(1); - result[1].IsEqualTo(2); - result[2].IsEqualTo(3); - } - - public void TestAppendingAListAsDictionary() - { - DynamicParameters p = new DynamicParameters(); - var list = new int[] { 1, 2, 3 }; - var args = new Dictionary(); - args.Add("ids", list); - p.AddDynamicParams(args); - - var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @ids", p).ToList(); - - result[0].IsEqualTo(1); - result[1].IsEqualTo(2); - result[2].IsEqualTo(3); - } - - public void TestAppendingAListByName() - { - DynamicParameters p = new DynamicParameters(); - var list = new int[] { 1, 2, 3 }; - p.Add("ids", list); - - var result = connection.Query("select * from (select 1 A union all select 2 union all select 3) X where A in @ids", p).ToList(); - - result[0].IsEqualTo(1); - result[1].IsEqualTo(2); - result[2].IsEqualTo(3); - } - - public void TestUniqueIdentifier() - { - var guid = Guid.NewGuid(); - var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); - result.IsEqualTo(guid); - } - public void TestNullableUniqueIdentifierNonNull() - { - Guid? guid = Guid.NewGuid(); - var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); - result.IsEqualTo(guid); - } - public void TestNullableUniqueIdentifierNull() - { - Guid? guid = null; - var result = connection.Query("declare @foo uniqueidentifier set @foo = @guid select @foo", new { guid }).Single(); - result.IsEqualTo(guid); - } - - - public void WorkDespiteHavingWrongStructColumnTypes() - { - var hazInt = connection.Query("select cast(1 as bigint) Value").Single(); - hazInt.Value.Equals(1); - } - - - public void TestProcWithOutParameter() - { - connection.Execute( - @"CREATE PROCEDURE #TestProcWithOutParameter - @ID int output, - @Foo varchar(100), - @Bar int - AS - SET @ID = @Bar + LEN(@Foo)"); - var obj = new - { - ID = 0, - Foo = "abc", - Bar = 4 - }; - var args = new DynamicParameters(obj); - args.Add("ID", 0, direction: ParameterDirection.Output); - connection.Execute("#TestProcWithOutParameter", args, commandType: CommandType.StoredProcedure); - args.Get("ID").IsEqualTo(7); - } - public void TestProcWithOutAndReturnParameter() - { - connection.Execute( - @"CREATE PROCEDURE #TestProcWithOutAndReturnParameter - @ID int output, - @Foo varchar(100), - @Bar int - AS - SET @ID = @Bar + LEN(@Foo) - RETURN 42"); - var obj = new - { - ID = 0, - Foo = "abc", - Bar = 4 - }; - var args = new DynamicParameters(obj); - args.Add("ID", 0, direction: ParameterDirection.Output); - args.Add("result", 0, direction: ParameterDirection.ReturnValue); - connection.Execute("#TestProcWithOutAndReturnParameter", args, commandType: CommandType.StoredProcedure); - args.Get("ID").IsEqualTo(7); - args.Get("result").IsEqualTo(42); - } - struct CanHazInt - { - public int Value { get; set; } - } - public void TestInt16Usage() - { - connection.Query("select cast(42 as smallint)").Single().IsEqualTo((short)42); - connection.Query("select cast(42 as smallint)").Single().IsEqualTo((short?)42); - connection.Query("select cast(null as smallint)").Single().IsEqualTo((short?)null); - - connection.Query("select cast(42 as smallint)").Single().IsEqualTo((ShortEnum)42); - connection.Query("select cast(42 as smallint)").Single().IsEqualTo((ShortEnum?)42); - connection.Query("select cast(null as smallint)").Single().IsEqualTo((ShortEnum?)null); - - var row = - connection.Query( - "select cast(1 as smallint) as NonNullableInt16, cast(2 as smallint) as NullableInt16, cast(3 as smallint) as NonNullableInt16Enum, cast(4 as smallint) as NullableInt16Enum") - .Single(); - row.NonNullableInt16.IsEqualTo((short)1); - row.NullableInt16.IsEqualTo((short)2); - row.NonNullableInt16Enum.IsEqualTo(ShortEnum.Three); - row.NullableInt16Enum.IsEqualTo(ShortEnum.Four); - - row = - connection.Query( - "select cast(5 as smallint) as NonNullableInt16, cast(null as smallint) as NullableInt16, cast(6 as smallint) as NonNullableInt16Enum, cast(null as smallint) as NullableInt16Enum") - .Single(); - row.NonNullableInt16.IsEqualTo((short)5); - row.NullableInt16.IsEqualTo((short?)null); - row.NonNullableInt16Enum.IsEqualTo(ShortEnum.Six); - row.NullableInt16Enum.IsEqualTo((ShortEnum?)null); - } - public void TestInt32Usage() - { - connection.Query("select cast(42 as int)").Single().IsEqualTo((int)42); - connection.Query("select cast(42 as int)").Single().IsEqualTo((int?)42); - connection.Query("select cast(null as int)").Single().IsEqualTo((int?)null); - - connection.Query("select cast(42 as int)").Single().IsEqualTo((IntEnum)42); - connection.Query("select cast(42 as int)").Single().IsEqualTo((IntEnum?)42); - connection.Query("select cast(null as int)").Single().IsEqualTo((IntEnum?)null); - - var row = - connection.Query( - "select cast(1 as int) as NonNullableInt32, cast(2 as int) as NullableInt32, cast(3 as int) as NonNullableInt32Enum, cast(4 as int) as NullableInt32Enum") - .Single(); - row.NonNullableInt32.IsEqualTo((int)1); - row.NullableInt32.IsEqualTo((int)2); - row.NonNullableInt32Enum.IsEqualTo(IntEnum.Three); - row.NullableInt32Enum.IsEqualTo(IntEnum.Four); - - row = - connection.Query( - "select cast(5 as int) as NonNullableInt32, cast(null as int) as NullableInt32, cast(6 as int) as NonNullableInt32Enum, cast(null as int) as NullableInt32Enum") - .Single(); - row.NonNullableInt32.IsEqualTo((int)5); - row.NullableInt32.IsEqualTo((int?)null); - row.NonNullableInt32Enum.IsEqualTo(IntEnum.Six); - row.NullableInt32Enum.IsEqualTo((IntEnum?)null); - } - - public class WithInt16Values - { - public short NonNullableInt16 { get; set; } - public short? NullableInt16 { get; set; } - public ShortEnum NonNullableInt16Enum { get; set; } - public ShortEnum? NullableInt16Enum { get; set; } - } - public enum ShortEnum : short - { - Zero = 0, One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6 - } - public class WithInt32Values - { - public int NonNullableInt32 { get; set; } - public int? NullableInt32 { get; set; } - public IntEnum NonNullableInt32Enum { get; set; } - public IntEnum? NullableInt32Enum { get; set; } - } - public enum IntEnum : int - { - Zero = 0, One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6 - } - - public void TestTransactionCommit() - { - try - { - connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); - - using (var transaction = connection.BeginTransaction()) - { - connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction); - - transaction.Commit(); - } - - connection.Query("select count(*) from #TransactionTest;").Single().IsEqualTo(1); - } - finally - { - connection.Execute("drop table #TransactionTest;"); - } - } - - public void TestTransactionRollback() - { - connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); - - try - { - using (var transaction = connection.BeginTransaction()) - { - connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction); - - transaction.Rollback(); - } - - connection.Query("select count(*) from #TransactionTest;").Single().IsEqualTo(0); - } - finally - { - connection.Execute("drop table #TransactionTest;"); - } - } - - public void TestCommandWithInheritedTransaction() - { - connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));"); - - try - { - using (var transaction = connection.BeginTransaction()) - { - var transactedConnection = new TransactedConnection(connection, transaction); - - transactedConnection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');"); - - transaction.Rollback(); - } - - connection.Query("select count(*) from #TransactionTest;").Single().IsEqualTo(0); - } - finally - { - connection.Execute("drop table #TransactionTest;"); - } - } - - public void TestReaderWhenResultsChange() - { - try - { - - connection.Execute("create table #ResultsChange (X int);create table #ResultsChange2 (Y int);insert #ResultsChange (X) values(1);insert #ResultsChange2 (Y) values(1);"); - - var obj1 = connection.Query("select * from #ResultsChange").Single(); - obj1.X.IsEqualTo(1); - obj1.Y.IsEqualTo(0); - obj1.Z.IsEqualTo(0); - - var obj2 = connection.Query("select * from #ResultsChange rc inner join #ResultsChange2 rc2 on rc2.Y=rc.X").Single(); - obj2.X.IsEqualTo(1); - obj2.Y.IsEqualTo(1); - obj2.Z.IsEqualTo(0); - - connection.Execute("alter table #ResultsChange add Z int null"); - connection.Execute("update #ResultsChange set Z = 2"); - - var obj3 = connection.Query("select * from #ResultsChange").Single(); - obj3.X.IsEqualTo(1); - obj3.Y.IsEqualTo(0); - obj3.Z.IsEqualTo(2); - - var obj4 = connection.Query("select * from #ResultsChange rc inner join #ResultsChange2 rc2 on rc2.Y=rc.X").Single(); - obj4.X.IsEqualTo(1); - obj4.Y.IsEqualTo(1); - obj4.Z.IsEqualTo(2); - } - finally - { - connection.Execute("drop table #ResultsChange;drop table #ResultsChange2;"); - } - } - class ResultsChangeType - { - public int X { get; set; } - public int Y { get; set; } - public int Z { get; set; } - } - - public void TestCustomTypeMap() - { - // default mapping - var item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); - item.A.IsEqualTo("AVal"); - item.B.IsEqualTo("BVal"); - - // custom mapping - var map = new CustomPropertyTypeMap(typeof(TypeWithMapping), - (type, columnName) => type.GetProperties().Where(prop => GetDescriptionFromAttribute(prop) == columnName).FirstOrDefault()); - Dapper.SqlMapper.SetTypeMap(typeof(TypeWithMapping), map); - - item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); - item.A.IsEqualTo("BVal"); - item.B.IsEqualTo("AVal"); - - // reset to default - Dapper.SqlMapper.SetTypeMap(typeof(TypeWithMapping), null); - item = connection.Query("Select 'AVal' as A, 'BVal' as B").Single(); - item.A.IsEqualTo("AVal"); - item.B.IsEqualTo("BVal"); - } - static string GetDescriptionFromAttribute(MemberInfo member) - { - if (member == null) return null; -#if DNXCORE50 - var data = member.CustomAttributes.FirstOrDefault(x => x.AttributeType == typeof(DescriptionAttribute)); - return data == null ? null : (string)data.ConstructorArguments.Single().Value; -#else - var attrib = (DescriptionAttribute)Attribute.GetCustomAttribute(member, typeof(DescriptionAttribute), false); - return attrib == null ? null : attrib.Description; -#endif - } - public class TypeWithMapping - { - [Description("B")] - public string A { get; set; } - - [Description("A")] - public string B { get; set; } - } - - public class WrongTypes - { - public int A { get; set; } - public double B { get; set; } - public long C { get; set; } - public bool D { get; set; } - } - - public void TestWrongTypes_WithRightTypes() - { - var item = connection.Query("select 1 as A, cast(2.0 as float) as B, cast(3 as bigint) as C, cast(1 as bit) as D").Single(); - item.A.Equals(1); - item.B.Equals(2.0); - item.C.Equals(3L); - item.D.Equals(true); - } - - public void TestWrongTypes_WithWrongTypes() - { - var item = connection.Query("select cast(1.0 as float) as A, 2 as B, 3 as C, cast(1 as bigint) as D").Single(); - item.A.Equals(1); - item.B.Equals(2.0); - item.C.Equals(3L); - item.D.Equals(true); - } - - public void Test_AddDynamicParametersRepeatedShouldWork() - { - var args = new DynamicParameters(); - args.AddDynamicParams(new { Foo = 123 }); - args.AddDynamicParams(new { Foo = 123 }); - int i = connection.Query("select @Foo", args).Single(); - i.IsEqualTo(123); - } - - - public class ParameterWithIndexer - { - public int A { get; set; } - public virtual string this[string columnName] - { - get { return null; } - set { } - } - } - - public void TestParameterWithIndexer() - { - connection.Execute(@"create proc #TestProcWithIndexer - @A int -as -begin - select @A -end"); - var item = connection.Query("#TestProcWithIndexer", new ParameterWithIndexer(), commandType: CommandType.StoredProcedure).Single(); - } - - public class MultipleParametersWithIndexerDeclaringType - { - public object this[object field] { get { return null; } set { } } - public object this[object field, int index] { get { return null; } set { } } - public int B { get; set; } - } - - public class MultipleParametersWithIndexer : MultipleParametersWithIndexerDeclaringType - { - public int A { get; set; } - } - - public void TestMultipleParametersWithIndexer() - { - var order = connection.Query("select 1 A,2 B").First(); - - order.A.IsEqualTo(1); - order.B.IsEqualTo(2); - } - - public void Issue_40_AutomaticBoolConversion() - { - var user = connection.Query("select UserId=1,Email='abc',Password='changeme',Active=cast(1 as tinyint)").Single(); - user.Active.IsTrue(); - user.UserID.IsEqualTo(1); - user.Email.IsEqualTo("abc"); - user.Password.IsEqualTo("changeme"); - } - - public class Issue40_User - { - public Issue40_User() - { - Email = Password = String.Empty; - } - public int UserID { get; set; } - public string Email { get; set; } - public string Password { get; set; } - public bool Active { get; set; } - } - - SqlConnection GetClosedConnection() - { - var conn = new SqlConnection(connection.ConnectionString); - if (conn.State != ConnectionState.Closed) throw new InvalidOperationException("should be closed!"); - return conn; - } - public void ExecuteFromClosed() - { - using (var conn = GetClosedConnection()) - { - conn.Execute("-- nop"); - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - class Multi1 - { - public int Id { get; set; } - } - class Multi2 - { - public int Id { get; set; } - } - public void QueryMultimapFromClosed() - { - using (var conn = GetClosedConnection()) - { - conn.State.IsEqualTo(ConnectionState.Closed); - var i = conn.Query("select 2 as [Id], 3 as [Id]", (x, y) => x.Id + y.Id).Single(); - conn.State.IsEqualTo(ConnectionState.Closed); - i.IsEqualTo(5); - } - } - public void QueryMultiple2FromClosed() - { - using (var conn = GetClosedConnection()) - { - conn.State.IsEqualTo(ConnectionState.Closed); - using (var multi = conn.QueryMultiple("select 1 select 2 select 3")) - { - multi.Read().Single().IsEqualTo(1); - multi.Read().Single().IsEqualTo(2); - // not reading 3 is intentional here - } - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - public void ExecuteInvalidFromClosed() - { - using (var conn = GetClosedConnection()) - { - try - { - conn.Execute("nop"); - false.IsEqualTo(true); // shouldn't have got here - } - catch - { - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - } - public void QueryFromClosed() - { - using (var conn = GetClosedConnection()) - { - var i = conn.Query("select 1").Single(); - conn.State.IsEqualTo(ConnectionState.Closed); - i.IsEqualTo(1); - } - } - public void QueryInvalidFromClosed() - { - using (var conn = GetClosedConnection()) - { - try - { - conn.Query("select gibberish").Single(); - false.IsEqualTo(true); // shouldn't have got here - } - catch - { - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - } - public void QueryMultipleFromClosed() - { - using (var conn = GetClosedConnection()) - { - using (var multi = conn.QueryMultiple("select 1; select 'abc';")) - { - multi.Read().Single().IsEqualTo(1); - multi.Read().Single().IsEqualTo("abc"); - } - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - public void QueryMultipleInvalidFromClosed() - { - using (var conn = GetClosedConnection()) - { - try - { - conn.QueryMultiple("select gibberish"); - false.IsEqualTo(true); // shouldn't have got here - } - catch - { - conn.State.IsEqualTo(ConnectionState.Closed); - } - } - } - - public void TestMultiSelectWithSomeEmptyGrids() - { - using (var reader = connection.QueryMultiple("select 1; select 2 where 1 = 0; select 3 where 1 = 0; select 4;")) - { - var one = reader.Read().ToArray(); - var two = reader.Read().ToArray(); - var three = reader.Read().ToArray(); - var four = reader.Read().ToArray(); - try - { // only returned four grids; expect a fifth read to fail - reader.Read(); - throw new InvalidOperationException("this should not have worked!"); - } - catch (ObjectDisposedException ex) - { // expected; success - ex.Message.IsEqualTo("The reader has been disposed; this can happen after all data has been consumed\r\nObject name: 'Dapper.SqlMapper+GridReader'."); - } - - one.Length.IsEqualTo(1); - one[0].IsEqualTo(1); - two.Length.IsEqualTo(0); - three.Length.IsEqualTo(0); - four.Length.IsEqualTo(1); - four[0].IsEqualTo(4); - } - } - - public void TestDynamicMutation() - { - var obj = connection.Query("select 1 as [a], 2 as [b], 3 as [c]").Single(); - ((int)obj.a).IsEqualTo(1); - IDictionary dict = obj; - Assert.Equals(3, dict.Count); - Assert.IsTrue(dict.Remove("a")); - Assert.IsFalse(dict.Remove("d")); - Assert.Equals(2, dict.Count); - dict.Add("d", 4); - Assert.Equals(3, dict.Count); - Assert.Equals("b,c,d", string.Join(",", dict.Keys.OrderBy(x => x))); - Assert.Equals("2,3,4", string.Join(",", dict.OrderBy(x => x.Key).Select(x => x.Value))); - - Assert.Equals(2, (int)obj.b); - Assert.Equals(3, (int)obj.c); - Assert.Equals(4, (int)obj.d); - try - { - ((int)obj.a).IsEqualTo(1); - throw new InvalidOperationException("should have thrown"); - } - catch (RuntimeBinderException) - { - // pass - } - } - - public void TestIssue131() - { - var results = connection.Query( - "SELECT 1 Id, 'Mr' Title, 'John' Surname, 4 AddressCount", - (person, addressCount) => - { - return person; - }, - splitOn: "AddressCount" - ).FirstOrDefault(); - - var asDict = (IDictionary)results; - - asDict.ContainsKey("Id").IsEqualTo(true); - asDict.ContainsKey("Title").IsEqualTo(true); - asDict.ContainsKey("Surname").IsEqualTo(true); - asDict.ContainsKey("AddressCount").IsEqualTo(false); - } - // see http://stackoverflow.com/questions/16955357/issue-about-dapper - public void TestSplitWithMissingMembers() - { - var result = connection.Query( - @"select 123 as ID, 'abc' as Title, - cast('01 Feb 2013' as datetime) as CreateDate, - 'ghi' as Name, 'def' as Phone", - (T, P) => { T.Author = P; return T; }, - null, null, true, "ID,Name").Single(); - - result.ID.Equals(123); - result.Title.Equals("abc"); - result.CreateDate.Equals(new DateTime(2013, 2, 1)); - result.Name.IsNull(); - result.Content.IsNull(); - - result.Author.Phone.Equals("def"); - result.Author.Name.Equals("ghi"); - result.Author.ID.Equals(0); - result.Author.Address.IsNull(); - } - public class Profile - { - public int ID { get; set; } - public string Name { get; set; } - public string Phone { get; set; } - public string Address { get; set; } - //public ExtraInfo Extra { get; set; } - } - - public class Topic - { - public int ID { get; set; } - public string Title { get; set; } - public DateTime CreateDate { get; set; } - public string Content { get; set; } - public int UID { get; set; } - public int TestColum { get; set; } - public string Name { get; set; } - public Profile Author { get; set; } - //public Attachment Attach { get; set; } - } - - // see http://stackoverflow.com/questions/13127886/dapper-returns-null-for-singleordefaultdatediff - public void TestNullFromInt_NoRows() - { - var result = connection.Query( // case with rows - "select DATEDIFF(day, GETUTCDATE(), @date)", new { date = DateTime.UtcNow.AddDays(20) }) - .SingleOrDefault(); - result.IsEqualTo(20); - - result = connection.Query( // case without rows - "select DATEDIFF(day, GETUTCDATE(), @date) where 1 = 0", new { date = DateTime.UtcNow.AddDays(20) }) - .SingleOrDefault(); - result.IsEqualTo(0); // zero rows; default of int over zero rows is zero - - - } - - public void TestChangingDefaultStringTypeMappingToAnsiString() - { - var sql = "SELECT SQL_VARIANT_PROPERTY(CONVERT(sql_variant, @testParam),'BaseType') AS BaseType"; - var param = new { testParam = "TestString" }; - - var result01 = connection.Query(sql, param).FirstOrDefault(); - result01.IsEqualTo("nvarchar"); - - Dapper.SqlMapper.PurgeQueryCache(); - - Dapper.SqlMapper.AddTypeMap(typeof(string), DbType.AnsiString); // Change Default String Handling to AnsiString - var result02 = connection.Query(sql, param).FirstOrDefault(); - result02.IsEqualTo("varchar"); - - Dapper.SqlMapper.PurgeQueryCache(); - Dapper.SqlMapper.AddTypeMap(typeof(string), DbType.String); // Restore Default to Unicode String - } -#if DNXCORE50 - class TransactedConnection : IDbConnection - { - IDbConnection _conn; - IDbTransaction _tran; - - public TransactedConnection(IDbConnection conn, IDbTransaction tran) - { - _conn = conn; - _tran = tran; - } - - public override string ConnectionString { get { return _conn.ConnectionString; } set { _conn.ConnectionString = value; } } - public override int ConnectionTimeout { get { return _conn.ConnectionTimeout; } } - public override string Database { get { return _conn.Database; } } - public override ConnectionState State { get { return _conn.State; } } - - protected override IDbTransaction BeginDbTransaction(IsolationLevel isolationLevel) - { - return _tran; - } - - public override void ChangeDatabase(string databaseName) - { - _conn.ChangeDatabase(databaseName); - } - public override string DataSource - { - get - { - return _conn.DataSource; - } - } - public override string ServerVersion - { - get - { - return _conn.ServerVersion; - } - } - public override void Close() - { - _conn.Close(); - } - protected override IDbCommand CreateDbCommand() - { - // The command inherits the "current" transaction. - var command = _conn.CreateCommand(); - command.Transaction = _tran; - return command; - } - - protected override void Dispose(bool disposing) - { - if(disposing) _conn.Dispose(); - base.Dispose(disposing); - } - - public override void Open() - { - _conn.Open(); - } - } -#else - class TransactedConnection : IDbConnection - { - IDbConnection _conn; - IDbTransaction _tran; - - public TransactedConnection(IDbConnection conn, IDbTransaction tran) - { - _conn = conn; - _tran = tran; - } - - public string ConnectionString { get { return _conn.ConnectionString; } set { _conn.ConnectionString = value; } } - public int ConnectionTimeout { get { return _conn.ConnectionTimeout; } } - public string Database { get { return _conn.Database; } } - public ConnectionState State { get { return _conn.State; } } - - public IDbTransaction BeginTransaction(IsolationLevel il) - { - throw new NotImplementedException(); - } - - public IDbTransaction BeginTransaction() - { - return _tran; - } - - public void ChangeDatabase(string databaseName) - { - _conn.ChangeDatabase(databaseName); - } - - public void Close() - { - _conn.Close(); - } - - public IDbCommand CreateCommand() - { - // The command inherits the "current" transaction. - var command = _conn.CreateCommand(); - command.Transaction = _tran; - return command; - } - - public void Dispose() - { - _conn.Dispose(); - } - - public void Open() - { - _conn.Open(); - } - } -#endif - public void TestDapperTableMetadataRetrieval() - { - // Test for a bug found in CS 51509960 where the following sequence would result in an InvalidOperationException being - // thrown due to an attempt to access a disposed of DataReader: - // - // - Perform a dynamic query that yields no results - // - Add data to the source of that query - // - Perform a the same query again - connection.Execute("CREATE TABLE #sut (value varchar(10) NOT NULL PRIMARY KEY)"); - connection.Query("SELECT value FROM #sut").IsSequenceEqualTo(Enumerable.Empty()); - - connection.Execute("INSERT INTO #sut (value) VALUES ('test')").IsEqualTo(1); - var result = connection.Query("SELECT value FROM #sut"); - - var first = result.First(); - ((string)first.value).IsEqualTo("test"); - } - - public void TestIssue17648290() - { - var p = new DynamicParameters(); - int code = 1, getMessageControlId = 2; - p.Add("@Code", code); - p.Add("@MessageControlID", getMessageControlId); - p.Add("@SuccessCode", dbType: DbType.Int32, direction: ParameterDirection.Output); - p.Add("@ErrorDescription", dbType: DbType.String, direction: ParameterDirection.Output, size: 255); - connection.Execute(@"CREATE PROCEDURE #up_MessageProcessed_get - @Code varchar(10), - @MessageControlID varchar(22), - @SuccessCode int OUTPUT, - @ErrorDescription varchar(255) OUTPUT - AS - - BEGIN - - Select 2 as MessageProcessID, 38349348 as StartNum, 3874900 as EndNum, GETDATE() as StartDate, GETDATE() as EndDate - SET @SuccessCode = 0 - SET @ErrorDescription = 'Completed successfully' - END"); - var result = connection.Query(sql: "#up_MessageProcessed_get", param: p, commandType: CommandType.StoredProcedure); - var row = result.Single(); - ((int)row.MessageProcessID).IsEqualTo(2); - ((int)row.StartNum).IsEqualTo(38349348); - ((int)row.EndNum).IsEqualTo(3874900); - DateTime startDate = row.StartDate, endDate = row.EndDate; - p.Get("SuccessCode").IsEqualTo(0); - p.Get("ErrorDescription").IsEqualTo("Completed successfully"); - } - - public void TestDoubleDecimalConversions_SO18228523_RightWay() - { - var row = connection.Query( - "select cast(1 as float) as A, cast(2 as float) as B, cast(3 as decimal) as C, cast(4 as decimal) as D").Single(); - row.A.Equals(1.0); - row.B.Equals(2.0); - row.C.Equals(3.0M); - row.D.Equals(4.0M); - } - public void TestDoubleDecimalConversions_SO18228523_WrongWay() - { - var row = connection.Query( - "select cast(1 as decimal) as A, cast(2 as decimal) as B, cast(3 as float) as C, cast(4 as float) as D").Single(); - row.A.Equals(1.0); - row.B.Equals(2.0); - row.C.Equals(3.0M); - row.D.Equals(4.0M); - } - public void TestDoubleDecimalConversions_SO18228523_Nulls() - { - var row = connection.Query( - "select cast(null as decimal) as A, cast(null as decimal) as B, cast(null as float) as C, cast(null as float) as D").Single(); - row.A.Equals(0.0); - row.B.IsNull(); - row.C.Equals(0.0M); - row.D.IsNull(); - } - private static CultureInfo ActiveCulture - { -#if DNXCORE50 - get { return CultureInfo.CurrentCulture; } - set { CultureInfo.CurrentCulture = value; } -#else - get { return Thread.CurrentThread.CurrentCulture; } - set { Thread.CurrentThread.CurrentCulture = value; } -#endif - } - public void TestParameterInclusionNotSensitiveToCurrentCulture() - { - // note this might fail if your database server is case-sensitive - CultureInfo current = ActiveCulture; - try - { - ActiveCulture = new CultureInfo("tr-TR"); - - connection.Query("select @pid", new { PId = 1 }).Single(); - } - finally - { - ActiveCulture = current; - } - } - public void LiteralReplacement() - { - connection.Execute("create table #literal1 (id int not null, foo int not null)"); - connection.Execute("insert #literal1 (id,foo) values ({=id}, @foo)", new { id = 123, foo = 456 }); - var rows = new[] { new { id = 1, foo = 2 }, new { id = 3, foo = 4 } }; - connection.Execute("insert #literal1 (id,foo) values ({=id}, @foo)", rows); - var count = connection.Query("select count(1) from #literal1 where id={=foo}", new { foo = 123 }).Single(); - count.IsEqualTo(1); - int sum = connection.Query("select sum(id) + sum(foo) from #literal1").Single(); - sum.IsEqualTo(123 + 456 + 1 + 2 + 3 + 4); - } - public void LiteralReplacementDynamic() - { - var args = new DynamicParameters(); - args.Add("id", 123); - connection.Execute("create table #literal2 (id int not null)"); - connection.Execute("insert #literal2 (id) values ({=id})", args); - - args = new DynamicParameters(); - args.Add("foo", 123); - var count = connection.Query("select count(1) from #literal2 where id={=foo}", args).Single(); - count.IsEqualTo(1); - } - - enum AnEnum - { - A = 2, - B = 1 - } - enum AnotherEnum : byte - { - A = 2, - B = 1 - } - -#if DNXCORE50 - [FrameworkFail("https://github.com/dotnet/corefx/issues/1613")] -#endif - public void AdoNetEnumValue() - { - using (var cmd = connection.CreateCommand()) - { - cmd.CommandText = "select @foo"; - cmd.Parameters.AddWithValue("@foo", AnEnum.B); - object value = cmd.ExecuteScalar(); - AnEnum val = (AnEnum)value; - val.IsEqualTo(AnEnum.B); - } - } - - public void LiteralReplacementEnumAndString() - { - var args = new { x = AnEnum.B, y = 123.45M, z = AnotherEnum.A }; - var row = connection.Query("select {=x} as x,{=y} as y,cast({=z} as tinyint) as z", args).Single(); - AnEnum x = (AnEnum)(int)row.x; - decimal y = row.y; - AnotherEnum z = (AnotherEnum)(byte)row.z; - x.Equals(AnEnum.B); - y.Equals(123.45M); - z.Equals(AnotherEnum.A); - } - - public void LiteralReplacementDynamicEnumAndString() - { - var args = new DynamicParameters(); - args.Add("x", AnEnum.B); - args.Add("y", 123.45M); - args.Add("z", AnotherEnum.A); - var row = connection.Query("select {=x} as x,{=y} as y,cast({=z} as tinyint) as z", args).Single(); - AnEnum x = (AnEnum)(int)row.x; - decimal y = row.y; - AnotherEnum z = (AnotherEnum)(byte)row.z; - x.Equals(AnEnum.B); - y.Equals(123.45M); - z.Equals(AnotherEnum.A); - } - - public void LiteralReplacementBoolean() - { - var row = connection.Query("select 42 where 1 = {=val}", new { val = true }).SingleOrDefault(); - row.IsNotNull(); - row.IsEqualTo(42); - row = connection.Query("select 42 where 1 = {=val}", new { val = false }).SingleOrDefault(); - row.IsNull(); - } - public void LiteralReplacementWithIn() - { - var data = connection.Query("select @x where 1 in @ids and 1 ={=a}", - new { x = 1, ids = new[] { 1, 2, 3 }, a = 1 }).ToList(); - } - - class MyRow - { - public int x { get; set; } - } - - public void LiteralIn() - { - connection.Execute("create table #literalin(id int not null);"); - connection.Execute("insert #literalin (id) values (@id)", new[] { - new { id = 1 }, - new { id = 2 }, - new { id = 3 }, - }); - var count = connection.Query("select count(1) from #literalin where id in {=ids}", - new { ids = new[] { 1, 3, 4 } }).Single(); - count.IsEqualTo(2); - } - - public void ParameterizedInWithOptimizeHint() - { - const string sql = @" -select count(1) -from( - select 1 as x - union all select 2 - union all select 5) y -where y.x in @vals -option (optimize for (@vals unKnoWn))"; - int count = connection.Query(sql, new { vals = new[] { 1, 2, 3, 4 } }).Single(); - count.IsEqualTo(2); - - count = connection.Query(sql, new { vals = new[] { 1 } }).Single(); - count.IsEqualTo(1); - - count = connection.Query(sql, new { vals = new int[0] }).Single(); - count.IsEqualTo(0); - } - - - - - public void TestProcedureWithTimeParameter() - { - var p = new DynamicParameters(); - p.Add("a", TimeSpan.FromHours(10), dbType: DbType.Time); - - connection.Execute(@"CREATE PROCEDURE #TestProcWithTimeParameter - @a TIME - AS - BEGIN - SELECT @a - END"); - connection.Query("#TestProcWithTimeParameter", p, commandType: CommandType.StoredProcedure).First().IsEqualTo(new TimeSpan(10, 0, 0)); - } - - public void DbString() - { - var a = connection.Query("select datalength(@x)", - new { x = new DbString { Value = "abc", IsAnsi = true } }).Single(); - var b = connection.Query("select datalength(@x)", - new { x = new DbString { Value = "abc", IsAnsi = false } }).Single(); - a.IsEqualTo(3); - b.IsEqualTo(6); - } - - class HasInt32 - { - public int Value { get; set; } - } - // http://stackoverflow.com/q/23696254/23354 - public void DownwardIntegerConversion() - { - const string sql = "select cast(42 as bigint) as Value"; - int i = connection.Query(sql).Single().Value; - Assert.IsEqualTo(42, i); - - i = connection.Query(sql).Single(); - Assert.IsEqualTo(42, i); - } - - class HasDoubleDecimal - { - public double A { get; set; } - public double? B { get; set; } - public decimal C { get; set; } - public decimal? D { get; set; } - } -#if EXTERNALS - public void DataTableParameters() - { - try { connection.Execute("drop proc #DataTableParameters"); } - catch { } - try { connection.Execute("drop table #DataTableParameters"); } - catch { } - try { connection.Execute("drop type MyTVPType"); } - catch { } - connection.Execute("create type MyTVPType as table (id int)"); - connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); - - var table = new DataTable { Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; - - int count = connection.Query("#DataTableParameters", new { ids = table.AsTableValuedParameter() }, commandType: CommandType.StoredProcedure).First(); - count.IsEqualTo(3); - - count = connection.Query("select count(1) from @ids", new { ids = table.AsTableValuedParameter("MyTVPType") }).First(); - count.IsEqualTo(3); - - try - { - connection.Query("select count(1) from @ids", new { ids = table.AsTableValuedParameter() }).First(); - throw new InvalidOperationException(); - } - catch (Exception ex) - { - ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); - } - } - - public void SO29533765_DataTableParametersViaDynamicParameters() - { - try { connection.Execute("drop proc #DataTableParameters"); } catch { } - try { connection.Execute("drop table #DataTableParameters"); } catch { } - try { connection.Execute("drop type MyTVPType"); } catch { } - connection.Execute("create type MyTVPType as table (id int)"); - connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); - - var table = new DataTable { TableName="MyTVPType", Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; - table.SetTypeName(table.TableName); // per SO29533765 - IDictionary args = new Dictionary(); - args.Add("ids", table); - int count = connection.Query("#DataTableParameters", args, commandType: CommandType.StoredProcedure).First(); - count.IsEqualTo(3); - - count = connection.Query("select count(1) from @ids", args).First(); - count.IsEqualTo(3); - } - public void SO26468710_InWithTVPs() - { - // this is just to make it re-runnable; normally you only do this once - try { connection.Execute("drop type MyIdList"); } - catch { } - connection.Execute("create type MyIdList as table(id int);"); - - DataTable ids = new DataTable - { - Columns = { { "id", typeof(int) } }, - Rows = { { 1 }, { 3 }, { 5 } } - }; - ids.SetTypeName("MyIdList"); - int sum = connection.Query(@" - declare @tmp table(id int not null); - insert @tmp (id) values(1), (2), (3), (4), (5), (6), (7); - select * from @tmp t inner join @ids i on i.id = t.id", new { ids }).Sum(); - sum.IsEqualTo(9); - } - public void DataTableParametersWithExtendedProperty() - { - try { connection.Execute("drop proc #DataTableParameters"); } - catch { } - try { connection.Execute("drop table #DataTableParameters"); } - catch { } - try { connection.Execute("drop type MyTVPType"); } - catch { } - connection.Execute("create type MyTVPType as table (id int)"); - connection.Execute("create proc #DataTableParameters @ids MyTVPType readonly as select count(1) from @ids"); - - var table = new DataTable { Columns = { { "id", typeof(int) } }, Rows = { { 1 }, { 2 }, { 3 } } }; - table.SetTypeName("MyTVPType"); // <== extended metadata - int count = connection.Query("#DataTableParameters", new { ids = table }, commandType: CommandType.StoredProcedure).First(); - count.IsEqualTo(3); - - count = connection.Query("select count(1) from @ids", new { ids = table }).First(); - count.IsEqualTo(3); - - try - { - connection.Query("select count(1) from @ids", new { ids = table }).First(); - throw new InvalidOperationException(); - } - catch (Exception ex) - { - ex.Message.Equals("The table type parameter 'ids' must have a valid type name."); - } - } - - public void SupportInit() - { - var obj = connection.Query("select 'abc' as Value").Single(); - obj.Value.Equals("abc"); - obj.Flags.Equals(31); - } -#endif - public void GuidIn_SO_24177902() - { - // invent and populate - Guid a = Guid.NewGuid(), b = Guid.NewGuid(), c = Guid.NewGuid(), d = Guid.NewGuid(); - connection.Execute("create table #foo (i int, g uniqueidentifier)"); - connection.Execute("insert #foo(i,g) values(@i,@g)", - new[] { new { i = 1, g = a }, new { i = 2, g = b }, - new { i = 3, g = c },new { i = 4, g = d }}); - - // check that rows 2&3 yield guids b&c - var guids = connection.Query("select g from #foo where i in (2,3)").ToArray(); - guids.Length.Equals(2); - guids.Contains(a).Equals(false); - guids.Contains(b).Equals(true); - guids.Contains(c).Equals(true); - guids.Contains(d).Equals(false); - - // in query on the guids - var rows = connection.Query("select * from #foo where g in @guids order by i", new { guids }) - .Select(row => new { i = (int)row.i, g = (Guid)row.g }).ToArray(); - rows.Length.Equals(2); - rows[0].i.Equals(2); - rows[0].g.Equals(b); - rows[1].i.Equals(3); - rows[1].g.Equals(c); - } -#if EXTERNALS - class HazGeo - { - public int Id { get; set; } - public DbGeography Geo { get; set; } - public DbGeometry Geometry { get; set; } - } - class HazSqlGeo - { - public int Id { get; set; } - public SqlGeography Geo { get; set; } - public SqlGeometry Geometry { get; set; } - } - public void DBGeography_SO24405645_SO24402424() - { - Dapper.EntityFramework.Handlers.Register(); - - connection.Execute("create table #Geo (id int, geo geography, geometry geometry)"); - - var obj = new HazGeo - { - Id = 1, - Geo = DbGeography.LineFromText("LINESTRING(-122.360 47.656, -122.343 47.656 )", 4326), - Geometry = DbGeometry.LineFromText("LINESTRING (100 100, 20 180, 180 180)", 0) - }; - connection.Execute("insert #Geo(id, geo, geometry) values (@Id, @Geo, @Geometry)", obj); - var row = connection.Query("select * from #Geo where id=1").SingleOrDefault(); - row.IsNotNull(); - row.Id.IsEqualTo(1); - row.Geo.IsNotNull(); - row.Geometry.IsNotNull(); - } - - public void SqlGeography_SO25538154() - { - Dapper.SqlMapper.ResetTypeHandlers(); - connection.Execute("create table #SqlGeo (id int, geo geography, geometry geometry)"); - - var obj = new HazSqlGeo - { - Id = 1, - Geo = SqlGeography.STLineFromText(new SqlChars(new SqlString("LINESTRING(-122.360 47.656, -122.343 47.656 )")), 4326), - Geometry = SqlGeometry.STLineFromText(new SqlChars(new SqlString("LINESTRING (100 100, 20 180, 180 180)")), 0) - }; - connection.Execute("insert #SqlGeo(id, geo, geometry) values (@Id, @Geo, @Geometry)", obj); - var row = connection.Query("select * from #SqlGeo where id=1").SingleOrDefault(); - row.IsNotNull(); - row.Id.IsEqualTo(1); - row.Geo.IsNotNull(); - row.Geometry.IsNotNull(); - } - - public void SqlHierarchyId_SO18888911() - { - Dapper.SqlMapper.ResetTypeHandlers(); - var row = connection.Query("select 3 as [Id], hierarchyid::Parse('/1/2/3/') as [Path]").Single(); - row.Id.Equals(3); - row.Path.IsNotNull(); - - var val = connection.Query("select @Path", row).Single(); - val.IsNotNull(); - } - - public class HazSqlHierarchy - { - public int Id { get; set; } - public SqlHierarchyId Path { get; set; } - } -#endif - public void TypeBasedViaDynamic() - { - Type type = GetSomeType(); - - dynamic template = Activator.CreateInstance(type); - dynamic actual = CheetViaDynamic(template, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }); - ((object)actual).GetType().IsEqualTo(type); - int a = actual.A; - string b = actual.B; - a.IsEqualTo(123); - b.IsEqualTo("abc"); - } - public void TypeBasedViaType() - { - Type type = GetSomeType(); - - dynamic actual = connection.Query(type, "select @A as [A], @B as [B]", new { A = 123, B = "abc" }).FirstOrDefault(); - ((object)actual).GetType().IsEqualTo(type); - int a = actual.A; - string b = actual.B; - a.IsEqualTo(123); - b.IsEqualTo("abc"); - } - public void TypeBasedViaTypeMulti() - { - Type type = GetSomeType(); - - dynamic first, second; - using (var multi = connection.QueryMultiple("select @A as [A], @B as [B]; select @C as [A], @D as [B]", - new { A = 123, B = "abc", C = 456, D = "def" })) - { - first = multi.Read(type).Single(); - second = multi.Read(type).Single(); - } - ((object)first).GetType().IsEqualTo(type); - int a = first.A; - string b = first.B; - a.IsEqualTo(123); - b.IsEqualTo("abc"); - - ((object)second).GetType().IsEqualTo(type); - a = second.A; - b = second.B; - a.IsEqualTo(456); - b.IsEqualTo("def"); - } - T CheetViaDynamic(T template, string query, object args) - { - return connection.Query(query, args).SingleOrDefault(); - } - static Type GetSomeType() - { - return typeof(SomeType); - } - public class SomeType - { - public int A { get; set; } - public string B { get; set; } - } -#if !DNXCORE50 - class WithInit : ISupportInitialize - { - public string Value { get; set; } - public int Flags { get; set; } - - void ISupportInitialize.BeginInit() - { - Flags += 1; - } - - void ISupportInitialize.EndInit() - { - Flags += 30; - } - } -#endif - public void SO24607639_NullableBools() - { - var obj = connection.Query( - @"declare @vals table (A bit null, B bit null, C bit null); - insert @vals (A,B,C) values (1,0,null); - select * from @vals").Single(); - obj.IsNotNull(); - obj.A.Value.IsEqualTo(true); - obj.B.Value.IsEqualTo(false); - obj.C.IsNull(); - } - class HazBools - { - public bool? A { get; set; } - public bool? B { get; set; } - public bool? C { get; set; } - } - - public void SO24605346_ProcsAndStrings() - { - connection.Execute(@"create proc #GetPracticeRebateOrderByInvoiceNumber @TaxInvoiceNumber nvarchar(20) as - select @TaxInvoiceNumber as [fTaxInvoiceNumber]"); - string InvoiceNumber = "INV0000000028PPN"; - var result = connection.Query("#GetPracticeRebateOrderByInvoiceNumber", new - { - TaxInvoiceNumber = InvoiceNumber - }, commandType: CommandType.StoredProcedure).FirstOrDefault(); - - result.TaxInvoiceNumber.IsEqualTo("INV0000000028PPN"); - } - class PracticeRebateOrders - { - public string fTaxInvoiceNumber; -#if EXTERNALS - [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] -#endif - public string TaxInvoiceNumber { get { return fTaxInvoiceNumber; } set { fTaxInvoiceNumber = value; } } - } - - public class RatingValueHandler : Dapper.SqlMapper.TypeHandler - { - private RatingValueHandler() { } - public static readonly RatingValueHandler Default = new RatingValueHandler(); - public override RatingValue Parse(object value) - { - if (value is Int32) - return new RatingValue() { Value = (Int32)value }; - - throw new FormatException("Invalid conversion to RatingValue"); - } - - public override void SetValue(IDbDataParameter parameter, RatingValue value) - { - // ... null, range checks etc ... - parameter.DbType = System.Data.DbType.Int32; - parameter.Value = value.Value; - } - } - public class RatingValue - { - public Int32 Value { get; set; } - // ... some other properties etc ... - } - - public class MyResult - { - public String CategoryName { get; set; } - public RatingValue CategoryRating { get; set; } - } - - public void SO24740733_TestCustomValueHandler() - { - Dapper.SqlMapper.AddTypeHandler(RatingValueHandler.Default); - var foo = connection.Query("SELECT 'Foo' AS CategoryName, 200 AS CategoryRating").Single(); - - foo.CategoryName.IsEqualTo("Foo"); - foo.CategoryRating.Value.IsEqualTo(200); - } - - enum SO27024806Enum { Foo, Bar } - - private class SO27024806Class - { - public SO27024806Class(SO27024806Enum myField) - { - this.MyField = myField; - } - - public SO27024806Enum MyField { get; set; } - } - - public void SO27024806_TestVarcharEnumMemberWithExplicitConstructor() - { - var foo = connection.Query("SELECT 'Foo' AS myField").Single(); - foo.MyField.IsEqualTo(SO27024806Enum.Foo); - } - - - public void SO24740733_TestCustomValueSingleColumn() - { - Dapper.SqlMapper.AddTypeHandler(RatingValueHandler.Default); - var foo = connection.Query("SELECT 200 AS CategoryRating").Single(); - - foo.Value.IsEqualTo(200); - } - - public class StringListTypeHandler : Dapper.SqlMapper.TypeHandler> - { - private StringListTypeHandler() { } - public static readonly StringListTypeHandler Default = new StringListTypeHandler(); - //Just a simple List type handler implementation - public override void SetValue(IDbDataParameter parameter, List value) - { - parameter.Value = String.Join(",", value); - } - - public override List Parse(object value) - { - return ((value as String) ?? "").Split(',').ToList(); - } - } - public class MyObjectWithStringList - { - public List Names { get; set; } - } - public void Issue253_TestIEnumerableTypeHandlerParsing() - { - Dapper.SqlMapper.ResetTypeHandlers(); - Dapper.SqlMapper.AddTypeHandler(StringListTypeHandler.Default); - var foo = connection.Query("SELECT 'Sam,Kyro' AS Names").Single(); - foo.Names.IsSequenceEqualTo(new[] { "Sam", "Kyro" }); - } - public void Issue253_TestIEnumerableTypeHandlerSetParameterValue() - { - Dapper.SqlMapper.ResetTypeHandlers(); - Dapper.SqlMapper.AddTypeHandler(StringListTypeHandler.Default); - - connection.Execute("CREATE TABLE #Issue253 (Names VARCHAR(50) NOT NULL);"); - try - { - String names = "Sam,Kyro"; - List names_list = names.Split(',').ToList(); - var foo = connection.Query("INSERT INTO #Issue253 (Names) VALUES (@Names); SELECT Names FROM #Issue253;", new { Names = names_list }).Single(); - foo.IsEqualTo(names); - } - finally - { - connection.Execute("DROP TABLE #Issue253;"); - } - } - - public void Issue130_IConvertible() - { - dynamic row = connection.Query("select 1 as [a], '2' as [b]").Single(); - int a = row.a; - string b = row.b; - a.IsEqualTo(1); - b.IsEqualTo("2"); - - row = connection.Query("select 3 as [a], '4' as [b]").Single(); - a = row.a; - b = row.b; - a.IsEqualTo(3); - b.IsEqualTo("4"); - } - - public void Issue22_ExecuteScalar() - { - int i = connection.ExecuteScalar("select 123"); - i.IsEqualTo(123); - - i = connection.ExecuteScalar("select cast(123 as bigint)"); - i.IsEqualTo(123); - - long j = connection.ExecuteScalar("select 123"); - j.IsEqualTo(123L); - - j = connection.ExecuteScalar("select cast(123 as bigint)"); - j.IsEqualTo(123L); - - int? k = connection.ExecuteScalar("select @i", new { i = default(int?) }); - k.IsNull(); - -#if EXTERNALS - Dapper.EntityFramework.Handlers.Register(); - var geo = DbGeography.LineFromText("LINESTRING(-122.360 47.656, -122.343 47.656 )", 4326); - var geo2 = connection.ExecuteScalar("select @geo", new { geo }); - geo2.IsNotNull(); -#endif - } - - public void Issue142_FailsNamedStatus() - { - var row1 = connection.Query("select @Status as [Status]", new { Status = StatusType.Started }).Single(); - row1.Status.IsEqualTo(StatusType.Started); - - var row2 = connection.Query("select @Status as [Status]", new { Status = Status.Started }).Single(); - row2.Status.IsEqualTo(Status.Started); - } - - public class Issue142_Status - { - public StatusType Status { get; set; } - } - public class Issue142_StatusType - { - public Status Status { get; set; } - } - - public enum StatusType : byte - { - NotStarted = 1, Started = 2, Finished = 3 - } - public enum Status : byte - { - NotStarted = 1, Started = 2, Finished = 3 - } - - - - public void Issue136_ValueTypeHandlers() - { - Dapper.SqlMapper.ResetTypeHandlers(); - Dapper.SqlMapper.AddTypeHandler(typeof(LocalDate), LocalDateHandler.Default); - var param = new LocalDateResult - { - NotNullable = new LocalDate { Year = 2014, Month = 7, Day = 25 }, - NullableNotNull = new LocalDate { Year = 2014, Month = 7, Day = 26 }, - NullableIsNull = null, - }; - - var result = connection.Query("SELECT @NotNullable AS NotNullable, @NullableNotNull AS NullableNotNull, @NullableIsNull AS NullableIsNull", param).Single(); - - Dapper.SqlMapper.ResetTypeHandlers(); - Dapper.SqlMapper.AddTypeHandler(typeof(LocalDate?), LocalDateHandler.Default); - result = connection.Query("SELECT @NotNullable AS NotNullable, @NullableNotNull AS NullableNotNull, @NullableIsNull AS NullableIsNull", param).Single(); - } - public class LocalDateHandler : Dapper.SqlMapper.TypeHandler - { - private LocalDateHandler() { } - - // Make the field type ITypeHandler to ensure it cannot be used with SqlMapper.AddTypeHandler(TypeHandler) - // by mistake. - public static readonly Dapper.SqlMapper.ITypeHandler Default = new LocalDateHandler(); - - public override LocalDate Parse(object value) - { - var date = (DateTime)value; - return new LocalDate { Year = date.Year, Month = date.Month, Day = date.Day }; - } - - public override void SetValue(IDbDataParameter parameter, LocalDate value) - { - parameter.DbType = DbType.DateTime; - parameter.Value = new DateTime(value.Year, value.Month, value.Day); - } - } - - public struct LocalDate - { - public int Year { get; set; } - public int Month { get; set; } - public int Day { get; set; } - } - - public class LocalDateResult - { - public LocalDate NotNullable { get; set; } - public LocalDate? NullableNotNull { get; set; } - public LocalDate? NullableIsNull { get; set; } - } - - public class LotsOfNumerics - { - public enum E_Byte : byte { A = 0, B = 1 } - public enum E_SByte : sbyte { A = 0, B = 1 } - public enum E_Short : short { A = 0, B = 1 } - public enum E_UShort : ushort { A = 0, B = 1 } - public enum E_Int : int { A = 0, B = 1 } - public enum E_UInt : uint { A = 0, B = 1 } - public enum E_Long : long { A = 0, B = 1 } - public enum E_ULong : ulong { A = 0, B = 1 } - - public E_Byte P_Byte { get; set; } - public E_SByte P_SByte { get; set; } - public E_Short P_Short { get; set; } - public E_UShort P_UShort { get; set; } - public E_Int P_Int { get; set; } - public E_UInt P_UInt { get; set; } - public E_Long P_Long { get; set; } - public E_ULong P_ULong { get; set; } - - public bool N_Bool { get; set; } - public byte N_Byte { get; set; } - public sbyte N_SByte { get; set; } - public short N_Short { get; set; } - public ushort N_UShort { get; set; } - public int N_Int { get; set; } - public uint N_UInt { get; set; } - public long N_Long { get; set; } - public ulong N_ULong { get; set; } - - public float N_Float { get; set; } - public double N_Double { get; set; } - public decimal N_Decimal { get; set; } - - public E_Byte? N_P_Byte { get; set; } - public E_SByte? N_P_SByte { get; set; } - public E_Short? N_P_Short { get; set; } - public E_UShort? N_P_UShort { get; set; } - public E_Int? N_P_Int { get; set; } - public E_UInt? N_P_UInt { get; set; } - public E_Long? N_P_Long { get; set; } - public E_ULong? N_P_ULong { get; set; } - - public bool? N_N_Bool { get; set; } - public byte? N_N_Byte { get; set; } - public sbyte? N_N_SByte { get; set; } - public short? N_N_Short { get; set; } - public ushort? N_N_UShort { get; set; } - public int? N_N_Int { get; set; } - public uint? N_N_UInt { get; set; } - public long? N_N_Long { get; set; } - public ulong? N_N_ULong { get; set; } - - public float? N_N_Float { get; set; } - public double? N_N_Double { get; set; } - public decimal? N_N_Decimal { get; set; } - } - - public void TestBigIntForEverythingWorks_SqlLite() - { - TestBigIntForEverythingWorks_SqlLite_ByDataType("bigint"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("int"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("tinyint"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("smallint"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("bit"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("float(24)"); - TestBigIntForEverythingWorks_SqlLite_ByDataType("float(53)"); - } - private void TestBigIntForEverythingWorks_SqlLite_ByDataType(string dbType) - { - using (var reader = connection.ExecuteReader("select cast(1 as " + dbType + ")")) - { - reader.Read().IsTrue(); - reader.GetFieldType(0).Equals(typeof(T)); - reader.Read().IsFalse(); - reader.NextResult().IsFalse(); - } - - string sql = "select " + string.Join(",", typeof(LotsOfNumerics).GetProperties().Select( - x => "cast (1 as " + dbType + ") as [" + x.Name + "]")); - var row = connection.Query(sql).Single(); - - row.N_Bool.IsTrue(); - row.N_SByte.IsEqualTo((sbyte)1); - row.N_Byte.IsEqualTo((byte)1); - row.N_Int.IsEqualTo((int)1); - row.N_UInt.IsEqualTo((uint)1); - row.N_Short.IsEqualTo((short)1); - row.N_UShort.IsEqualTo((ushort)1); - row.N_Long.IsEqualTo((long)1); - row.N_ULong.IsEqualTo((ulong)1); - row.N_Float.IsEqualTo((float)1); - row.N_Double.IsEqualTo((double)1); - row.N_Decimal.IsEqualTo((decimal)1); - - row.P_Byte.IsEqualTo(LotsOfNumerics.E_Byte.B); - row.P_SByte.IsEqualTo(LotsOfNumerics.E_SByte.B); - row.P_Short.IsEqualTo(LotsOfNumerics.E_Short.B); - row.P_UShort.IsEqualTo(LotsOfNumerics.E_UShort.B); - row.P_Int.IsEqualTo(LotsOfNumerics.E_Int.B); - row.P_UInt.IsEqualTo(LotsOfNumerics.E_UInt.B); - row.P_Long.IsEqualTo(LotsOfNumerics.E_Long.B); - row.P_ULong.IsEqualTo(LotsOfNumerics.E_ULong.B); - - row.N_N_Bool.Value.IsTrue(); - row.N_N_SByte.Value.IsEqualTo((sbyte)1); - row.N_N_Byte.Value.IsEqualTo((byte)1); - row.N_N_Int.Value.IsEqualTo((int)1); - row.N_N_UInt.Value.IsEqualTo((uint)1); - row.N_N_Short.Value.IsEqualTo((short)1); - row.N_N_UShort.Value.IsEqualTo((ushort)1); - row.N_N_Long.Value.IsEqualTo((long)1); - row.N_N_ULong.Value.IsEqualTo((ulong)1); - row.N_N_Float.Value.IsEqualTo((float)1); - row.N_N_Double.Value.IsEqualTo((double)1); - row.N_N_Decimal.IsEqualTo((decimal)1); - - row.N_P_Byte.Value.IsEqualTo(LotsOfNumerics.E_Byte.B); - row.N_P_SByte.Value.IsEqualTo(LotsOfNumerics.E_SByte.B); - row.N_P_Short.Value.IsEqualTo(LotsOfNumerics.E_Short.B); - row.N_P_UShort.Value.IsEqualTo(LotsOfNumerics.E_UShort.B); - row.N_P_Int.Value.IsEqualTo(LotsOfNumerics.E_Int.B); - row.N_P_UInt.Value.IsEqualTo(LotsOfNumerics.E_UInt.B); - row.N_P_Long.Value.IsEqualTo(LotsOfNumerics.E_Long.B); - row.N_P_ULong.Value.IsEqualTo(LotsOfNumerics.E_ULong.B); - - TestBigIntForEverythingWorks(true, dbType); - TestBigIntForEverythingWorks((sbyte)1, dbType); - TestBigIntForEverythingWorks((byte)1, dbType); - TestBigIntForEverythingWorks((int)1, dbType); - TestBigIntForEverythingWorks((uint)1, dbType); - TestBigIntForEverythingWorks((short)1, dbType); - TestBigIntForEverythingWorks((ushort)1, dbType); - TestBigIntForEverythingWorks((long)1, dbType); - TestBigIntForEverythingWorks((ulong)1, dbType); - TestBigIntForEverythingWorks((float)1, dbType); - TestBigIntForEverythingWorks((double)1, dbType); - TestBigIntForEverythingWorks((decimal)1, dbType); - - TestBigIntForEverythingWorks(LotsOfNumerics.E_Byte.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_SByte.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Int.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_UInt.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Short.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_UShort.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Long.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_ULong.B, dbType); - - TestBigIntForEverythingWorks(true, dbType); - TestBigIntForEverythingWorks((sbyte)1, dbType); - TestBigIntForEverythingWorks((byte)1, dbType); - TestBigIntForEverythingWorks((int)1, dbType); - TestBigIntForEverythingWorks((uint)1, dbType); - TestBigIntForEverythingWorks((short)1, dbType); - TestBigIntForEverythingWorks((ushort)1, dbType); - TestBigIntForEverythingWorks((long)1, dbType); - TestBigIntForEverythingWorks((ulong)1, dbType); - TestBigIntForEverythingWorks((float)1, dbType); - TestBigIntForEverythingWorks((double)1, dbType); - TestBigIntForEverythingWorks((decimal)1, dbType); - - TestBigIntForEverythingWorks(LotsOfNumerics.E_Byte.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_SByte.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Int.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_UInt.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Short.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_UShort.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_Long.B, dbType); - TestBigIntForEverythingWorks(LotsOfNumerics.E_ULong.B, dbType); - } - - private void TestBigIntForEverythingWorks(T expected, string dbType) - { - var query = connection.Query("select cast(1 as " + dbType + ")").Single(); - query.IsEqualTo(expected); - - var scalar = connection.ExecuteScalar("select cast(1 as " + dbType + ")"); - scalar.IsEqualTo(expected); - } - - public void TestSubsequentQueriesSuccess() - { - var data0 = connection.Query("select 1 as [Id] where 1 = 0").ToList(); - data0.Count().IsEqualTo(0); - - var data1 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList(); - data1.Count().IsEqualTo(0); - - var data2 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList(); - data2.Count().IsEqualTo(0); - - data0 = connection.Query("select 1 as [Id] where 1 = 0").ToList(); - data0.Count().IsEqualTo(0); - - data1 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList(); - data1.Count().IsEqualTo(0); - - data2 = connection.Query(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList(); - data2.Count().IsEqualTo(0); - } - class Fooz0 { public int Id { get; set; } } - class Fooz1 { public int Id { get; set; } } - class Fooz2 { public int Id { get; set; } } - - public void SO25069578_DynamicParams_Procs() - { - var parameters = new DynamicParameters(); - parameters.Add("foo", "bar"); - // parameters = new DynamicParameters(parameters); - try { connection.Execute("drop proc SO25069578"); } - catch { } - connection.Execute("create proc SO25069578 @foo nvarchar(max) as select @foo as [X]"); - var tran = connection.BeginTransaction(); // gist used transaction; behaves the same either way, though - var row = connection.Query("SO25069578", parameters, - commandType: CommandType.StoredProcedure, transaction: tran).Single(); - tran.Rollback(); - row.X.IsEqualTo("bar"); - } - - public void Issue149_TypeMismatch_SequentialAccess() - { - string error; - Guid guid = Guid.Parse("cf0ef7ac-b6fe-4e24-aeda-a2b45bb5654e"); - try - { - var result = connection.Query(@"select @guid as Id", new { guid }).First(); - error = null; - } - catch (Exception ex) - { - error = ex.Message; - } - error.IsEqualTo("Error parsing column 0 (Id=cf0ef7ac-b6fe-4e24-aeda-a2b45bb5654e - Object)"); - } - public class Issue149_Person { public string Id { get; set; } } - - public class HazX - { - public string X { get; set; } - } - - - public void SO25297173_DynamicIn() - { - var query = @" -declare @table table(value int not null); -insert @table values(1); -insert @table values(2); -insert @table values(3); -insert @table values(4); -insert @table values(5); -insert @table values(6); -insert @table values(7); -SELECT value FROM @table WHERE value IN @myIds"; - var queryParams = new Dictionary { - { "myIds", new [] { 5, 6 } } - }; - - var dynamicParams = new DynamicParameters(queryParams); - List result = connection.Query(query, dynamicParams).ToList(); - result.Count.IsEqualTo(2); - result.Contains(5).IsTrue(); - result.Contains(6).IsTrue(); - } - - public void AllowIDictionaryParameters() - { - var parameters = new Dictionary - { - { "param1", 0 } - }; - - connection.Query("SELECT @param1", parameters); - } - - - public void Issue178_SqlServer() - { - const string sql = @"select count(*) from Issue178"; - try { connection.Execute("drop table Issue178"); } - catch { } - try { connection.Execute("create table Issue178(id int not null)"); } - catch { } - // raw ADO.net - var sqlCmd = new SqlCommand(sql, connection); - using (IDataReader reader1 = sqlCmd.ExecuteReader()) - { - Assert.IsTrue(reader1.Read()); - reader1.GetInt32(0).IsEqualTo(0); - Assert.IsFalse(reader1.Read()); - Assert.IsFalse(reader1.NextResult()); - } - - // dapper - using (var reader2 = connection.ExecuteReader(sql)) - { - Assert.IsTrue(reader2.Read()); - reader2.GetInt32(0).IsEqualTo(0); - Assert.IsFalse(reader2.Read()); - Assert.IsFalse(reader2.NextResult()); - } - } -#if EXTERNALS - public void Issue178_Firebird() // we expect this to fail due to a bug in Firebird; a PR to fix it has been submitted - { - var cs = @"initial catalog=localhost:database;user id=SYSDBA;password=masterkey"; - - using (var connection = new FbConnection(cs)) - { - connection.Open(); - const string sql = @"select count(*) from Issue178"; - try { connection.Execute("drop table Issue178"); } - catch { } - connection.Execute("create table Issue178(id int not null)"); - connection.Execute("insert into Issue178(id) values(42)"); - // raw ADO.net - using (var sqlCmd = new FbCommand(sql, connection)) - using (IDataReader reader1 = sqlCmd.ExecuteReader()) - { - Assert.IsTrue(reader1.Read()); - reader1.GetInt32(0).IsEqualTo(1); - Assert.IsFalse(reader1.Read()); - Assert.IsFalse(reader1.NextResult()); - } - - // dapper - using (var reader2 = connection.ExecuteReader(sql)) - { - Assert.IsTrue(reader2.Read()); - reader2.GetInt32(0).IsEqualTo(1); - Assert.IsFalse(reader2.Read()); - Assert.IsFalse(reader2.NextResult()); - } - - var count = connection.Query(sql).Single(); - count.IsEqualTo(1); - } - } - - public void PseudoPositionalParameters_Simple() - { - using (var connection = ConnectViaOledb()) - { - int value = connection.Query("select ?x? + ?y_2? + ?z?", new { x = 1, y_2 = 3, z = 5, z2 = 24 }).Single(); - value.IsEqualTo(9); - } - } - - public void PseudoPositionalParameters_Dynamic() - { - using (var connection = ConnectViaOledb()) - { - var args = new DynamicParameters(); - args.Add("x", 1); - args.Add("y_2", 3); - args.Add("z", 5); - args.Add("z2", 24); - int value = connection.Query("select ?x? + ?y_2? + ?z?", args).Single(); - value.IsEqualTo(9); - } - } - - public void PseudoPositionalParameters_ReusedParameter() - { - using (var connection = ConnectViaOledb()) - { - try - { - int value = connection.Query("select ?x? + ?y_2? + ?x?", new { x = 1, y_2 = 3 }).Single(); - Assert.Fail(); - } - catch (InvalidOperationException ex) - { - ex.Message.IsEqualTo("When passing parameters by position, each parameter can only be referenced once"); - } - } - } - - public void PseudoPositionalParameters_ExecSingle() - { - using (var connection = ConnectViaOledb()) - { - var data = new { x = 6 }; - connection.Execute("create table #named_single(val int not null)"); - int count = connection.Execute("insert #named_single (val) values (?x?)", data); - int sum = (int)connection.ExecuteScalar("select sum(val) from #named_single"); - count.IsEqualTo(1); - sum.IsEqualTo(6); - } - } - public void PseudoPositionalParameters_ExecMulti() - { - using (var connection = ConnectViaOledb()) - { - var data = new[] - { - new { x = 1, y = 1 }, - new { x = 3, y = 1 }, - new { x = 6, y = 1 }, - }; - connection.Execute("create table #named_multi(val int not null)"); - int count = connection.Execute("insert #named_multi (val) values (?x?)", data); - int sum = (int)connection.ExecuteScalar("select sum(val) from #named_multi"); - count.IsEqualTo(3); - sum.IsEqualTo(10); - } - } -#endif - public void QueryBasicWithoutQuery() - { - int? i = connection.Query("print 'not a query'").FirstOrDefault(); - i.IsNull(); - } - - public void QueryComplexWithoutQuery() - { - var obj = connection.Query("print 'not a query'").FirstOrDefault(); - obj.IsNull(); - } - - - public void Issue182_BindDynamicObjectParametersAndColumns() - { - connection.Execute("create table #Dyno ([Id] uniqueidentifier primary key, [Name] nvarchar(50) not null, [Foo] bigint not null);"); - - var guid = Guid.NewGuid(); - var orig = new Dyno { Name = "T Rex", Id = guid, Foo = 123L }; - var result = connection.Execute("insert into #Dyno ([Id], [Name], [Foo]) values (@Id, @Name, @Foo);", orig); - - var fromDb = connection.Query("select * from #Dyno where Id=@Id", orig).Single(); - ((Guid)fromDb.Id).IsEqualTo(guid); - fromDb.Name.IsEqualTo("T Rex"); - ((long)fromDb.Foo).IsEqualTo(123L); - } - public class Dyno - { - public dynamic Id { get; set; } - public string Name { get; set; } - - public object Foo { get; set; } - } - - public void Issue151_ExpandoObjectArgsQuery() - { - dynamic args = new ExpandoObject(); - args.Id = 123; - args.Name = "abc"; - - var row = connection.Query("select @Id as [Id], @Name as [Name]", (object)args).Single(); - ((int)row.Id).Equals(123); - ((string)row.Name).Equals("abc"); - } - - public void Issue151_ExpandoObjectArgsExec() - { - dynamic args = new ExpandoObject(); - args.Id = 123; - args.Name = "abc"; - connection.Execute("create table #issue151 (Id int not null, Name nvarchar(20) not null)"); - connection.Execute("insert #issue151 values(@Id, @Name)", (object)args).IsEqualTo(1); - var row = connection.Query("select Id, Name from #issue151").Single(); - ((int)row.Id).Equals(123); - ((string)row.Name).Equals("abc"); - } - - public void Issue192_InParameterWorksWithSimilarNames() - { - var rows = connection.Query(@" -declare @Issue192 table ( - Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), - Field_1 INT NOT NULL); -insert @Issue192(Field_1) values (1), (2), (3); -SELECT * FROM @Issue192 WHERE Field IN @Field AND Field_1 IN @Field_1", - new { Field = new[] { 1, 2 }, Field_1 = new[] { 2, 3 } }).Single(); - ((int)rows.Field).IsEqualTo(2); - ((int)rows.Field_1).IsEqualTo(2); - } - - public void Issue192_InParameterWorksWithSimilarNamesWithUnicode() - { - var rows = connection.Query(@" -declare @Issue192 table ( - Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), - Field_1 INT NOT NULL); -insert @Issue192(Field_1) values (1), (2), (3); -SELECT * FROM @Issue192 WHERE Field IN @µ AND Field_1 IN @µµ", - new { µ = new[] { 1, 2 }, µµ = new[] { 2, 3 } }).Single(); - ((int)rows.Field).IsEqualTo(2); - ((int)rows.Field_1).IsEqualTo(2); - } - - class _ExplicitConstructors - { - public int Field { get; set; } - public int Field_1 { get; set; } - - private bool WentThroughProperConstructor; - - public _ExplicitConstructors() { } - - [ExplicitConstructor] - public _ExplicitConstructors(string foo, int bar) - { - WentThroughProperConstructor = true; - } - - public bool GetWentThroughProperConstructor() - { - return WentThroughProperConstructor; - } - } - - public void ExplicitConstructors() - { - var rows = connection.Query<_ExplicitConstructors>(@" -declare @ExplicitConstructors table ( - Field INT NOT NULL PRIMARY KEY IDENTITY(1,1), - Field_1 INT NOT NULL); -insert @ExplicitConstructors(Field_1) values (1); -SELECT * FROM @ExplicitConstructors" -).ToList(); - - rows.Count.IsEqualTo(1); - rows[0].Field.IsEqualTo(1); - rows[0].Field_1.IsEqualTo(1); - rows[0].GetWentThroughProperConstructor().IsTrue(); - } - - public void Issue220_InParameterCanBeSpecifiedInAnyCase() - { - // note this might fail if your database server is case-sensitive - connection.Query("select * from (select 1 as Id) as X where Id in @ids", new { Ids = new[] { 1 } }) - .IsSequenceEqualTo(new[] { 1 }); - } - - public void SO29343103_UtcDates() - { - const string sql = "select @date"; - var date = DateTime.UtcNow; - var returned = connection.Query(sql, new { date }).Single(); - var delta = returned - date; - Assert.IsTrue(delta.TotalMilliseconds >= -1 && delta.TotalMilliseconds <= 1); - } -#if DNXCORE50 - [FrameworkFail("https://github.com/dotnet/corefx/issues/1612")] -#endif - public void Issue261_Decimals() - { - var parameters = new DynamicParameters(); - parameters.Add("c", dbType: DbType.Decimal, direction: ParameterDirection.Output, precision: 10, scale: 5); - connection.Execute("create proc #Issue261 @c decimal(10,5) OUTPUT as begin set @c=11.884 end"); - connection.Execute("#Issue261", parameters, commandType: CommandType.StoredProcedure); - var c = parameters.Get("c"); - c.IsEqualTo(11.884M); - } -#if DNXCORE50 - [FrameworkFail("https://github.com/dotnet/corefx/issues/1612")] -#endif - public void Issue261_Decimals_ADONET_SetViaBaseClass() - { - Issue261_Decimals_ADONET(true); - } - - public void Issue261_Decimals_ADONET_SetViaConcreteClass() - { - Issue261_Decimals_ADONET(false); - } - private void Issue261_Decimals_ADONET(bool setPrecisionScaleViaAbstractApi) - { - try - { - using (var cmd = connection.CreateCommand()) - { - cmd.CommandText = "create proc #Issue261Direct @c decimal(10,5) OUTPUT as begin set @c=11.884 end"; - cmd.ExecuteNonQuery(); - } - } - catch { /* we don't care that it already exists */ } - - using (var cmd = connection.CreateCommand()) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandText = "#Issue261Direct"; - var c = cmd.CreateParameter(); - c.ParameterName = "c"; - c.Direction = ParameterDirection.Output; - c.Value = DBNull.Value; - c.DbType = DbType.Decimal; - - if (setPrecisionScaleViaAbstractApi) - { -#if DNXCORE50 - DbParameter baseParam = c; -#else - IDbDataParameter baseParam = c; -#endif - baseParam.Precision = 10; - baseParam.Scale = 5; - } - else - { - c.Precision = 10; - c.Scale = 5; - } - - cmd.Parameters.Add(c); - cmd.ExecuteNonQuery(); - decimal value = (decimal)c.Value; - value.IsEqualTo(11.884M); - } - } - - public void BasicDecimals() - { - var c = connection.Query("select @c", new { c = 11.884M }).Single(); - c.IsEqualTo(11.884M); - } - [SkipTest] - public void Issue263_Timeout() - { - var watch = Stopwatch.StartNew(); - var i = connection.Query("waitfor delay '00:01:00'; select 42;", commandTimeout: 300, buffered: false).Single(); - watch.Stop(); - i.IsEqualTo(42); - var minutes = watch.ElapsedMilliseconds / 1000 / 60; - Assert.IsTrue(minutes >= 0.95 && minutes <= 1.05); - } -#if EXTERNALS - public void SO29596645_TvpProperty() - { - try { connection.Execute("CREATE TYPE SO29596645_ReminderRuleType AS TABLE (id int NOT NULL)"); } - catch { } - connection.Execute(@"create proc #SO29596645_Proc (@Id int, @Rules SO29596645_ReminderRuleType READONLY) - as begin select @Id + ISNULL((select sum(id) from @Rules), 0); end"); - var obj = new SO29596645_OrganisationDTO(); - int val = connection.Query("#SO29596645_Proc", obj.Rules, commandType: CommandType.StoredProcedure).Single(); - - // 4 + 9 + 7 = 20 - val.IsEqualTo(20); - - } -#endif - public void Issue268_ReturnQueryMultiple() - { - connection.Execute(@"create proc #TestProc268 (@a int, @b int, @c int)as -begin -select @a; - -select @b - -return @c; -end"); - - - var p = new DynamicParameters(new { a = 1, b = 2, c = 3 }); - p.Add("RetVal", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); - - using (var reader = connection.QueryMultiple("#TestProc268", p, commandType: CommandType.StoredProcedure)) - { - reader.Read(); - } - var retVal = p.Get("RetVal"); - retVal.IsEqualTo(3); - } -#if EXTERNALS - class SO29596645_RuleTableValuedParameters : Dapper.SqlMapper.IDynamicParameters { - private string parameterName; - - public SO29596645_RuleTableValuedParameters(string parameterName) - { - this.parameterName = parameterName; - } - - - public void AddParameters(IDbCommand command, Dapper.SqlMapper.Identity identity) - { - Console.WriteLine("> AddParameters"); - SqlCommand lazy = (SqlCommand)command; - lazy.Parameters.AddWithValue("Id", 7); - DataTable table = new DataTable { - Columns = {{"Id", typeof(int)}}, - Rows = {{4}, {9}} - }; - lazy.Parameters.AddWithValue("Rules", table); - Console.WriteLine("< AddParameters"); - } - } - class SO29596645_OrganisationDTO - { - public SO29596645_RuleTableValuedParameters Rules { get; private set; } - - public SO29596645_OrganisationDTO() - { - Rules = new SO29596645_RuleTableValuedParameters("@Rules"); - } - } -#endif -#if POSTGRESQL - - class Cat - { - public int Id { get; set; } - public string Breed { get; set; } - public string Name { get; set; } - } - - Cat[] Cats = { - new Cat() { Breed = "Abyssinian", Name="KACTUS"}, - new Cat() { Breed = "Aegean cat", Name="KADAFFI"}, - new Cat() { Breed = "American Bobtail", Name="KANJI"}, - new Cat() { Breed = "Balinese", Name="MACARONI"}, - new Cat() { Breed = "Bombay", Name="MACAULAY"}, - new Cat() { Breed = "Burmese", Name="MACBETH"}, - new Cat() { Breed = "Chartreux", Name="MACGYVER"}, - new Cat() { Breed = "German Rex", Name="MACKENZIE"}, - new Cat() { Breed = "Javanese", Name="MADISON"}, - new Cat() { Breed = "Persian", Name="MAGNA"} - }; - - public void TestPostresqlArrayParameters() - { - using (var conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=dappertest;Password=dapperpass;Database=dappertest;Encoding=UNICODE")) - { - conn.Open(); - IDbTransaction transaction = conn.BeginTransaction(); - conn.Execute("create table tcat ( id serial not null, breed character varying(20) not null, name character varying (20) not null);"); - conn.Execute("insert into tcat(breed, name) values(:breed, :name) ", Cats); - - var r = conn.Query("select * from tcat where id=any(:catids)", new { catids = new[] { 1, 3, 5 } }); - r.Count().IsEqualTo(3); - r.Count(c => c.Id == 1).IsEqualTo(1); - r.Count(c => c.Id == 3).IsEqualTo(1); - r.Count(c => c.Id == 5).IsEqualTo(1); - transaction.Rollback(); - } - } -#endif - - public void SO30156367_DynamicParamsWithoutExec() - { - var dbParams = new DynamicParameters(); - dbParams.Add("Field1", 1); - var value = dbParams.Get("Field1"); - value.IsEqualTo(1); - } - - public void SO30435185_InvalidTypeOwner() - { - try { - string sql = @" INSERT INTO #XXX - (XXXId, AnotherId, ThirdId, Value, Comment) - VALUES - (@XXXId, @AnotherId, @ThirdId, @Value, @Comment); select @@rowcount as [Foo]"; - - var command = new - { - MyModels = new[] - { - new {XXXId = 1, AnotherId = 2, ThirdId = 3, Value = "abc", Comment = "def" } - } - }; - var parameters = command - .MyModels - .Select(model => new - { - XXXId = model.XXXId, - AnotherId = model.AnotherId, - ThirdId = model.ThirdId, - Value = model.Value, - Comment = model.Comment - }) - .ToArray(); - - var rowcount = (int)connection.Query(sql, parameters).Single().Foo; - rowcount.IsEqualTo(1); - - Assert.Fail(); - } catch(InvalidOperationException ex) - { - ex.Message.IsEqualTo("An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context"); - } - } - } -} diff --git a/Tests/app.config b/Tests/app.config deleted file mode 100644 index a1458a1e9..000000000 --- a/Tests/app.config +++ /dev/null @@ -1,42 +0,0 @@ - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/bltoolkit/BLToolkit.4.dll b/Tests/bltoolkit/BLToolkit.4.dll deleted file mode 100644 index 19e39d380..000000000 Binary files a/Tests/bltoolkit/BLToolkit.4.dll and /dev/null differ diff --git a/Tests/packages.config b/Tests/packages.config deleted file mode 100644 index 8c26dae72..000000000 --- a/Tests/packages.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..e23831f3a --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,62 @@ +image: Visual Studio 2017 + +skip_branch_with_pr: true +skip_tags: true +skip_commits: + files: + - '**/*.md' + +environment: + Appveyor: true + # Postgres + POSTGRES_PATH: C:\Program Files\PostgreSQL\9.6 + PGUSER: postgres + PGPASSWORD: Password12! + POSTGRES_ENV_POSTGRES_USER: postgres + POSTGRES_ENV_POSTGRES_PASSWORD: Password12! + POSTGRES_ENV_POSTGRES_DB: test + # MySQL + MYSQL_PATH: C:\Program Files\MySql\MySQL Server 5.7 + MYSQL_PWD: Password12! + MYSQL_ENV_MYSQL_USER: root + MYSQL_ENV_MYSQL_PASSWORD: Password12! + MYSQL_ENV_MYSQL_DATABASE: test +services: + - mssql2016 + - mysql + - postgresql + +init: + - git config --global core.autocrlf input + - SET PATH=%POSTGRES_PATH%\bin;%MYSQL_PATH%\bin;%PATH% + +nuget: + disable_publish_on_pr: true + +build_script: + # Postgres + - createdb test + # MySQL + - mysql -e "create database test;" --user=root + # Our stuff + - ps: .\build.ps1 -BuildNumber "$env:APPVEYOR_BUILD_NUMBER" -Version "$env:APPVEYOR_REPO_TAG_NAME" -PullRequestNumber "$env:APPVEYOR_PULL_REQUEST_NUMBER" -CreatePackages $true + +test: off +artifacts: + - path: .\.nupkgs\*.nupkg + +deploy: +- provider: NuGet + server: https://www.myget.org/F/stackoverflow/api/v2 + on: + branch: master + api_key: + secure: P/UHxq2DEs0GI1SoDXDesHjRVsSVgdywz5vmsnhFQQY5aJgO3kP+QfhwfhXz19Rw + symbol_server: https://www.myget.org/F/stackoverflow/symbols/api/v2/package +- provider: NuGet + server: https://www.myget.org/F/dapper/api/v2 + on: + branch: master + api_key: + secure: PV7ERAltWWLhy7AT2h+Vb5c1BM9/WFgvggb+rKyQ8hDg3fYqpZauYdidOOgt2lp4 + symbol_server: https://www.myget.org/F/dapper/api/v2/package \ No newline at end of file diff --git a/build.cmd b/build.cmd new file mode 100644 index 000000000..7d4894cb4 --- /dev/null +++ b/build.cmd @@ -0,0 +1,2 @@ +@ECHO OFF +PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' %*; exit $LASTEXITCODE" \ No newline at end of file diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 000000000..8d81e3f6b --- /dev/null +++ b/build.ps1 @@ -0,0 +1,130 @@ +[CmdletBinding(PositionalBinding=$false)] +param( + [string] $Version, + [string] $BuildNumber, + [bool] $CreatePackages, + [bool] $RunTests = $true, + [string] $PullRequestNumber +) + +function CalculateVersion() { + if ($version) { + return $version + } + + $semVersion = ''; + $path = $pwd; + while (!$semVersion) { + if (Test-Path (Join-Path $path "semver.txt")) { + $semVersion = Get-Content (Join-Path $path "semver.txt") + break + } + if ($PSScriptRoot -eq $path) { + break + } + $path = Split-Path $path -Parent + } + + if (!$semVersion) { + Write-Error "semver.txt was not found in $pwd or any parent directory" + Exit 1 + } + + if ($semVersion -contains "-") { + return "$semVersion-$BuildNumber" #prerelease + } else { + return "$semVersion" #release + } + +} + +if ($BuildNumber -and $BuildNumber.Length -lt 5) { + $BuildNumber = $BuildNumber.PadLeft(5, "0") +} + +Write-Host "Run Parameters:" -ForegroundColor Cyan +Write-Host "Version: $Version" +Write-Host "BuildNumber: $BuildNumber" +Write-Host "CreatePackages: $CreatePackages" +Write-Host "RunTests: $RunTests" +Write-Host "Base Version: $(CalculateVersion)" + +$packageOutputFolder = "$PSScriptRoot\.nupkgs" +$projectsToBuild = + 'Dapper', + 'Dapper.StrongName', + 'Dapper.Contrib', + 'Dapper.EntityFramework', + 'Dapper.EntityFramework.StrongName', + 'Dapper.Rainbow', + 'Dapper.SqlBuilder' + +$testsToRun = + 'Dapper.Tests', + 'Dapper.Tests.Contrib' + +if (!$Version -and !$BuildNumber) { + Write-Host "ERROR: You must supply either a -Version or -BuildNumber argument. ` + Use -Version `"4.0.0`" for explicit version specification, or ` + Use -BuildNumber `"12345`" for generation using -" -ForegroundColor Yellow + Exit 1 +} + +if ($PullRequestNumber) { + Write-Host "Building for a pull request (#$PullRequestNumber), skipping packaging." -ForegroundColor Yellow + $CreatePackages = $false +} + +if ($RunTests) { + dotnet restore /ConsoleLoggerParameters:Verbosity=Quiet + foreach ($project in $testsToRun) { + Write-Host "Running tests: $project (all frameworks)" -ForegroundColor "Magenta" + Push-Location ".\$project" + + dotnet xunit + if ($LastExitCode -ne 0) { + Write-Host "Error with tests, aborting build." -Foreground "Red" + Pop-Location + Exit 1 + } + + Write-Host "Tests passed!" -ForegroundColor "Green" + Pop-Location + } +} + +if ($CreatePackages) { + mkdir -Force $packageOutputFolder | Out-Null + Write-Host "Clearing existing $packageOutputFolder..." -NoNewline + Get-ChildItem $packageOutputFolder | Remove-Item + Write-Host "done." -ForegroundColor "Green" + + Write-Host "Building all packages" -ForegroundColor "Green" +} + +foreach ($project in $projectsToBuild) { + Write-Host "Working on $project`:" -ForegroundColor "Magenta" + + Push-Location ".\$project" + + $semVer = CalculateVersion + $targets = "Restore" + + Write-Host " Restoring " -NoNewline -ForegroundColor "Magenta" + if ($CreatePackages) { + $targets += ";Pack" + Write-Host "and packing " -NoNewline -ForegroundColor "Magenta" + } + Write-Host "$project... (Version:" -NoNewline -ForegroundColor "Magenta" + Write-Host $semVer -NoNewline -ForegroundColor "Cyan" + Write-Host ")" -ForegroundColor "Magenta" + + + dotnet msbuild "/t:$targets" "/p:Configuration=Release" "/p:Version=$semVer" "/p:PackageOutputPath=$packageOutputFolder" "/p:CI=true" + + Pop-Location + + Write-Host "Done." -ForegroundColor "Green" + Write-Host "" +} +Write-Host "Build Complete." -ForegroundColor "Green" \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..48be0b749 --- /dev/null +++ b/build.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +echo "" +echo "Installing dotnet cli..." +echo "" + +export DOTNET_INSTALL_DIR="./.dotnet/" + +tools/install.sh + +origPath=$PATH +export PATH="./dotnet/bin/:$PATH" + +if [ $? -ne 0 ]; then + echo >&2 ".NET Execution Environment installation has failed." + exit 1 +fi + +export DOTNET_HOME="$DOTNET_INSTALL_DIR/cli" +export PATH="$DOTNET_HOME/bin:$PATH" + +export autoGeneratedVersion=false + +# Generate version number if not set +if [[ -z "$BuildSemanticVersion" ]]; then + autoVersion="$((($(date +%s) - 1451606400)/60))-$(date +%S)" + export BuildSemanticVersion="rc2-$autoVersion" + autoGeneratedVersion=true + + echo "Set version to $BuildSemanticVersion" +fi + +sed -i '' "s/99.99.99-rc2/1.0.0-$BuildSemanticVersion/g" */*/project.json + +# Restore packages and build product +dotnet restore -v Minimal # Restore all packages + +# Build all +# Note the exclude: https://github.com/dotnet/cli/issues/1342 +for d in Dapper*/; do + if [ "$d" != "*.EntityFramework.StrongName" ]; then + echo "Building $d" + pushd "$d" + dotnet build -f netstandard1.3 + popd + fi +done + +# Run tests +for d in *.Tests*/; do + echo "Testing $d" + pushd "$d" + dotnet test -f netcoreapp1.0 + popd +done + +sed -i '' "s/1.0.0-$BuildSemanticVersion/99.99.99-rc2/g" */*/project.json + +if [ $autoGeneratedVersion ]; then + unset BuildSemanticVersion +fi + +export PATH=$origPath \ No newline at end of file diff --git a/dapper.nuspec b/dapper.nuspec deleted file mode 100644 index b191fb021..000000000 --- a/dapper.nuspec +++ /dev/null @@ -1,80 +0,0 @@ - - - - Dapper - 1.42 - Dapper dot net - Sam Saffron,Marc Gravell - Sam Saffron,Marc Gravell - http://www.apache.org/licenses/LICENSE-2.0 - https://github.com/StackExchange/dapper-dot-net - false - A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc.. - A high performance Micro-ORM - orm sql micro-orm - - - - - - - - * 1.40 - workaround for broken GetValues() on Mono; add AsList() - * 1.39 - fix case on SQL CLR types; grid-reader should respect no-cache flags; make parameter inclusion case-insensitive - * 1.38 - specify constructor explicitly; allow value-type parameters (albeit: boxed) - * 1.37 - Reuse StringBuilder instances when possible (list parameters in particular) - * 1.36 - Fix Issue 192 (expanded parameter naming glitch) and Issue 178 (execute reader now wraps the command/reader pair, to extend the command lifetime; - * note that the underlying command/reader are available by casting to IWrappedDataReader) - * 1.35 - Fix Issue 151 (Execute should work with ExpandoObject etc); Fix Issue 182 (better support for db-type when using `object` values); - * output expressions / callbacks in dynamic args (via Derek); arbitrary number of types in multi-mapping (via James Holwell); - * fix DbString/Oracle bug (via Mauro Cerutti); new support for **named positional arguments** - * 1.34 - Support for SqlHierarchyId (core) - * 1.33 - Support for SqlGeometry (core) and DbGeometry (EF) - * 1.32 - Support for SqlGeography in core library - * 1.31 - Fix issue with error message when there is a column/type mismatch - * 1.30 - Better async cancellation - * 1.29 - Make underscore name matching optional (opt-in) - this can be a breaking change for some people - * 1.28 - Much better numeric type conversion; fix for large oracle strings; map Foo_Bar to FooBar (etc); ExecuteScalar added; stability fixes - * 1.27 - Fixes for type-handler parse; ensure type-handlers get last dibs on configuring parameters - * 1.26 - New type handler API for extension support - * 1.25 - Command recycling and disposing during pipelined async multi-exec; enable pipeline (via sync-over-async) for sync API - * 1.24 - Implement pipelined async multi-exec, when flag is specified (only - requires MARS etc) - * 1.23 - Improved support for optimize hints (@foo unknown) with list expansions - * 1.22 - Literal support now extends to enumerable types (for "in" etc usage); move to command-flags model for "buffered" etc - * 1.21 - Limit literals to numeric types; for enums, use value not name - * 1.20 - Improved async support in .NET 4.5 (lots of contributions from users here, including JasonPunyon, kwaclaw, tugberkugurlu, and mgravell); - * Now supports literal replacement via {=foo}; new ExecuteReader method (via JJoe2); support for ICustomQueryParameter - * dictionary members (via Blackjacketmack); culture sensitivity (via tms); fixes for time parameters (via olegKoshmeliuk); - * and a range of additional tweaks, twiddles, fixes and improvements. - * 1.13 - Added support for Table Valued Parameters as part of anonymous objects - * - Added support for async - * - Added support for sharing strategies between databases - * - Rewrote dynamic implementation - * 1.12.1 - Minor deploy glitch (should now include intellisense files!) - * 1.12 - Better automatic type-mapping (int vs long, float vs double, etc) - * Fixed: bug with indexer properties - * 1.11 - Custom type-map support - * 1.10 - Fixed: error-handling could lose original exception if reader closed - * 1.9 - Added: better schema change detection - * Fixed: enum support for T in Query-of-T - * Added: dictionary support for parameters - * 1.8 - Started release notes - * Important: Dapper is now shipping as a DLL which will work on .net 3.5 or .net 4.0, - * This improves the debugging experience as you no longer break into dapper when SQL fails. - * Added: ParameterNames on DynamicParameters - - - - - - - - - - - - - - - - diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..c4192631f --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..bcbbea2d1 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,206 @@ +# Dapper - a simple object mapper for .Net + +## Overview + +A brief guide is available [on github](https://github.com/StackExchange/dapper-dot-net/blob/master/Readme.md) + +Questions on Stack Overflow should be tagged [`dapper`](http://stackoverflow.com/questions/tagged/dapper) + +## Installation + +From NuGet: + + Install-Package Dapper + +or + + Install-Package Dapper.StrongName + +Note: to get the latest pre-release build, add ` -Pre` to the end of the command. + +## Release Notes + +### 1.50.4 + +- Added back missing .NET Standard functionality (restored in `netstandard2.0`) +- Bumped `SqlClient` dependency to 4.4.0 (to help propagate the newer client) + +### 1.50.2 + +- fix issue 569 (`in` expansions using ODBC pseudo-positional arguments) + +### 1.50.1 + +- change to how `string_split` is used for `InListStringSplitCount` + +### 1.50.0 + +- no changes; stable release + +### 1.50.0-rc3 + +- Updated for .Net Core RTM package dependencies + +### 1.50.0-rc2b + +- new `InListStringSplitCount` global setting; if set (non-negative), `in @foo` expansions (of at least the specified size) of primitive types (`int`, `tinyint`, `smallint`, `bigint`) are implemented via the SQL Server 2016 (compat level 130) `STRING_SPLIT` function +- fix for incorrect conversions in `GridReader` (#254) + +### 1.50.0-rc2 / 1.50.0-rc2a + +- packaging for .NET Core rc2 + +### 1.50-beta9 + +- fix for `PadListExpansions` to work correctly with `not in` scenarios; now uses last non-null value instead of `null`; if none available, don't pad +- fix problems with single-result/single-row not being supported by all providers (basically: sqlite, #466) +- fix problems with enums - nulls (#467) and primitive values (#468) +- add support for C# 6 get-only properties (#473) +- add support for various xml types (#427) + +### 1.50-beta8 + +- addition of `GetRowParser` extension method on `IDataReader` API - allows manual construction of discriminated unions, etc +- addition of `Settings.PadListExpansions` - reduces query-plan saturation by padding list expansions with `null` values (opt-in, because on some DB configurations this could change the meaning) *(note: bad choice of `null` revised in 1.50-beta9)* +- addition of `Settings.ApplyNullValues` - assigns (rather than ignores) `null` values when possible +- fix for #461 - ensure type-handlers work for constructor-based initialization +- fix for #455 - make the `LookupDbType` method available again + +### 1.50-beta7 + +- addition of `GetRowParser(Type)` (and refactor the backing store for readers to suit) +- column hash should consider type, not just name + +### 1.50-beta6 + +- fix for issue #424 - defensive `SqlDataRecord` handling + +### 1.50-beta5 + +- Add "single", "first", "single or default" to complement the "first or default" options from 1.50-beta4 +- Use single-row/single-result when possible +- Fix for proxy-generator (issue #361) + +### 1.50-beta4 + +- Add `QueryFirstOrDefault` / `ReadFirstOrDefault` methods that optimize the single-row scenario +- remove some legacy `dynamic` usage from the async API +- make `DynamicTypeMap` public again (error during core-clr migration) +- use `Hashtable` again on core-clr + +### 1.50-beta3 + +- Core CLR support: add explicit `dnx451` support in addition to `dotnet5.4` (aka `netstandard1.4`) + +### 1.50-beta2 + +- Core CLR now targets rc1 / 23516 +- various Core CLR fixes +- code cleanup and C# 6 usage (assorted) + +### 1.50-beta1 + +- split `SqlMapper.cs` as it was becoming too unmaintainable; NuGet is now the only supported deployment channel +- remove down-level C# requirements, as "drop in the file" is no longer the expected usage +- `SqlMapper.Settings` added; provides high-level global configuration; initially `CommandTimeout` (@Irrational86) +- improve error message if an array is used as a parameter in an invalid context +- add `Type[]` support for `GridReader.Read` scenarios (@NikolayGlynchak) +- support for custom type-maps in collection parameters (@gjsduarte) +- fix incorrect cast in `QueryAsync` (@phnx47, #346) +- fix incorrect null handling re `UdtTypeName` (@perliedman) +- support for `SqlDataRecord` (@sqmgh) +- allow `DbString` default for `IsAnsi` to be specified (@kppullin) +- provide `TypeMapProvider` with lazy func-based initialization (@garyhuntddn) +- core-clr updated to beta-8 and various cleanups/fixes +- built using core-clr build tools + + +### 1.42 + +- fix bug with dynamic parameters where `.Get` is called before the command is executed + +### 1.41-beta5 + +- core-clr packaging build and workarounds +- fix bug with literal `{=val}` boolean replacements + +### 1.41-beta4 + +- core-clr packaging build +- improve mapping to enum members (@BrianJolly) + +### 1.41-beta + +- core-clr packaging build + +### 1.41-alpha + +- introduces dnx (core-clr) experimental changes +- adds `SqlBuilder` project +- improve error message when incorrectly accessing parameter values + +### 1.40 + +- workaround for broken `GetValues()` on Mono; add `AsList()` + +### 1.39 + +- fix case on SQL CLR types; grid-reader should respect no-cache flags; make parameter inclusion case-insensitive + +### 1.38 + +- specify constructor explicitly; allow value-type parameters (albeit: boxed) + +### 1.37 + +- Reuse StringBuilder instances when possible (list parameters in particular) + +### 1.36 + +- Fix Issue #192 (expanded parameter naming glitch) and Issue #178 (execute reader now wraps the command/reader pair, to extend the command lifetime; note that the underlying command/reader are available by casting to `IWrappedDataReader`) + +### 1.35 + +- Fix Issue #151 (Execute should work with `ExpandoObject` etc); Fix Issue #182 (better support for db-type when using `object` values); +- output expressions / callbacks in dynamic args (via Derek); arbitrary number of types in multi-mapping (via James Holwell); +- fix `DbString`/Oracle bug (via Mauro Cerutti); new support for **named positional arguments** + +### 1.34 + +- Support for `SqlHierarchyId` (core) + +### 1.33 + +- Support for `SqlGeometry` (core) and `DbGeometry` (EF) + +### 1.32 + +- Support for `SqlGeography` in core library + +### 1.31 + +- Fix issue with error message when there is a column/type mismatch + +### 1.30 + +- Better async cancellation + +### 1.29 + +- Make underscore name matching optional (opt-in) - this can be a breaking change for some people + +### 1.28 + +- Much better numeric type conversion; fix for large oracle strings; map `Foo_Bar` to `FooBar` (etc); `ExecuteScalar` added; stability fixes + +### 1.27 + +- Fixes for type-handler parse; ensure type-handlers get last dibs on configuring parameters + +### 1.26 + +- New type handler API for extension support + +### 1.25 + +- Command recycling and disposing during pipelined async multi-exec; enable pipeline (via sync-over-async) for sync API" diff --git a/game b/game new file mode 100644 index 000000000..b90753f27 --- /dev/null +++ b/game @@ -0,0 +1 @@ +It's 's fault! \ No newline at end of file diff --git a/nuget.config b/nuget.config new file mode 100644 index 000000000..b004e5cc7 --- /dev/null +++ b/nuget.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/packages/EntityFramework.6.1.2-beta1/content/App.config.transform b/packages/EntityFramework.6.1.2-beta1/content/App.config.transform deleted file mode 100644 index 4fa1b95a5..000000000 --- a/packages/EntityFramework.6.1.2-beta1/content/App.config.transform +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/content/Web.config.transform b/packages/EntityFramework.6.1.2-beta1/content/Web.config.transform deleted file mode 100644 index 4fa1b95a5..000000000 --- a/packages/EntityFramework.6.1.2-beta1/content/Web.config.transform +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.dll b/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.dll deleted file mode 100644 index 205f69996..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.xml b/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.xml deleted file mode 100644 index 834b69398..000000000 --- a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.SqlServer.xml +++ /dev/null @@ -1,1909 +0,0 @@ - - - - EntityFramework.SqlServer - - - - - An that retries actions that throw exceptions caused by SQL Azure transient failures. - - - This execution strategy will retry the operation on and - if the contains any of the following error numbers: - 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for - number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the ASCII code value of the left-most character of a character expression. - The ASCII code of the first character in the input string. - A valid string. - - - Returns the character that corresponds to the specified integer ASCII value. - The character that corresponds to the specified ASCII value. - An ASCII code. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - - A of value that is the starting position of target if it is found in toSearch . - - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch at which searching begins. - - - Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. - The SOUNDEX difference between the two strings. - The first string. - The second string. - - - Returns the Unicode character with the specified integer code, as defined by the Unicode standard. - The character that corresponds to the input character code. - A character code. - - - Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. - The starting character position where the string pattern was found. - A string pattern to search for. - The string to search. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with brackets added. - The expression that quote characters will be added to. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with the specified quote characters added. - The expression that quote characters will be added to. - The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. - - - Repeats a string value a specified number of times. - The target string, repeated the number of times specified by count . - A valid string. - The value that specifies how many time to repeat target . - - - Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. - The SOUNDEX code of the input string. - A valid string. - - - Returns a string of repeated spaces. - A string that consists of the specified number of spaces. - The number of spaces. If negative, a null string is returned. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. - A string consisting of the two strings. - The target string. - The character position in stringinput where the replacement string is to be inserted. - The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . - The substring to be inserted into stringInput . - - - Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. - The character code for the first character in the input string. - A valid string. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - The angle, in radians, defined by the input cosine value. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - An angle, measured in radians. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the constant value of pi. - The numeric value of pi. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns a new datetime value based on adding an interval to the specified date. - The new date. - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new time span value based on adding an interval to the specified time span. - The new time span. - The part of the date to increment. - The value used to increment a date by a specified amount. - The time span to increment. - - - Returns a new date value based on adding an interval to the specified date. - The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new datetime value based on adding an interval to the specified date. - - A of value that is the new date. - - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The value specifying the number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two Dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The the specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database timestamp. - - - Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database UTC timestamp. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input values. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the current date and time. - The current date and time. - - - Returns the name of the current user. - The name of the current user. - - - Returns the workstation name. - The name of the workstation. - - - Returns a database user name corresponding to a specified identification number. - The user name. - A user ID. - - - Returns a database user name corresponding to a specified identification number. - The user name. - - - Indicates whether the input value is a valid numeric type. - 1 if the input expression is a valid numeric data type; otherwise, 0. - A string expression. - - - Indicates whether the input value is a valid date or time. - 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. - The tested value. - - - - Provider to convert provider agnostic migration operations into SQL commands - that can be run against a Microsoft SQL Server database. - - - - - Converts a set of migration operations into Microsoft SQL Server specific SQL. - - The operations to be converted. - Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Generates the specified update database operation which represents applying a series of migrations. - The generated script is idempotent, meaning it contains conditional logic to check if individual migrations - have already been applied and only apply the pending ones. - - The update database operation. - - - - Generates SQL for a . - Allows derived providers to handle additional operation types. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Creates an empty connection for the current provider. - Allows derived providers to use connection other than . - - An empty connection for the current provider. - - - - Generates the specified create procedure operation. - - The create procedure operation. - - - - Generates the specified alter procedure operation. - - The alter procedure operation. - - - - Generates the specified drop procedure operation. - - The drop procedure operation. - - - - Generates SQL for a . This method differs from - in that it will - create the target database schema if it does not already exist. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Writes CREATE TABLE SQL to the target writer. - - The operation to produce SQL for. - The target writer. - - - - Override this method to generate SQL when the definition of a table or its attributes are changed. - The default implementation of this method does nothing. - - The operation describing changes to the table. - - - - Generates SQL to mark a table as a system table. - Generated SQL should be added using the Statement method. - - The table to mark as a system table. - The to write the generated SQL to. - - - - Generates SQL to create a database schema. - Generated SQL should be added using the Statement method. - - The name of the schema to create. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Call this method to generate SQL that will attempt to drop the default constraint created - when a column is created. This method is usually called by code that overrides the creation or - altering of columns. - - The table to which the constraint applies. - The column to which the constraint applies. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement or StatementBatch methods. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates the specified rename procedure operation. - - The rename procedure operation. - - - - Generates the specified move procedure operation. - - The move procedure operation. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for the given column model. This method is called by other methods that - process columns and can be overridden to change the SQL generated. - - The column for which SQL is being generated. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL to specify a constant byte[] default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant bool default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTime default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTimeOffset default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant Guid default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant string default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant TimeSpan default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geogrpahy default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geometry default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify the data type of a column. - This method just generates the actual type, not the SQL to create the column. - - The definition of the column. - SQL representing the data type. - - - - Generates a quoted name. The supplied name may or may not contain the schema. - - The name to be quoted. - The quoted name. - - - - Quotes an identifier for SQL Server. - - The identifier to be quoted. - The quoted identifier. - - - - Adds a new Statement to be executed against the database. - - The statement to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - The batch terminator for the database provider. - - - - Gets a new that can be used to build SQL. - This is just a helper method to create a writer. Writing to the writer will - not cause SQL to be registered for execution. You must pass the generated - SQL to the Statement method. - - An empty text writer to use for SQL generation. - - - - Adds a new Statement to be executed against the database. - - The writer containing the SQL to be executed. - The batch terminator for the database provider. - - - - Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. - - The SQL to split into one ore more statements to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - - - - Returns the column default value to use for store-generated GUID columns when - no default value is explicitly specified in the migration. - Returns newsequentialid() for on-premises SQL Server 2005 and later. - Returns newid() for SQL Azure. - - Either newsequentialid() or newid() as described above. - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geography instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. - The geography value. - - - Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geography instance is less than or equal to a specified value - The geography value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. - the maximum angle between the point returned by EnvelopeCenter(). - The geography value. - - - Returns a point that can be used as the center of a bounding circle for the geography instance. - A SqlGeography value that specifies the location of the center of a bounding circle. - The geography value. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geography value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Tests if the SqlGeography instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geography value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Returns the total number of rings in a Polygon instance. - The total number of rings. - The geography value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geography value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). - A SqlGeography object that represents the ring specified by n. - The geography value. - An int expression between 1 and the number of rings in a polygon instance. - - - Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geometry instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. - The geometry value. - - - Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geometry instance is less than or equal to a specified value - The geometry value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Tests if the SqlGeometry instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geometry value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geometry value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. - The converted geometry instance. - The geometry value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geometry value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - - The DbProviderServices implementation for the SqlClient provider for SQL Server. - - - Note that instance of this type also resolve additional provider services for Microsoft SQL Server - when this type is registered as an EF provider either using an entry in the application's config file - or through code-based registration in . - The services resolved are: - Requests for are resolved to a Singleton instance of - to create connections to SQL Express by default. - Requests for for the invariant name "System.Data.SqlClient" - for any server name are resolved to a delegate that returns a - to provide a non-retrying policy for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to instances to provide default Migrations SQL - generation for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to a Singleton instance of to provide default spatial - services for SQL Server. - - - - - This is the well-known string using in configuration files and code-based configuration as - the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and - Entity Framework provider services. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object, given the connection and command tree - - provider manifest that was determined from metadata - command tree for the statement - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - can cause deadlocks. - So here overriding to provide a method that does not clone DesignTimeVisible. - - the object to clone (must be a ) - a clone of the - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - - Returns the provider manifest by using the specified version information. - - The token information associated with the provider manifest. - The provider manifest by using the specified version information. - - - - Gets a spatial data reader for SQL Server. - - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Gets a spatial data reader for SQL Server. - - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Create the database and the database objects. - If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. - Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. - However if we try to replicate the name under which it would be attached, the following scenario would fail: - The file does not exist, but registered with database. - The user calls: If (DatabaseExists) DeleteDatabase - CreateDatabase - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Delete the database for the given connection. - There are three cases: - 1. If Initial Catalog is specified (X) drop database X - 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F - if none throw - 3. If niether the catalog not the file name is specified - throw - Note that directly deleting the files does not work for a remote server. However, even for not attached - databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase - - Connection - Timeout for internal commands. - Item Collection. - - - - The Singleton instance of the SqlProviderServices type. - - - - - Set this flag to false to prevent values from being truncated to - the scale (number of decimal places) defined for the column. The default value is true, - indicating that decimal values will be truncated, in order to prevent breaking existing - applications that depend on this behavior. - - - With this flag set to true objects are created with their Scale - properties set. When this flag is set to false then the Scale properties are not set, meaning - that the truncation behavior of SqlParameter is avoided. - - - - - An implementation of to provide support for geospatial types when using - Entity Framework with Microsoft SQL Server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.dll b/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.dll deleted file mode 100644 index 9277acd2c..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.xml b/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.xml deleted file mode 100644 index 677e42482..000000000 --- a/packages/EntityFramework.6.1.2-beta1/lib/net40/EntityFramework.xml +++ /dev/null @@ -1,45377 +0,0 @@ - - - - EntityFramework - - - - - Represents a result mapping for a function import. - - - - - Base class for items in the mapping space (DataSpace.CSSpace) - - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Gets the type mappings. - - - - - Specifies a mapping condition evaluated by checking whether the value - of the a property/column is null or not null. - - - - - Mapping metadata for Conditional property mapping on a type. - Condition Property Mapping specifies a Condition either on the C side property or S side property. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the condition property map elements in the - above example. - - - - - Mapping metadata for all types of property mappings. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all property map elements in the - above example. This includes the scalar property maps, complex property maps - and end property maps. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped column. - - - - - Creates an IsNullConditionMapping instance. - - An EdmProperty that specifies a property or column. - A boolean that indicates whether to perform a null or a not-null check. - - - - Gets a bool that specifies whether the condition is evaluated by performing a null check - or a not-null check. - - - - - Specifies a mapping condition evaluated by comparing the value of - a property or column with a given value. - - - - - Creates a ValueConditionMapping instance. - - An EdmProperty that specifies a property or column. - An object that specifies the value to compare with. - - - - Gets an object that specifies the value to check against. - - - - - Serializes an that conforms to the restrictions of a single - CSDL schema file to an XML writer. The model to be serialized must contain a single - . - - - - - Serialize the to the XmlWriter. - - - The EdmModel to serialize. - - The XmlWriter to serialize to. - The serialized model's namespace. - true if the model is valid; otherwise, false. - - - - Occurs when an error is encountered serializing the model. - - - - - Information about an error that occurred processing an Entity Framework model. - - - - - Gets an optional value indicating which property of the source item caused the event to be raised. - - - - - Gets an optional descriptive message the describes the error that is being raised. - - - - - Gets a value indicating the that caused the event to be raised. - - - - - Contains additional attributes and properties of the - - - Note that objects are short lived and exist only to - make initialization easier. Instance of this type are not - compared to each other and arrays returned by array properties are copied to internal - collections in the ctor. Therefore it is fine to suppress the - Code Analysis messages. - - - - Gets or sets the function schema. - The function schema. - - - Gets or sets the store function name. - The store function name. - - - Gets or sets the command text associated with the function. - The command text associated with the function. - - - Gets or sets the entity sets for the function. - The entity sets for the function. - - - Gets a value that indicates whether this is an aggregate function. - true if this is an aggregate function; otherwise, false. - - - Gets or sets whether this function is a built-in function. - true if this function is a built-in function; otherwise, false. - - - Gets or sets whether the function contains no arguments. - true if the function contains no arguments; otherwise, false. - - - Gets or sets whether this function can be composed. - true if this function can be composed; otherwise, false. - - - Gets or sets whether this function is from a provider manifest. - true if this function is from a provider manifest; otherwise, false. - - - Gets or sets whether this function is a cached store function. - true if this function is a cached store function; otherwise, false. - - - Gets or sets whether this function is a function import. - true if this function is a function import; otherwise, false. - - - Gets or sets the return parameters. - The return parameters. - - - Gets or sets the parameter type semantics. - The parameter type semantics. - - - Gets or sets the function parameters. - The function parameters. - - - - Serializes the storage (database) section of an to XML. - - - - - Serialize the to the - - The EdmModel to serialize - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Serialize the to the - - The EdmModel to serialize - Namespace name on the Schema element - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Occurs when an error is encountered serializing the model. - - - - Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. - - - Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. - The type of the result produced by the visitor. - - - When overridden in a derived class, handles any expression of an unrecognized type. - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern method for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - Typed visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - An instance of TResultType. - - - - Initializes a new instance of the - - class. - - - - Replaces an old expression with a new one for the expression visitor. - The old expression. - The new expression. - - - Represents an event when the variable is rebound for the expression visitor. - The location of the variable. - The reference of the variable where it is rebounded. - - - Represents an event when entering the scope for the expression visitor with specified scope variables. - The collection of scope variables. - - - Exits the scope for the expression visitor. - - - Implements the visitor pattern for the expression. - The implemented visitor pattern. - The expression. - - - Implements the visitor pattern for the expression list. - The implemented visitor pattern. - The expression list. - - - Implements the visitor pattern for expression binding. - The implemented visitor pattern. - The expression binding. - - - Implements the visitor pattern for the expression binding list. - The implemented visitor pattern. - The expression binding list. - - - Implements the visitor pattern for the group expression binding. - The implemented visitor pattern. - The binding. - - - Implements the visitor pattern for the sort clause. - The implemented visitor pattern. - The sort clause. - - - Implements the visitor pattern for the sort order. - The implemented visitor pattern. - The sort order. - - - Implements the visitor pattern for the aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the function aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the group aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the Lambda function. - The implemented visitor pattern. - The lambda function. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the basic functionality required by expression types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the different kinds of constants. - The implemented visitor. - The constant expression. - - - Implements the visitor pattern for a reference to a typed null literal. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a variable that is currently in scope. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for an invocation of a function. - The implemented visitor. - The function expression. - - - Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. - The implemented visitor. - The expression. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the comparison operation applied to two arguments. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the null determination applied to a single argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the arithmetic operation applied to numeric arguments. - The implemented visitor. - The arithmetic expression. - - - Implements the visitor pattern for the logical AND expression. - The implemented visitor. - The logical AND expression. - - - Implements the visitor pattern for the logical OR of two Boolean arguments. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the DbInExpression. - The implemented visitor. - The DbInExpression that is being visited. - - - Implements the visitor pattern for the logical NOT of a single Boolean argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the removed duplicate elements from the specified set argument. - The implemented visitor. - The distinct expression. - - - Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. - The implemented visitor. - The element expression. - - - Implements the visitor pattern for an empty set determination applied to a single set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set union operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set intersection operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set subtraction operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type comparison of a single argument against the specified type. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type conversion of a single argument to the specified type. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for the When, Then, and Else clauses. - The implemented visitor. - The case expression. - - - Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the navigation of a relationship. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. - The implemented visitor. - The DEREF expression. - - - Implements the visitor pattern for the retrieval of the key value from the underlying reference value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. - The implemented visitor. - The entity reference expression. - - - Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a predicate applied to filter an input set. - The implemented visitor. - The filter expression. - - - Implements the visitor pattern for the projection of a given input set over the specified expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the unconditional join operation between the given collection arguments. - The implemented visitor. - The join expression. - - - Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. - The implemented visitor. - The APPLY expression. - - - Implements the visitor pattern for a group by operation. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the skip expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a sort key that can be used as part of the sort order. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. - The implemented visitor. - The expression. - - - - When this attribute is placed on a property it indicates that the database column to which the - property is mapped has an index. - - - This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Creates a instance for an index that will be named by convention and - has no column order, clustering, or uniqueness specified. - - - - - Creates a instance for an index with the given name and - has no column order, clustering, or uniqueness specified. - - The index name. - - - - Creates a instance for an index with the given name and column order, - but with no clustering or uniqueness specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - The index name. - A number which will be used to determine column ordering for multi-column indexes. - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - The index name. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no - column order has been specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Set this property to true to define a clustered index. Set this property to false to define a - non-clustered index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Set this property to true to define a unique index. Set this property to false to define a - non-unique index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Returns a different ID for each object instance such that type descriptors won't - attempt to combine all IndexAttribute instances into a single instance. - - - - - A class derived from this class can be placed in the same assembly as a class derived from - to define Entity Framework configuration for an application. - Configuration is set by calling protected methods and setting protected properties of this - class in the constructor of your derived type. - The type to use can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Any class derived from must have a public parameterless constructor - and that constructor should call this constructor. - - - - - The Singleton instance of for this app domain. This can be - set at application start before any Entity Framework features have been used and afterwards - should be treated as read-only. - - The instance of . - - - - Attempts to discover and load the associated with the given - type. This method is intended to be used by tooling to ensure that - the correct configuration is loaded into the app domain. Tooling should use this method - before accessing the property. - - A type to use for configuration discovery. - - - - Attempts to discover and load the from the given assembly. - This method is intended to be used by tooling to ensure that the correct configuration is loaded into - the app domain. Tooling should use this method before accessing the - property. If the tooling knows the type being used, then the - method should be used since it gives a greater chance that - the correct configuration will be found. - - An to use for configuration discovery. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The exceptions to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - - A implementation is automatically registered as a default resolver - when it is added with a call to . This allows EF providers to act as - resolvers for other services that may need to be overridden by the provider. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to register - an Entity Framework provider. - - - Note that the provider is both registered as a service itself and also registered as a default resolver with - a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that - may need to be overridden by the provider. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register - an ADO.NET provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for - and . This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - A function that returns a new instance of an execution strategy. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A function that returns a new instance of an execution strategy. - A string that will be matched against the server name in the connection string. - - - - Call this method from the constructor of a class derived from to register a - . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - A string that will be matched against the server name in the connection string. - - - - Sets the that is used to create connections by convention if no other - connection string or connection is given to or can be discovered by . - Note that a default connection factory is set in the app.config or web.config file whenever the - EntityFramework NuGet package is installed. As for all config file settings, the default connection factory - set in the config file will take precedence over any setting made with this method. Therefore the setting - must be removed from the config file before calling this method will have any effect. - Call this method from the constructor of a class derived from to change - the default connection factory being used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The connection factory. - - - - Call this method from the constructor of a class derived from to - set the pluralization service. - - The pluralization service to use. - - - - Call this method from the constructor of a class derived from to - set the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - - Calling this method is equivalent to calling . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is typically used by providers to register an associated SQL generator for Code First Migrations. - It is different from setting the generator in the because it allows - EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project - and/or Migrations are not being explicitly used. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - A delegate that returns a new instance of the SQL generator each time it is called. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows provider manifest tokens to - be obtained from connections without necessarily opening the connection. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The manifest token resolver. - - - - Call this method from the constructor of a class derived from to set - a factory for implementations of which allows custom annotations - represented by instances to be serialized to and from the EDMX XML. - - - Note that an is not needed if the annotation uses a simple string value. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The name of custom annotation that will be handled by this serializer. - A delegate that will be used to create serializer instances. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows a - to be obtained from a in cases where the default implementation is not - sufficient. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The provider factory service. - - - - Call this method from the constructor of a class derived from to set - a as the model cache key factory which allows the key - used to cache the model behind a to be changed. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can - be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The key factory. - - - - Call this method from the constructor of a class derived from to set - a delegate which which be used for - creation of the default for a any - . This default factory will only be used if no factory is - set explicitly in the and if no factory has been registered - for the provider in use using the - - method. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - a delegate which allows for creation of a customized - for the given provider for any - that does not have an explicit factory set. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - the global instance of which will be used whenever a spatial provider is - required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider - is obtained from the a implementation which is in turn returned by resolving - a service for passing the provider invariant name as a key. However, this - cannot work for stand-alone instances of and since - it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances - of and the global spatial provider is always used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider and provider - manifest token. - - - Use - to register spatial services for use only when a specific manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The indicating the type of ADO.NET connection for which this spatial provider will be used. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider with any - manifest token. - - - Use - to register spatial services for use when any manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - a factory for the type of to use with . - - - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - instance onto before any commands will be logged. - For more low-level control over logging/interception see and - . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A delegate that will create formatter instances. - - - - Call this method from the constructor of a class derived from to - register an at application startup. Note that interceptors can also - be added and removed at any time using . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The interceptor to register. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to register - a database table existence checker for a given provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The table existence checker to use. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Occurs during EF initialization after the DbConfiguration has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that this event should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - - - - Gets the that is being used to resolve service - dependencies in the Entity Framework. - - - - - This attribute can be placed on a subclass of to indicate that the subclass of - representing the code-based configuration for the application is in a different - assembly than the context type. - - - Normally a subclass of should be placed in the same assembly as - the subclass of used by the application. It will then be discovered automatically. - However, if this is not possible or if the application contains multiple context types in different - assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. - An alternative to using this attribute is to specify the DbConfiguration type to use in the application's - config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. - - - - - Indicates that the given subclass of should be used for code-based configuration - for this application. - - - The type to use. - - - - - Indicates that the subclass of represented by the given assembly-qualified - name should be used for code-based configuration for this application. - - - The type to use. - - - - - Gets the subclass of that should be used for code-based configuration - for this application. - - - - Implements the basic functionality required by aggregates in a GroupBy clause. - - - - Gets the result type of this . - - - The result type of this . - - - - - Gets the list of expressions that define the arguments to this - - . - - - The list of expressions that define the arguments to this - - . - - - - Represents the logical AND of two Boolean arguments. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept two expression operands. - - - Represents the base type for all expressions. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - The type of the result produced by . - - - An instance of . - - The type of the result produced by visitor. - - - - Determines whether the specified is equal to the current DbExpression instance. - - - True if the specified is equal to the current DbExpression instance; otherwise, false. - - - The object to compare to the current . - - - - Serves as a hash function for the type. - A hash code for the current expression. - - - - Creates a that represents the specified binary value, which may be null - - - A that represents the specified binary value. - - The binary value on which the returned expression should be based. - - - - Enables implicit casting from a byte array. - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Boolean value. - - - A that represents the specified Boolean value. - - The Boolean value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) byte value. - - - A that represents the specified byte value. - - The byte value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTime value. - - The DateTime value on which the returned expression should be based. - - - - Enables implicit casting from . - - The expression to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTimeOffset value. - - The DateTimeOffset value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) decimal value. - - - A that represents the specified decimal value. - - The decimal value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) double value. - - - A that represents the specified double value. - - The double value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeography value. - - The DbGeography value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeometry value. - - The DbGeometry value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified Guid value. - - The Guid value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int16 value. - - - A that represents the specified Int16 value. - - The Int16 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int32 value. - - - A that represents the specified Int32 value. - - The Int32 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int64 value. - - - A that represents the specified Int64 value. - - The Int64 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Single value. - - - A that represents the specified Single value. - - The Single value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified string value. - - - A that represents the specified string value. - - The string value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - Gets the type metadata for the result type of the expression. - The type metadata for the result type of the expression. - - - Gets the kind of the expression, which indicates the operation of this expression. - The kind of the expression, which indicates the operation of this expression. - - - - Gets the that defines the left argument. - - - The that defines the left argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the left argument. - - - - - Gets the that defines the right argument. - - - The that defines the right argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the right argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - - Gets the that specifies the function that is invoked for each element in the input set. - - - The that specifies the function that is invoked for each element in the input set. - - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Represents an arithmetic operation applied to numeric arguments. - Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. - This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the list of elements that define the current arguments. - - - A fixed-size list of elements. - - - - - Represents the When, Then, and Else clauses of the - - . This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets the When clauses of this . - - - The When clauses of this . - - - - - Gets the Then clauses of this . - - - The Then clauses of this . - - - - - Gets the Else clause of this . - - - The Else clause of this . - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the result type of the - - . - - - - Represents the type conversion of a single argument to the specified type. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept a single expression argument. - - - - Gets the that defines the argument. - - - The that defines the argument. - - The expression is null. - - The expression is not associated with the command tree of a - - , or its result type is not equal or promotable to the required type for the argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes the different "kinds" (classes) of command trees. - - - - - A query to retrieve data - - - - - Update existing data - - - - - Insert new data - - - - - Deleted existing data - - - - - Call a function - - - - Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. - - DbComparisonExpression requires that its arguments have a common result type - that is equality comparable (for .Equals and .NotEquals), - order comparable (for .GreaterThan and .LessThan), - or both (for .GreaterThanOrEquals and .LessThanOrEquals). - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents different kinds of constants (literals). This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Gets the constant value. - The constant value. - - - Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets a list that provides the input sets to the join. - - - A list that provides the input sets to the join. - - - - Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Removes duplicate elements from the specified set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the set subtraction operation between the left and right operands. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes a binding for an expression. Conceptually similar to a foreach loop - in C#. The DbExpression property defines the collection being iterated over, - while the Var property provides a means to reference the current element - of the collection during the iteration. DbExpressionBinding is used to describe the set arguments - to relational expressions such as , - and . - - - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - The variable reference. - - - Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that specifies the predicate used to filter the input set. - - - The that specifies the predicate used to filter the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - Represents an invocation of a function. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the function to invoke. - The metadata for the function to invoke. - - - - Gets an list that provides the arguments to the function. - - - An list that provides the arguments to the function. - - - - Represents a collection of elements that compose a group. - - - Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set and provides access to the set element and group element variables. - - - The that specifies the input set and provides access to the set element and group element variables. - - - - - Gets a list that provides grouping keys. - - - A list that provides grouping keys. - - - - - Gets a list that provides the aggregates to apply. - - - A list that provides the aggregates to apply. - - - - Represents the set intersection operation between the left and right operands. This class cannot be inherited. - - DbIntersectExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents an empty set determination applied to a single set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents null determination applied to a single argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the type comparison of a single argument against the specified type. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the type metadata that the type metadata of the argument should be compared to. - The type metadata that the type metadata of the argument should be compared to. - - - Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that provides the left input. - - - The that provides the left input. - - - - - Gets the that provides the right input. - - - The that provides the right input. - - - - Gets the join condition to apply. - The join condition to apply. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - - Allows the application of a lambda function to arguments represented by - - objects. - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of . - - visitor is null - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - The type of the result produced by the expression visitor. - - An instance of a typed that produces a result value of type TResultType. - - The type of the result produced by visitor - visitor is null - - - - Gets the representing the Lambda function applied by this expression. - - - The representing the Lambda function applied by this expression. - - - - - Gets a list that provides the arguments to which the Lambda function should be applied. - - - The list. - - - - Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the string to compare against the given pattern. - An expression that specifies the string to compare against the given pattern. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that specifies the pattern against which the given string should be compared. - An expression that specifies the pattern against which the given string should be compared. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that provides an optional escape string to use for the comparison. - An expression that provides an optional escape string to use for the comparison. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Represents the restriction of the number of elements in the argument collection to the specified limit value. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the input collection. - An expression that specifies the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a collection type. - - - - Gets an expression that specifies the limit on the number of elements returned from the input collection. - An expression that specifies the limit on the number of elements returned from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or is not one of - - or - - , or its result type is not equal or promotable to a 64-bit integer type. - - - - - Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the - - value. - - true if the limit operation will include tied results; otherwise, false. The default is false. - - - Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets an list that provides the property/column values or set elements for the new instance. - - - An list that provides the property/column values or set elements for the new instance. - - - - Represents the logical NOT of a single Boolean argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a typed null literal. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata of the type of elements that should be retrieved from the set argument. - The metadata of the type of elements that should be retrieved from the set argument. - - - Represents the logical OR of two Boolean arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced parameter. - The name of the referenced parameter. - - - Represents the projection of a given input set over the specified expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that defines the projection. - - - The that defines the projection. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the current projection. - - - - Provides methods and properties for retrieving an instance property. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Creates a new key/value pair based on this property expression. - - A new key/value pair with the key and value derived from the - - . - - - - - Enables implicit casting to . - - The expression to be converted. - The converted value. - - - Gets the property metadata for the property to retrieve. - The property metadata for the property to retrieve. - - - - Gets a that defines the instance from which the property should be retrieved. - - - A that defines the instance from which the property should be retrieved. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the type that defines the property. - - - - Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - Gets the Boolean predicate that should be evaluated for each element in the input set. - The Boolean predicate that should be evaluated for each element in the input set. - The expression is null. - - The expression is not associated with the command tree for the - - ,or its result type is not a Boolean type. - - - - Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the entity set that contains the instance. - The metadata for the entity set that contains the instance. - - - Represents the navigation of a relationship. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the relationship over which navigation occurs. - The metadata for the relationship over which navigation occurs. - - - Gets the metadata for the relationship end to navigate from. - The metadata for the relationship end to navigate from. - - - Gets the metadata for the relationship end to navigate to. - The metadata for the relationship end to navigate to. - - - - Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. - - - An that specifies the instance of the source relationship end from which navigation should occur. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the - - property. - - - - - Skips a specified number of elements in the input set. - - can only be used after the input collection has been sorted as specified by the sort keys. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Gets an expression that specifies the number of elements to skip from the input collection. - An expression that specifies the number of elements to skip from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - ; the expression is not either a - - or a - - ; or the result type of the expression is not equal or promotable to a 64-bit integer type. - - - - - Specifies a sort key that can be used as part of the sort order in a - - . This class cannot be inherited. - - - - Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. - true if this sort key uses an ascending sort order; otherwise, false. - - - Gets a string value that specifies the collation for this sort key. - A string value that specifies the collation for this sort key. - - - - Gets the that provides the value for this sort key. - - - The that provides the value for this sort key. - - - - Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by - visitor - - - visitor - is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. - - - Gets a value indicating whether this aggregate is a distinct aggregate. - true if the aggregate is a distinct aggregate; otherwise, false. - - - Gets the method metadata that specifies the aggregate function to invoke. - The method metadata that specifies the aggregate function to invoke. - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - Defines the basic functionality that should be implemented by visitors that do not return a result value. - - - When overridden in a derived class, handles any expression of an unrecognized type. - The expression to be handled. - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - Visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - - - - Convenience method to visit the specified . - - The DbUnaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbBinaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbExpressionBinding to visit. - - - is null - - - - - Convenience method for post-processing after a DbExpressionBinding has been visited. - - The previously visited DbExpressionBinding. - - - - Convenience method to visit the specified . - - The DbGroupExpressionBinding to visit. - - - is null - - - - - Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. - - The DbGroupExpressionBinding of the DbGroupByExpression - - - - Convenience method for post-processing after a DbGroupExpressionBinding has been visited. - - The previously visited DbGroupExpressionBinding. - - - - Convenience method indicating that the body of a Lambda is now about to be visited. - - The DbLambda that is about to be visited - - - is null - - - - - Convenience method for post-processing after a DbLambda has been visited. - - The previously visited DbLambda. - - - - Convenience method to visit the specified , if non-null. - - The expression to visit. - - - is null - - - - - Convenience method to visit each in the given list, if the list is non-null. - - The list of expressions to visit. - - - is null - - - - - Convenience method to visit each in the list, if the list is non-null. - - The list of aggregates to visit. - - - is null - - - - - Convenience method to visit the specified . - - The aggregate to visit. - - - is null - - - - - Called when an of an otherwise unrecognized type is encountered. - - The expression - - - is null - - - Always thrown if this method is called, since it indicates that - - is of an unsupported type - - - - - Visitor pattern method for . - - The DbConstantExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbVariableReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbParameterReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFunctionExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLambdaExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbPropertyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbComparisonExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLikeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLimitExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbArithmeticExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbAndExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOrExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbInExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNotExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbDistinctExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbElementExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsEmptyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbUnionAllExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIntersectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExceptExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOfTypeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbTreatExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCastExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsOfExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCaseExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNewInstanceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRelationshipNavigationExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DeRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefKeyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbEntityRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbScanExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFilterExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbProjectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCrossJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbApplyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSkipExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSortExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbQuantifierExpression that is being visited. - - - is null - - - - Implements the visitor pattern for the set clause. - The set clause. - - - Implements the visitor pattern for the modification clause. - The modification clause. - - - Implements the visitor pattern for the collection of modification clauses. - The modification clauses. - - - Implements the visitor pattern for the command tree. - The command tree. - - - Implements the visitor pattern for the delete command tree. - The delete command tree. - - - Implements the visitor pattern for the function command tree. - The function command tree. - - - Implements the visitor pattern for the insert command tree. - The insert command tree. - - - Implements the visitor pattern for the query command tree. - The query command tree. - - - Implements the visitor pattern for the update command tree. - The update command tree. - - - An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. - - - - Returns a that represents this command. - - - A that represents this command. - - - - - Gets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is true. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets the name and corresponding type of each parameter that can be referenced within this - - . - - - The name and corresponding type of each parameter that can be referenced within this - - . - - - - - Gets the kind of this command tree. - - - - - Gets the metadata workspace used by this command tree. - - - - - Gets the data space in which metadata used by this command tree must reside. - - - - Represents a single row delete operation expressed as a command tree. This class cannot be inherited. - - - Represents a data manipulation language (DML) operation expressed as a command tree. - - - - Gets the that specifies the target table for the data manipulation language (DML) operation. - - - The that specifies the target table for the DML operation. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be deleted. - - - - Gets an that specifies the predicate used to determine which members of the target collection should be deleted. - - - The predicate can include only the following elements: - - Equality expression - Constant expression - IsNull expression - Property expression - Reference expression to the target - And expression - Or expression - Not expression - - - - An that specifies the predicate used to determine which members of the target collection should be deleted. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - - Contains values that each expression class uses to denote the operation it represents. The - - property of an - - can be retrieved to determine which operation that expression represents. - - - - - True for all. - - - - - Logical And. - - - - - True for any. - - - - - Conditional case statement. - - - - - Polymorphic type cast. - - - - - A constant value. - - - - - Cross apply - - - - - Cross join - - - - - Dereference. - - - - - Duplicate removal. - - - - - Division. - - - - - Set to singleton conversion. - - - - - Entity ref value retrieval. - - - - - Equality - - - - - Set subtraction - - - - - Restriction. - - - - - Full outer join - - - - - Invocation of a stand-alone function - - - - - Greater than. - - - - - Greater than or equal. - - - - - Grouping. - - - - - Inner join - - - - - Set intersection. - - - - - Empty set determination. - - - - - Null determination. - - - - - Type comparison (specified Type or Subtype). - - - - - Type comparison (specified Type only). - - - - - Left outer join - - - - - Less than. - - - - - Less than or equal. - - - - - String comparison. - - - - - Result count restriction (TOP n). - - - - - Subtraction. - - - - - Modulo. - - - - - Multiplication. - - - - - Instance, row, and set construction. - - - - - Logical Not. - - - - - Inequality. - - - - - Null. - - - - - Set members by type (or subtype). - - - - - Set members by (exact) type. - - - - - Logical Or. - - - - - Outer apply. - - - - - A reference to a parameter. - - - - - Addition. - - - - - Projection. - - - - - Retrieval of a static or instance property. - - - - - Reference. - - - - - Ref key value retrieval. - - - - - Navigation of a (composition or association) relationship. - - - - - Entity or relationship set scan. - - - - - Skip elements of an ordered collection. - - - - - Sorting. - - - - - Type conversion. - - - - - Negation. - - - - - Set union (with duplicates). - - - - - A reference to a variable. - - - - - Application of a lambda function - - - - - In. - - - - Represents the invocation of a database function. - - - - Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - The that represents the function that is being invoked. - The expected result type for the function’s first result set. - The function's parameters. - - , or is null - - - does not represent a valid data space or - is a composable function - - - - - Gets the that represents the function that is being invoked. - - - The that represents the function that is being invoked. - - - - Gets the expected result type for the function’s first result set. - The expected result type for the function’s first result set. - - - Gets or sets the command tree kind. - The command tree kind. - - - Represents a single row insert operation expressed as a command tree. This class cannot be inherited. - - Represents a single row insert operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar value indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - The list of insert set clauses that define the insert operation. . - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of insert set clauses that define the insert operation. - The list of insert set clauses that define the insert operation. - - - - Gets an that specifies a projection of results to be returned based on the modified rows. - - - An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. - - - - Gets the command tree kind. - The command tree kind. - - - - Represents a Lambda function that can be invoked to produce a - - . - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null - - - - contains more than one element with the same variable name. - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null. - - - - contains more than one element with the same variable name. - - - - - Creates a new with a single argument of the specified type, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. - - A that defines the EDM type of the argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A that defines the EDM type of the sixteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - Gets the body of the lambda expression. - - A that represents the body of the lambda function. - - - - Gets the parameters of the lambda expression. - The list of lambda function parameters represented as DbVariableReferenceExpression objects. - - - - Specifies a single clause in an insert or update modification operation, see - and - - - An abstract base class allows the possibility of patterns other than - Property = Value in future versions, e.g., - update SomeTable - set ComplexTypeColumn.SomeProperty() - where Id = 2 - - - - Represents a query operation expressed as a command tree. This class cannot be inherited. - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - A boolean that indicates whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - - - or - - is null - - - - does not represent a valid data space - - - - - Gets an that defines the logic of the query operation. - - - An that defines the logic of the query operation. - - The expression is null. - The expression is associated with a different command tree. - - - Gets the kind of this command tree. - The kind of this command tree. - - - Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. - - - - Gets an that specifies the property that should be updated. - - - An that specifies the property that should be updated. - - - - - Gets an that specifies the new value with which to update the property. - - - An that specifies the new value with which to update the property. - - - - Represents a single-row update operation expressed as a command tree. This class cannot be inherited. - - Represents a single-row update operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be updated. - The list of update set clauses that define the update operation. - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of update set clauses that define the update operation. - The list of update set clauses that define the update operation. - - - - Gets an that specifies a projection of results to be returned, based on the modified rows. - - - An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. - - - - - Gets an that specifies the predicate used to determine which members of the target collection should be updated. - - - An that specifies the predicate used to determine which members of the target collection should be updated. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - Represents a reference to a variable that is currently in scope. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced variable. - The name of the referenced variable. - - - - Defines the binding for the input set to a . - In addition to the properties of , DbGroupExpressionBinding - also provides access to the group element via the variable reference - and to the group aggregate via the property. - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the result type of the current value of the property. - - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - A reference to the element variable. - - - Gets the name assigned to the group element variable. - The name assigned to the group element variable. - - - Gets the type metadata of the group element variable. - The type metadata of the group element variable. - - - - Gets the that references the group element variable. - - A reference to the group element variable. - - - - Gets the that represents the collection of elements in the group. - - The elements in the group. - - - - Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. - - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - - Creates a new that uses a generated variable name to bind the given expression. - - A new expression binding with the specified expression and a generated variable name. - The expression to bind. - input is null. - input does not have a collection result. - - - - Creates a new that uses the specified variable name to bind the given expression - - A new expression binding with the specified expression and variable name. - The expression to bind. - The variable name that should be used for the binding. - input or varName is null. - input does not have a collection result. - - - Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. - A new group expression binding with the specified expression and a generated variable name and group variable name. - The expression to bind. - input is null. - input does not have a collection result type. - - - - Creates a new that uses the specified variable name and group variable names to bind the given expression. - - A new group expression binding with the specified expression, variable name and group variable name. - The expression to bind. - The variable name that should be used for the binding. - The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. - input, varName or groupVarName is null. - input does not have a collection result type. - - - - Creates a new . - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new that is applied in a distinct fashion. - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument is null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new over the specified argument - - The argument over which to perform the nest operation - A new group aggregate representing the elements of the group referenced by the given argument. - - - is null - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a new with an ascending sort order and default collation. - - A new sort clause with the given sort key and ascending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and default collation. - - A new sort clause with the given sort key and descending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with an ascending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and ascending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and descending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that unconditionally joins the sets specified by the list of input expression bindings. - - - A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. - - A list of expression bindings that specifies the input sets. - inputs is null or contains null element. - inputs contains fewer than 2 expression bindings. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbFilterExpression that produces the filtered set. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. - - A new DbGroupByExpression with the specified input set, grouping keys and aggregates. - - A that specifies the input set. - - A list of string-expression pairs that define the grouping columns. - A list of expressions that specify aggregates to apply. - input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. - Both keys and aggregates are empty, or an invalid or duplicate column name was specified. - - - - Creates a new that projects the specified expression over the given input set. - - A new DbProjectExpression that represents the projection operation. - An expression binding that specifies the input set. - An expression to project over the set. - input or projection is null. - - - - Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. - - A new DbSkipExpression that represents the skip operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - An expression the specifies how many elements of the ordered set to skip. - input, sortOrder or count is null, or sortOrder contains null. - - sortOrder is empty, or count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that sorts the given input set by the specified sort specifications. - - A new DbSortExpression that represents the sort operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - input or sortOrder is null, or sortOrder contains null. - sortOrder is empty. - - - - Creates a new , which represents a typed null value. - - An instance of DbNullExpression. - The type of the null value. - nullType is null. - - - - Creates a new with the given constant value. - - A new DbConstantExpression with the given value. - The constant value to represent. - value is null. - value is not an instance of a valid constant type. - - - - Creates a new of the specified primitive type with the given constant value. - - A new DbConstantExpression with the given value and a result type of constantType. - The type of the constant value. - The constant value to represent. - value or constantType is null. - value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. - - - - Creates a new that references a parameter with the specified name and type. - - A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced parameter. - The name of the referenced parameter. - - - - Creates a new that references a variable with the specified name and type. - - A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced variable. - The name of the referenced variable. - - - - Creates a new that references the specified entity or relationship set. - - A new DbScanExpression based on the specified entity or relationship set. - Metadata for the entity or relationship set to reference. - targetSet is null. - - - - Creates an that performs the logical And of the left and right arguments. - - A new DbAndExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left and right does not have a Boolean result type. - - - - Creates an that performs the logical Or of the left and right arguments. - - A new DbOrExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left or right does not have a Boolean result type. - - - - Creates a that matches the result of the specified - expression with the results of the constant expressions in the specified list. - - A DbExpression to be matched. - A list of DbConstantExpression to test for a match. - - A new DbInExpression with the specified arguments. - - - - or - - is null. - - - The result type of - - is different than the result type of an expression from - . - - - - - Creates a that performs the logical negation of the given argument. - - A new DbNotExpression with the specified argument. - A Boolean expression that specifies the argument. - argument is null. - argument does not have a Boolean result type. - - - - Creates a new that divides the left argument by the right argument. - - A new DbArithmeticExpression representing the division operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left or right. - - - - Creates a new that subtracts the right argument from the left argument. - - A new DbArithmeticExpression representing the subtraction operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that computes the remainder of the left argument divided by the right argument. - - A new DbArithmeticExpression representing the modulo operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that multiplies the left argument by the right argument. - - A new DbArithmeticExpression representing the multiplication operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that adds the left argument to the right argument. - - A new DbArithmeticExpression representing the addition operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that compares the left and right arguments for equality. - - A new DbComparisonExpression representing the equality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that compares the left and right arguments for inequality. - - A new DbComparisonExpression representing the inequality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than the right argument. - - A new DbComparisonExpression representing the greater-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than the right argument. - - A new DbComparisonExpression representing the less-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than or equal to the right argument. - - A new DbComparisonExpression representing the greater-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than or equal to the right argument. - - A new DbComparisonExpression representing the less-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common result type that is both equality- and order-comparable exists between left and right. - - - - Creates a new that determines whether the specified argument is null. - - A new DbIsNullExpression with the specified argument. - An expression that specifies the argument. - argument is null. - argument has a collection result type. - - - - Creates a new that compares the specified input string to the given pattern. - - A new DbLikeExpression with the specified input, pattern and a null escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - Argument or pattern is null. - Argument or pattern does not have a string result type. - - - - Creates a new that compares the specified input string to the given pattern using the optional escape. - - A new DbLikeExpression with the specified input, pattern and escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - An optional expression that specifies the escape string. - argument, pattern or escape is null. - argument, pattern or escape does not have a string result type. - - - - Creates a new that applies a cast operation to a polymorphic argument. - - A new DbCastExpression with the specified argument and target type. - The argument to which the cast should be applied. - Type metadata that specifies the type to cast to. - Argument or toType is null. - The specified cast is not valid. - - - - Creates a new . - - A new DbTreatExpression with the specified argument and type. - An expression that specifies the instance. - Type metadata for the treat-as type. - argument or treatType is null. - treatType is not in the same type hierarchy as the result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - A that specifies the input set. - - Type metadata for the type that elements of the input set must have to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - An that specifies the input set. - - Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that determines whether the given argument is of the specified type or a subtype. - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new that retrieves a specific Entity given a reference expression. - - A new DbDerefExpression that retrieves the specified Entity. - - An that provides the reference. This expression must have a reference Type. - - argument is null. - argument does not have a reference result type. - - - - Creates a new that retrieves the ref of the specifed entity in structural form. - - A new DbEntityRefExpression that retrieves a reference to the specified entity. - The expression that provides the entity. This expression must have an entity result type. - argument is null. - argument does not have an entity result type. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - entitySet or keyRow is null. - keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - The type of the Entity that the reference should refer to. - entitySet, keyRow or entityType is null. - entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that retrieves the key values of the specifed reference in structural form. - - A new DbRefKeyExpression that retrieves the key values of the specified reference. - The expression that provides the reference. This expression must have a reference Type with an Entity element type. - argument is null. - argument does not have a reference result type. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - An expression that specifies the instance from which navigation should occur. - Metadata for the property that represents the end of the relationship from which navigation should occur. - Metadata for the property that represents the end of the relationship to which navigation should occur. - fromEnd, toEnd or navigateFrom is null. - fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - Metadata for the relation type that represents the relationship. - The name of the property of the relation type that represents the end of the relationship from which navigation should occur. - The name of the property of the relation type that represents the end of the relationship to which navigation should occur. - An expression the specifies the instance from which naviagtion should occur. - type, fromEndName, toEndName or navigateFrom is null. - type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. - - - - Creates a new that removes duplicates from the given set argument. - - A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. - An expression that defines the set over which to perfom the distinct operation. - argument is null. - argument does not have a collection result type. - - - - Creates a new that converts a set into a singleton. - - A DbElementExpression that represents the conversion of the set argument to a singleton. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is an empty set. - - A new DbIsEmptyExpression with the specified argument. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that computes the subtraction of the right set argument from the left set argument. - - A new DbExceptExpression that represents the difference of the left argument from the right argument. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left and right. - - - - Creates a new that computes the intersection of the left and right set arguments. - - A new DbIntersectExpression that represents the intersection of the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left or right. - - - - Creates a new that computes the union of the left and right set arguments and does not remove duplicates. - - A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new . - - A new DbCaseExpression with the specified cases and default result. - A list of expressions that provide the conditional for of each case. - A list of expressions that provide the result of each case. - An expression that defines the result when no case is matched. - whenExpressions or thenExpressions is null or contains null, or elseExpression is null. - whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - A list of expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - Expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new Expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - A list of expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - Expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null.. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs an empty collection of the specified collection type. - - A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. - The type metadata for the collection to create - collectionType is null. - collectionType is not a collection type. - - - - Creates a new that produces a row with the specified named columns and the given values, specified as expressions. - - A new DbNewInstanceExpression that represents the construction of the row. - A list of string-DbExpression key-value pairs that defines the structure and values of the row. - columnValues is null or contains an element with a null column name or expression. - columnValues is empty, or contains a duplicate or invalid column name. - - - - Creates a new representing the retrieval of the specified property. - - A new DbPropertyExpression representing the property retrieval. - The instance from which to retrieve the property. May be null if the property is static. - Metadata for the property to retrieve. - propertyMetadata is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the specified navigation property. - - A new DbPropertyExpression representing the navigation property retrieval. - The instance from which to retrieve the navigation property. - Metadata for the navigation property to retrieve. - navigationProperty or instance is null. - - - - Creates a new representing the retrieval of the specified relationship end member. - - A new DbPropertyExpression representing the relationship end member retrieval. - The instance from which to retrieve the relationship end member. - Metadata for the relationship end member to retrieve. - relationshipEnd is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the instance property with the specified name from the given instance. - - A new DbPropertyExpression that represents the property retrieval. - The instance from which to retrieve the property. - The name of the property to retrieve. - propertyName is null or instance is null and the property is not static. - No property with the specified name is declared by the type of instance. - - - - Creates a new representing setting a property to a value. - - The property to be set. - The value to set the property to. - The newly created set clause. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression that specifies the input set. - A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by Predicate does not have a Boolean result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - source is null. - source does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - Source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - outer, inner, outerKey or innerKey is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The expressions produced by outerKey and innerKey are not comparable for equality. - - - - Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an - - of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - - A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The type of the selector . - outer, inner, outerKey, innerKey or selector is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The result of selector is null after conversion to DbExpression. - The expressions produced by outerKey and innerKey is not comparable for equality. - The result of Selector is not compatible with SelectMany. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that selects the specified expression over the given input set. - - A new DbProjectExpression that represents the select operation. - An expression that specifies the input set. - - A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a - - . Compatibility requirements for TProjection are described in remarks. - - The method result type of projection. - source or projection is null. - The result of projection is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the apply column from each row, producing the overall collection of apply results. - - - An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - source or apply is null. - The expression produced by apply is null. - source does not have a collection result type. - The expression produced by apply does not have a collection type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the specified selector over each row, producing the overall collection of results. - - - An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - - A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The method result type of selector. - source, apply or selector is null. - The expression produced by apply is null. - The result of selector is null on conversion to DbExpression. - source does not have a collection result type. - The expression produced by apply does not have a collection type. does not have a collection type. - - - - Creates a new that skips the specified number of elements from the given sorted input set. - - A new DbSkipExpression that represents the skip operation. - - A that specifies the sorted input set. - - An expression the specifies how many elements of the ordered set to skip. - argument or count is null. - - count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that computes the union of the left and right set arguments with duplicates removed. - - A new DbExpression that computes the union, without duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Gets a with the Boolean value true. - - - A with the Boolean value true. - - - - - Gets a with the Boolean value false. - - - A with the Boolean value false. - - - - - Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the average value. - An expression that specifies the collection from which the average value should be computed. - - - - Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the maximum value. - An expression that specifies the collection from which the maximum value should be retrieved - - - - Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the minimum value. - An expression that specifies the collection from which the minimum value should be retrieved. - - - - Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the sum. - An expression that specifies the collection from which the sum should be computed. - - - - Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. - - A new DbFunctionExpression that produces the concatenated string. - An expression that specifies the string that should appear first in the concatenated result string. - An expression that specifies the string that should appear second in the concatenated result string. - - - - Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. - An expression that specifies the string to search for any occurence of searchedForString. - An expression that specifies the string to search for in searchedString. - - - - Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. - An expression that specifies the string that is searched at the end for string suffix. - An expression that specifies the target string that is searched for at the end of stringArgument. - - - - Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the first index of stringToFind in searchString. - An expression that specifies the string to search for stringToFind. - An expression that specifies the string to locate within searchString should be checked. - - - - Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the leftmost substring. - An expression that specifies the length of the leftmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the length of stringArgument. - An expression that specifies the string for which the length should be computed. - - - - Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. - An expression that specifies the string in which to perform the replacement operation. - An expression that specifies the string that is replaced. - An expression that specifies the replacement string. - - - - Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that produces the reversed value of stringArgument. - An expression that specifies the string to reverse. - - - - Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the rightmost substring. - An expression that specifies the length of the rightmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. - An expression that specifies the string that is searched at the start for string prefix. - An expression that specifies the target string that is searched for at the start of stringArgument. - - - - Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. - - A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. - An expression that specifies the string from which to extract the substring. - An expression that specifies the starting index from which the substring should be taken. - An expression that specifies the length of the substring. - - - - Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to lower case. - An expression that specifies the string that should be converted to lower case. - - - - Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to upper case. - An expression that specifies the string that should be converted to upper case. - - - - Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. - An expression that specifies the string from which leading and trailing space should be removed. - - - - Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with trailing space removed. - An expression that specifies the string from which trailing space should be removed. - - - - Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading space removed. - An expression that specifies the string from which leading space should be removed. - - - - Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer year value from dateValue. - An expression that specifies the value from which the year should be retrieved. - - - - Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer month value from dateValue. - An expression that specifies the value from which the month should be retrieved. - - - - Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day value from dateValue. - An expression that specifies the value from which the day should be retrieved. - - - - Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day of year value from dateValue. - An expression that specifies the value from which the day within the year should be retrieved. - - - - Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer hour value from timeValue. - An expression that specifies the value from which the hour should be retrieved. - - - - Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer minute value from timeValue. - An expression that specifies the value from which the minute should be retrieved. - - - - Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer second value from timeValue. - An expression that specifies the value from which the second should be retrieved. - - - - Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer millisecond value from timeValue. - An expression that specifies the value from which the millisecond should be retrieved. - - - - Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. - An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. - - - - Creates a that invokes the canonical 'CurrentDateTime' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'CurrentDateTimeOffset' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CurrentUtcDateTime' function. - - A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that returns the value of dateValue with time set to zero. - An expression that specifies the value for which the time portion should be truncated. - - - - Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. - - A new DbFunctionExpression that returns a new DateTime based on the specified values. - An expression that provides the year value for the new DateTime instance. - An expression that provides the month value for the new DateTime instance. - An expression that provides the day value for the new DateTime instance. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. - - A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. - An expression that provides the year value for the new DateTimeOffset instance. - An expression that provides the month value for the new DateTimeOffset instance. - An expression that provides the day value for the new DateTimeOffset instance. - An expression that provides the hour value for the new DateTimeOffset instance. - An expression that provides the minute value for the new DateTimeOffset instance. - An expression that provides the second value for the new DateTimeOffset instance. - An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. - - A new DbFunctionExpression that returns a new Time based on the specified values. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of years to add to dateValue. - - - - Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of months to add to dateValue. - - - - Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of days to add to dateValue. - - - - Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of hours to add to timeValue. - - - - Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of minutes to add to timeValue. - - - - Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of seconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of milliseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of microseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of nanoseconds to add to timeValue. - - - - Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value. - An expression that specifies the numeric value to round. - - - - Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to round. - An expression that specifies the number of digits of precision to use when rounding. - - - - Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the largest integer value not greater than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the smallest integer value not less than than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the absolute value of value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to truncate. - An expression that specifies the number of digits of precision to use when truncating. - - - - Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. - - A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. - An expression that specifies the numeric value to raise to the given power. - An expression that specifies the power to which baseArgument should be raised. - - - - Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. - An expression that specifies the first operand. - - - - Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'NewGuid' function. - - A new DbFunctionExpression that returns a new GUID value. - - - - Provides a constructor-like means of calling - - . - - - - - Initializes a new instance of the class with the specified first column value and optional successive column values. - - A key-value pair that provides the first column in the new row instance. (required) - A key-value pairs that provide any subsequent columns in the new row instance. (optional) - - - - Creates a new that constructs a new row based on the columns contained in this Row instance. - - A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. - - - - Converts the given Row instance into an instance of - - The Row instance. - A DbExpression based on the Row instance - - - is null. - - - - - - Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geometry value based on the specified value. - An expression that provides the well known text representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known text representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known text representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known text representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known text representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known text representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known text representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known text representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified binary value. - An expression that provides the well known binary representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known binary representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known binary representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known binary representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known binary representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geography value based on the specified value. - An expression that provides the well known text representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known text representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. - - The canonical 'GeographyPointFromText' function. - An expression that provides the well-known text representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. - - - - Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known text representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known text representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known text representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known text representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known text representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified binary value. - An expression that provides the well known binary representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known binary representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography point value based on the specified values. - An expression that provides the well known binary representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. - - - - Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known binary representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known binary representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known binary representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known binary representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known binary representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer SRID value from spatialValue. - An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. - - - - Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. - An expression that specifies the value from which the Geometry Type name should be retrieved. - - - - Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the Dimension value from spatialValue. - An expression that specifies the value from which the Dimension value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. - An expression that specifies the value from which the Envelope value should be retrieved. - - - - Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. - - A new DbFunctionExpression that returns the well known binary representation of spatialValue. - An expression that specifies the spatial value from which the well known binary representation should be produced. - - - - Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. - An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. - - - - Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the well known text representation of spatialValue. - An expression that specifies the spatial value from which the well known text representation should be produced. - - - - Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. - An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. - - - - Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. - The geometry value. - - - - Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the boundary for geometryValue. - An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. - - - - Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. - An expression that specifies the geometry value which should be tested for spatial validity. - - - - Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for equality. - - - - Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. - - - - Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. - - - - Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. - - - - Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. - An expression that specifies the spatial value. - An expression that specifies the buffer distance. - - - - Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. - - - - Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the convex hull for geometryValue. - An expression that specifies the geometry value from which the convex hull value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the union with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. - - - - Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value. - An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. - - - - Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. - - - - Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Latitude value should be retrieved. - - - - Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Longitude value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the length should be retrieved. - - - - Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the start point should be retrieved. - - - - Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the end point should be retrieved. - - - - Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. - - - - Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. - An expression that specifies the geometry curve value from which the IsRing value should be retrieved. - - - - Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value from which the number of points should be retrieved. - - - - Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value. - An expression that specifies the position of the point to be retrieved from within the line string. - - - - Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. - An expression that specifies the spatial surface value for which the area should be calculated. - - - - Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the centroid should be retrieved. - - - - Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the point should be retrieved. - - - - Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. - The geometry value. - An expression that specifies the position of the interior ring to be retrieved from within the polygon. - - - - Ensures that all metadata in a given expression tree is from the specified metadata workspace, - potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. - - - - Initializes a new instance of the class. - The target workspace. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - - Represents a boolean expression that tests whether a specified item matches any element in a list. - - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of DbExpressionVisitor. - - - is null - - - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - - An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. - - The type of the result produced by - - - - is null - - - An instance of . - - - - - Gets a DbExpression that specifies the item to be matched. - - - - - Gets the list of DbExpression to test for a match. - - - - - Represents the retrieval of the key value of the specified Reference as a row. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents the set union (without duplicate removal) operation between the left and right operands. - - - DbUnionAllExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents a 'scan' of all elements of a given entity set. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the referenced entity or relationship set. - The metadata for the referenced entity or relationship set. - - - - Extension methods for . - - - - - Gets the conceptual model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the conceptual model. - - - - Gets the store model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the store model. - - - - An interface to get the underlying store and conceptual model for a . - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Inherit from this class to create a service that allows for code generation of custom annotations as part of - scaffolding Migrations. The derived class should be set onto the . - - - Note that an is not needed if the annotation uses a simple string value, - or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. - - - - - Override this method to return additional namespaces that should be included in the code generated for the - scaffolded migration. The default implementation returns an empty enumeration. - - The names of the annotations that are being included in the generated code. - A list of additional namespaces to include. - - - - Implement this method to generate code for the given annotation value. - - The name of the annotation for which a value is being generated. - The annotation value. - The writer to which generated code should be written. - - - - Represents a pair of annotation values in a scaffolded or hand-coded . - - - Code First allows for custom annotations to be associated with columns and tables in the - generated model. This class represents a pair of annotation values in a migration such - that when the Code First model changes the old annotation value and the new annotation - value can be provided to the migration and used in SQL generation. - - - - - Creates a new pair of annotation values. - - The old value of the annotation, which may be null if the annotation has just been created. - The new value of the annotation, which may be null if the annotation has been deleted. - - - - - - - - - - Returns true if both annotation pairs contain the same values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if both pairs contain the same values. - - - - Returns true if the two annotation pairs contain different values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if the pairs contain different values. - - - - Gets the old value of the annotation, which may be null if the annotation has just been created. - - - - - Gets the new value of the annotation, which may be null if the annotation has been deleted. - - - - - Returned by and related methods to indicate whether or - not one object does not conflict with another such that the two can be combined into one. - - - If the two objects are not compatible then information about why they are not compatible is contained - in the property. - - - - - Creates a new instance. - - Indicates whether or not the two tested objects are compatible. - - An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. - - - - - Implicit conversion to a bool to allow the result object to be used directly in checks. - - The object to convert. - True if the result is compatible; false otherwise. - - - - True if the two tested objects are compatible; otherwise false. - - - - - If is true, then returns an error message indicating how the two tested objects - are incompatible. - - - - - Types used as custom annotations can implement this interface to indicate that an attempt to use - multiple annotations with the same name on a given table or column may be possible by merging - the multiple annotations into one. - - - Normally there can only be one custom annotation with a given name on a given table or - column. If a table or column ends up with multiple annotations, for example, because - multiple CLR properties map to the same column, then an exception will be thrown. - However, if the annotation type implements this interface, then the two annotations will be - checked for compatibility using the method and, if compatible, - will be merged into one using the method. - - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new merged annotation. This method is - only expected to succeed if returns true. - - The annotation to merge with this one. - A new merged annotation. - - - - Instances of this class are used as custom annotations for representing database indexes in an - Entity Framework model. - - - An index annotation is added to a Code First model when an is placed on - a mapped property of that model. This is used by Entity Framework Migrations to create indexes on - mapped database columns. Note that multiple index attributes on a property will be merged into a - single annotation for the column. Similarly, index attributes on multiple properties that map to the - same column will be merged into a single annotation for the column. This means that one index - annotation can represent multiple indexes. Within an annotation there can be only one index with any - given name. - - - - - The name used when this annotation is stored in Entity Framework metadata or serialized into - an SSDL/EDMX file. - - - - - Creates a new annotation for the given index. - - An index attributes representing an index. - - - - Creates a new annotation for the given collection of indexes. - - Index attributes representing one or more indexes. - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - - Each index annotation contains at most one with a given name. - Two annotations are considered compatible if each IndexAttribute with a given name is only - contained in one annotation or the other, or if both annotations contain an IndexAttribute - with the given name. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. - - - Each index annotation contains at most one with a given name. - The merged annotation will contain IndexAttributes from both this and the other annotation. - If both annotations contain an IndexAttribute with the same name, then the merged annotation - will contain one IndexAttribute with that name. - - The annotation to merge with this one. - A new annotation with indexes from both annotations merged. - - The other annotation contains indexes that are not compatible with indexes in this annotation. - - - - - - - - Gets the indexes represented by this annotation. - - - - - This class is used to serialize and deserialize objects so that they - can be stored in the EDMX form of the Entity Framework model. - - - An example of the serialized format is: - { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. - Note that properties that have not been explicitly set in an index attribute will be excluded from - the serialized output. So, in the example above, the first index has all properties specified, - the second has none, and the third has just the name set. - - - - - Implement this interface to allow custom annotations represented by instances to be - serialized to and from the EDMX XML. Usually a serializer instance is set using the - method. - - - - - Serializes the given annotation value into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize. - The serialized value. - - - - Deserializes the given string back into the expected annotation value. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - - - - Serializes the given into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize which must be an IndexAnnotation object. - The serialized value. - - - - Deserializes the given string back into an object. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - If there is an error reading the serialized value. - - - - This interface is implemented by any object that can resolve a dependency, either directly - or through use of an external container. - - - The public services currently resolved using IDbDependencyResolver are documented here: - http://msdn.microsoft.com/en-us/data/jj680697 - - - - - Attempts to resolve a dependency for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return null and not throw. This - allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers - can be asked to resolve a dependency until one finally does. - - The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. - - - - Attempts to resolve a dependencies for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return an empty enumeration and - not throw. This method differs from in that it returns all registered - services for the given type and key combination. - - The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. - - - - An implementation used for resolving - factories. - - - - - Initializes a new instance of - - A function that returns a new instance of a transaction handler. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. - null will match anything. - - - A string that will be matched against the server name in the connection string. null will match anything. - - - - - If the given type is , then this method will attempt - to return the service to use, otherwise it will return null. When the given type is - , then the key is expected to be a . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - , then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - - - - - - - A simple logger for logging SQL and other database operations to the console or a file. - A logger can be registered in code or in the application's web.config /app.config file. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework loads the application's . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This is the base interface for all interfaces that provide interception points for various - different types and operations. For example, see . - Interceptors are registered on the class. - - - - - Occurs during EF initialization after the has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that an interceptor of this type should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Creates a new logger that will send log output to the console. - - - - - Creates a new logger that will send log output to a file. If the file already exists then - it is overwritten. - - A path to the file to which log output will be written. - - - - Creates a new logger that will send log output to a file. - - A path to the file to which log output will be written. - True to append data to the file if it exists; false to overwrite the file. - - - - Stops logging and closes the underlying file if output is being written to a file. - - - - - Stops logging and closes the underlying file if output is being written to a file. - - - True to release both managed and unmanaged resources; False to release only unmanaged resources. - - - - - Starts logging. This method is a no-op if logging is already started. - - - - - Stops logging. This method is a no-op if logging is not started. - - - - - Called to start logging during Entity Framework initialization when this logger is registered. - as an . - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls into - implementations. - - - Note that specific types/operations that can be intercepted may use a more specific - interception context derived from this class. For example, if SQL is being executed by - a , then the DbContext will be contained in the - instance that is passed to the methods - of . - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. See - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - Call this method when creating a copy of an interception context in order to add new state - to it. Using this method instead of calling the constructor directly ensures virtual dispatch - so that the new type will have the same type (and any specialized state) as the context that - is being cloned. - - A new context with all state copied. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item if - a single has been used to construct multiple - instances. - - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item when - EF has created a new for use in database creation and initialization, or - if a single is used with multiple . - - - - - True if the operation is being executed asynchronously, otherwise false. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - Implemented by Entity Framework providers and used to check whether or not tables exist - in a given database. This is used by database initializers when determining whether or not to - treat an existing database as empty such that tables should be created. - - - - - When overridden in a derived class checks where the given tables exist in the database - for the given connection. - - - The context for which table checking is being performed, usually used to obtain an appropriate - . - - - A connection to the database. May be open or closed; should be closed again if opened. Do not - dispose. - - The tables to check for existence. - The name of the EdmMetadata table to check for existence. - True if any of the model tables or EdmMetadata table exists. - - - - Helper method to get the table name for the given s-space . - - The s-space entity set for the table. - The table name. - - - - Thrown when an error occurs committing a . - - - - - Initializes a new instance of - - - - - Initializes a new instance of - - The exception message. - - - - Initializes a new instance of - - The exception message. - The inner exception. - - - - Initializes a new instance of the class. - - The data necessary to serialize or deserialize an object. - Description of the source and destination of the specified serialized stream. - - - - Event arguments passed to event handlers. - - - - - Call this method to add a instance to the Chain of - Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The only exception to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here, unless the - overrideConfigFile is set to true in which case the resolver added here will also override config - file settings. - - The resolver to add. - If true, then the resolver added will take precedence over settings in the config file. - - - - Call this method to add a instance to the Chain of Responsibility - of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - The resolver to add. - - - - Adds a wrapping resolver to the configuration that is about to be locked. A wrapping - resolver is a resolver that incepts a service would have been returned by the resolver - chain and wraps or replaces it with another service of the same type. - - The type of service to wrap or replace. - A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. - - - - - - - - - - - - - - - - Returns a snapshot of the that is about to be locked. - Use the GetService methods on this object to get services that have been registered. - - - - - An implementation used for resolving - factories. - - - This class can be used by to aid in the resolving - of factories as a default service for the provider. - - The type of execution strategy that is resolved. - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - A string that will be matched against the server name in the connection string. null will match anything. - - A function that returns a new instance of an execution strategy. - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return null. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - Extension methods to call the method using - a generic type parameter and/or no name. - - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Implements to resolve a dependency such that it always returns - the same instance. - - The type that defines the contract for the dependency that will be resolved. - - This class is immutable such that instances can be accessed by multiple threads at the same time. - - - - - Constructs a new resolver that will return the given instance for the contract type - regardless of the key passed to the Get method. - - The instance to return. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches exactly the key passed to the Get method. - - The instance to return. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches the key passed to the Get method based on the given predicate. - - The instance to return. - A predicate that takes the key object and returns true if and only if it matches. - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Represents contextual information associated with calls with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The isolation level to associate. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to start a transaction. - - - - - This is the default log formatter used when some is set onto the - property. A different formatter can be used by creating a class that inherits from this class and overrides - some or all methods to change behavior. - - - To set the new formatter create a code-based configuration for EF using and then - set the formatter class to use with . - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - onto before any commands will be logged. - For more low-level control over logging/interception see and - . - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework executes commands. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework performs operations on a . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is invoked. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The transaction used by Entity Framework can be changed by setting - . - - The connection that began the transaction. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was closed. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is set. - - The connection. - Contextual information associated with the call. - - - - Called after is set. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being disposed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was disposed. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection. - Contextual information associated with the call. - - - - Called before or its async counterpart is invoked. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - - The connection that was opened. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework commits or rollbacks a transaction. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being disposed. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was disposed. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - Creates a formatter that will not filter by any and will instead log every command - from any context and also commands that do not originate from a context. - - - This constructor is not used when a delegate is set on . Instead it can be - used by setting the formatter directly using . - - The delegate to which output will be sent. - - - - Creates a formatter that will only log commands the come from the given instance. - - - This constructor must be called by a class that inherits from this class to override the behavior - of . - - - The context for which commands should be logged. Pass null to log every command - from any context and also commands that do not originate from a context. - - The delegate to which output will be sent. - - - - Writes the given string to the underlying write delegate. - - The string to write. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - Called whenever a command is about to be executed. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the - context filtering behavior. - - The type of the operation's results. - The command that will be executed. - Contextual information associated with the command. - - - - Called whenever a command has completed executing. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the context - filtering behavior. - - The type of the operation's results. - The command that was executed. - Contextual information associated with the command. - - - - Called to log a command that is about to be executed. Override this method to change how the - command is logged to . - - The type of the operation's results. - The command to be logged. - Contextual information associated with the command. - - - - Called by to log each parameter. This method can be called from an overridden - implementation of to log parameters, and/or can be overridden to - change the way that parameters are logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - The parameter to log. - - - - Called to log the result of executing a command. Override this method to change how results are - logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - - - - Does not write to log unless overridden. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that began the transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was opened. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was closed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - - - - - - - - - - - - The context for which commands are being logged, or null if commands from all contexts are - being logged. - - - - - The stop watch used to time executions. This stop watch is started at the end of - , , and - methods and is stopped at the beginning of the , , - and methods. If these methods are overridden and the stop watch is being used - then the overrides should either call the base method or start/stop the watch themselves. - - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Represents contextual information associated with calls that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to property setters of type on a . - - The type of the target property. - - - - Represents contextual information associated with calls to property setters of type . - - - An instance of this class is passed to the dispatch methods and does not contain mutable information such as - the result of the operation. This mutable information is obtained from the - that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information - use one of the With... or As... methods to create a new interception context containing the new information. - - The type of the target property. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The value that will be assigned to the target property. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when executing commands. It is provided publicly so that - code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is - typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls into - implementations. - - - An instance of this class is passed to the dispatch methods of - and does not contain mutable information such as the result of the operation. This mutable information - is obtained from the that is passed to the interceptors. - Instances of this class are publicly immutable. To add contextual information use one of the - With... or As... methods to create a new interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The that will be used or has been used to execute the command with a - . This property is only used for - and its async counterparts. - - - - - Represents contextual information associated with calls into - implementations including the result of the operation. - - The type of the operation's results. - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Base class that implements . This class is a convenience for - use when only one or two methods of the interface actually need to have any implementation. - - - - - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The original tree created by Entity Framework. Interceptors can change the - property to change the tree that will be used, but the - will always be the tree created by Entity Framework. - - - - - The command tree that will be used by Entity Framework. This starts as the tree contained in the - the property but can be set by interceptors to change - the tree that will be used by Entity Framework. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - setting . - - The connection on which the operation will be executed. - Information about the context of the call being made, including the value to be set. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to all dispatchers through the the fluent API. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - This is the registration point for interceptors. Interceptors - receive notifications when EF performs certain operations such as executing commands against - the database. For example, see . - - - - - Registers a new to receive notifications. Note that the interceptor - must implement some interface that extends from to be useful. - - The interceptor to add. - - - - Removes a registered so that it will no longer receive notifications. - If the given interceptor is not registered, then this is a no-op. - - The interceptor to remove. - - - - This is the entry point for dispatching to interceptors. This is usually only used internally by - Entity Framework but it is provided publicly so that other code can make sure that registered - interceptors are called when operations are performed on behalf of EF. For example, EF providers - a may make use of this when executing commands. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The connection on which the transaction was started. - A new interception context that also contains the connection on which the transaction was started. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - The connection on which the transaction was started - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The transaction to be used in the invocation. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to enlist a connection. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework creates command trees. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called after a new has been created. - The tree that is used after interception can be changed by setting - while intercepting. - - - Command trees are created for both queries and insert/update/delete commands. However, query - command trees are cached by model which means that command tree creation only happens the - first time a query is executed and this notification will only happen at that time - - Contextual information associated with the call. - - - - Represents a mapping view. - - - - - Creates a instance having the specified entity SQL. - - A string that specifies the entity SQL. - - - - Gets the entity SQL. - - - - - Base abstract class for mapping view cache implementations. - Derived classes must have a parameterless constructor if used with . - - - - - Gets a view corresponding to the specified extent. - - An that specifies the extent. - A that specifies the mapping view, - or null if the extent is not associated with a mapping view. - - - - Gets a hash value computed over the mapping closure. - - - - - Specifies the means to create concrete instances. - - - - - Creates a generated view cache instance for the container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - - A that specifies the generated view cache. - - - - - Defines a custom attribute that specifies the mapping view cache type (subclass of ) - associated with a context type (subclass of or ). - The cache type is instantiated at runtime and used to retrieve pre-generated views in the - corresponding context. - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - - A subclass of . - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - The assembly qualified full name of the cache type. - - - - The base class for interceptors that handle the transaction operations. Derived classes can be registered using - or - . - - - - - Initializes a new instance of the class. - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - The connection to use for the initialization. - - This method is called by migrations. It is important that no action is performed on the - specified context that causes it to be initialized. - - - - - - - - Releases the resources used by this transaction handler. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Checks whether the supplied interception context contains the target context - or the supplied connection is the same as the one used by the target context. - - A connection. - An interception context. - - true if the supplied interception context contains the target context or - the supplied connection is the same as the one used by the target context if - the supplied interception context doesn't contain any contexts; false otherwise. - - - Note that calling this method will trigger initialization of any DbContext referenced from the - - - - - When implemented in a derived class returns the script to prepare the database - for this transaction handler. - - A script to change the database schema for this transaction handler. - - - - Can be implemented in a derived class. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection that was disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being rolled back. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Gets the context. - - - The for which the transaction operations will be handled. - - - - - Gets the context. - - - The for which the transaction operations will be handled, could be null. - - - - - Gets the connection. - - - The for which the transaction operations will be handled. - - - This connection object is only used to determine whether a particular operation needs to be handled - in cases where a context is not available. - - - - - Gets or sets a value indicating whether this transaction handler is disposed. - - - true if disposed; otherwise, false. - - - - - This class is used by to write and read transaction tracing information - from the database. - To customize the definition of the transaction table you can derive from - this class and override . Derived classes can be registered - using . - - - By default EF will poll the resolved to check wether the database schema is compatible and - will try to modify it accordingly if it's not. To disable this check call - Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. - - - - - A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that - it can be used to query from a database and group together changes that will then be written - back to the store as a unit. - DbContext is conceptually similar to ObjectContext. - - - DbContext is usually used with a derived type that contains properties for - the root entities of the model. These sets are automatically initialized when the - instance of the derived class is created. This behavior can be modified by applying the - attribute to either the entire derived context - class, or to individual properties on the class. - The Entity Data Model backing the context can be specified in several ways. When using the Code First - approach, the properties on the derived context are used to build a model - by convention. The protected OnModelCreating method can be overridden to tweak this model. More - control over the model used for the Model First approach can be obtained by creating a - explicitly from a and passing this model to one of the DbContext constructors. - When using the Database First or Model First approach the Entity Data Model can be created using the - Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using - entity connection string or an object. - The connection to the database (including the name of the database) can be specified in several ways. - If the parameterless DbContext constructor is called from a derived context, then the name of the derived context - is used to find a connection string in the app.config or web.config file. If no connection string is found, then - the name is passed to the DefaultConnectionFactory registered on the class. The connection - factory then uses the context name as the database name in a default connection string. (This default connection - string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) - Instead of using the derived context name, the connection/database name can also be specified explicitly by - passing the name to one of the DbContext constructors that takes a string. The name can also be passed in - the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. - Note that the connection found in the app.config or web.config file can be a normal database connection - string (not a special Entity Framework connection string) in which case the DbContext will use Code First. - However, if the connection found in the config file is a special Entity Framework connection string, then the - DbContext will use Database/Model First and the model specified in the connection string will be used. - An existing or explicitly created DbConnection can also be used instead of the database/connection name. - A can be applied to a class derived from DbContext to set the - version of conventions used by the context when it creates a model. If no attribute is applied then the - latest version of conventions will be used. - - - - - Interface implemented by objects that can provide an instance. - The class implements this interface to provide access to the underlying - ObjectContext. - - - - - Gets the object context. - - The object context. - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made. The by-convention name is the full name (namespace + class name) - of the derived context class. - See the class remarks for how this is used to create a connection. - - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made, and initializes it from the given model. - The by-convention name is the full name (namespace + class name) of the derived context class. - See the class remarks for how this is used to create a connection. - - The model that will back this context. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made, and initializes it from the given model. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - The model that will back this context. - - - - Constructs a new context instance using the existing connection to connect to a database. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance using the existing connection to connect to a database, - and initializes it from the given model. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - The model that will back this context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance around an existing ObjectContext. - - An existing ObjectContext to wrap with the new context. - - If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. - - - - - This method is called when the model for a derived context has been initialized, but - before the model has been locked down and used to initialize the context. The default - implementation of this method does nothing, but it can be overridden in a derived class - such that the model can be further configured before it is locked down. - - - Typically, this method is called only once when the first instance of a derived context - is created. The model for that context is then cached and is for all further instances of - the context in the app domain. This caching can be disabled by setting the ModelCaching - property on the given ModelBuidler, but note that this can seriously degrade performance. - More control over caching is provided through use of the DbModelBuilder and DbContextFactory - classes directly. - - The builder that defines the model for the context being created. - - - - Returns a instance for access to entities of the given type in the context - and the underlying store. - - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the non-generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - The type entity for which a set should be returned. - A set for the given entity type. - - - - Returns a non-generic instance for access to entities of the given type in the context - and the underlying store. - - The type of entity for which a set should be returned. - A set for the given entity type. - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - - - - Saves all changes made in this context to the underlying database. - - The number of objects written to the underlying database. - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Validates tracked entities and returns a Collection of containing validation results. - - Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. - - 1. This method calls DetectChanges() to determine states of the tracked entities unless - DbContextConfiguration.AutoDetectChangesEnabled is set to false. - 2. By default only Added on Modified entities are validated. The user is able to change this behavior - by overriding ShouldValidateEntity method. - - - - - Extension point allowing the user to override the default behavior of validating only - added and modified entities. - - DbEntityEntry instance that is supposed to be validated. - true to proceed with validation; false otherwise. - - - - Extension point allowing the user to customize validation of an entity or filter out validation results. - Called by . - - DbEntityEntry instance to be validated. - - User-defined dictionary containing additional info for custom validation. It will be passed to - - and will be exposed as - - . This parameter is optional and can be null. - - Entity validation result. Possibly null when overridden. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The type of the entity. - The entity. - An entry for the entity. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The entity. - An entry for the entity. - - - - Calls the protected Dispose method. - - - - - Disposes the context. The underlying is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - The connection to the database ( object) is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Creates a Database instance for this context that allows for creation/deletion/existence checks - for the underlying database. - - - - - Returns the Entity Framework ObjectContext that is underlying this context. - - Thrown if the context has been disposed. - - - - Provides access to features of the context that deal with change tracking of entities. - - An object used to access features that deal with change tracking. - - - - Provides access to configuration options for the context. - - An object used to access configuration options. - - - - Initializes a new instance of the class. - - The connection used by the context for which the transactions will be recorded. - - - - - - - Gets or sets a that can be used to read and write instances. - - - - - A transaction handler that allows to gracefully recover from connection failures - during transaction commit by storing transaction tracing information in the database. - It needs to be registered by using . - - - This transaction handler uses to store the transaction information - the schema used can be configured by creating a class derived from - that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. - - - - - Initializes a new instance of the class using the default . - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes a new instance of the class. - - The transaction context factory. - - One of the Initialize methods needs to be called before this instance can be used. - - - - - - - - - - - - - - - - - Stores the tracking information for the new transaction to the database in the same transaction. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - If there was an exception thrown checks the database for this transaction and rethrows it if not found. - Otherwise marks the commit as succeeded and queues the transaction information to be deleted. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was rolled back. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was disposed. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - - - - Adds the specified transaction to the list of transactions that can be removed from the database - - The transaction to be removed from the database. - - - - Removes the transactions marked for deletion. - - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the transaction context. - - - The transaction context. - - - - - Gets the number of transactions to be executed on the context before the transaction log will be cleaned. - The default value is 20. - - - - - An implementation of this interface is used to initialize the underlying database when - an instance of a derived class is used for the first time. - This initialization can conditionally create the database and/or seed it with data. - The strategy used is set using the static InitializationStrategy property of the - class. - The following implementations are provided: , - , . - - The type of the context. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - Rrepresents a transaction - - - - - - - - - - - A unique id assigned to a transaction object. - - - - - The local time when the transaction was started. - - - - - Helper class that is used to configure a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new parameter definition to pass Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The numeric precision of the parameter. - The numeric scale of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the parameter supports Unicode content. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Represents altering an existing stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - A migration operation that affects stored procedures. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents an operation to modify a database schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MigrationOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" - }'. - - - - - Gets additional arguments that may be processed by providers. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure. - - - The name of the stored procedure. - - - - - Gets the body of the stored procedure expressed in SQL. - - - The body of the stored procedure expressed in SQL. - - - - - Gets the parameters of the stored procedure. - - - The parameters of the stored procedure. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Represents changes made to custom annotations on a table. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterTableOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table on which annotations have changed. - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets the name of the table on which annotations have changed. - - - - - Gets the columns to be included in the table for which annotations have changed. - - - - - Gets the custom annotations that have changed on the table. - - - - - Gets an operation that is the inverse of this one such that annotations will be changed back to how - they were before this operation was applied. - - - - - - - - Represents renaming an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the index belongs to. - Name of the index to be renamed. - New name for the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the index belongs to. - - - - - Gets the name of the index to be renamed. - - - - - Gets the new name for the index. - - - - - Gets an operation that reverts the rename. - - - - - - - - Used when scripting an update database operation to store the operations that would have been performed against the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Adds a migration to this update database operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The id of the migration. - The individual operations applied by the migration. - - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Gets the migrations applied during the update database operation. - - - The migrations applied during the update database operation. - - - - - Gets a value indicating if any of the operations may result in data loss. - - - - - Represents a migration to be applied to the database. - - - - - Gets the id of the migration. - - - The id of the migration. - - - - - Gets the individual operations applied by this migration. - - - The individual operations applied by this migration. - - - - - Represents moving a stored procedure to a new schema in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to move. - The new schema for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to move. - - - The name of the stored procedure to move. - - - - - Gets the new schema for the stored procedure. - - - The new schema for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents renaming a stored procedure in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to rename. - The new name for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to rename. - - - The name of the stored procedure to rename. - - - - - Gets the new name for the stored procedure. - - - The new name for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents information about a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents information about a property of an entity. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the PropertyModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this property model. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets the data type for this property model. - - - - - Gets additional details about the data type of this property model. - This includes details such as maximum length, nullability etc. - - - - - Gets or sets the name of the property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a provider specific data type to use for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the maximum length for this property model. - Only valid for array data types. - - - - - Gets or sets the precision for this property model. - Only valid for decimal data types. - - - - - Gets or sets the scale for this property model. - Only valid for decimal data types. - - - - - Gets or sets a constant value to use as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a SQL expression used as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if this property model is fixed length. - Only valid for array data types. - - - - - Gets or sets a value indicating if this property model supports Unicode characters. - Only valid for textual data types. - - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets or sets a value indicating whether this instance is out parameter. - - - true if this instance is out parameter; otherwise, false. - - - - - Drops a stored procedure from the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to drop. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to drop. - - - The name of the stored procedure to drop. - - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model. - - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type. - - The common type of the entity types that this convention applies to. - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type and a - captured value. - - The common type of the entity types that this convention applies to. - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model and a captured value. - - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The name of the property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Configures a property that is defined on this type. - - The name of the property being configured. - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The property being configured. - A configuration object that can be used to configure the property. - - - - Configures the primary key property for this entity type. - - The name of the property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property for this entity type. - - The property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The names of the properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured or if any - property does not exist. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - A type inherited by the entity type. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - - The same instance so that multiple calls can be chained. - - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Identifies conventions that can be added to or removed from a instance. - - - Note that implementations of this interface must be immutable. - - - - - A general purpose class for Code First conventions that read attributes from .NET properties - and generate column annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - A convention that doesn't override configuration. - - - - - The derived class can use the default constructor to apply a set rule of that change the model configuration. - - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model that derive from or implement the specified type. - - The type of the entities that this convention will apply to. - A configuration object for the convention. - This method does not add new types to the model. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Constructs a convention that will create column annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each column. - - - - A general purpose class for Code First conventions that read attributes from .NET types - and generate table annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - Constructs a convention that will create table annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each table. - - - - A convention for discovering attributes on properties and generating - column annotations in the model. - - - - - Constructs a new instance of the convention. - - - - - Base class for conventions that process CLR attributes found on primitive properties in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The configuration for the property that has the attribute. - The attribute. - - - - Base class for conventions that process CLR attributes found on properties of types in the model. - - - Note that the derived convention will be applied for any non-static property on the mapped type that has - the specified attribute, even if it wasn't included in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The member info for the property that has the attribute. - The configuration for the class that contains the property. - The attribute. - - - - Base class for conventions that process CLR attributes found in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a class that has an attribute of type TAttribute applied. - - The configuration for the class that contains the property. - The attribute. - - - - Used to configure a property in a mapping fragment. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the database column used to store the property, in a mapping fragment. - - The name of the column. - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Convention to introduce indexes for foreign keys. - - - - - A convention that operates on the database section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - - - - A convention that operates on the conceptual section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - Useful extension methods for use with Entity Framework LINQ queries. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - The type of entity being queried. - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - The path expression must be composed of simple property access expressions together with calls to Select for - composing additional includes after including a collection proprty. Examples of possible include paths are: - To include a single reference: query.Include(e => e.Level1Reference) - To include a single collection: query.Include(e => e.Level1Collection) - To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) - To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) - To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) - This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. - If the source IQueryable does not have a matching method, then this method does nothing. - The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. - When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other - instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the - query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. - - The type of entity being queried. - The type of navigation property being included. - The source IQueryable on which to call Include. - A lambda expression representing the path to include. - - A new IQueryable<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The element type. - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - The type of the elements of . - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - - - Bypasses a specified number of elements in a sequence and then returns the remaining elements. - - The type of the elements of source. - A sequence to return elements from. - An expression that evaluates to the number of elements to skip. - A sequence that contains elements that occur after the specified index in the - input sequence. - - - - Returns a specified number of contiguous elements from the start of a sequence. - - The type of the elements of source. - The sequence to return elements from. - An expression that evaluates to the number of elements - to return. - A sequence that contains the specified number of elements from the - start of the input sequence. - - - - Controls the transaction creation behavior while executing a database command or query. - - - - - If no transaction is present then a new transaction will be used for the operation. - - - - - If an existing transaction is present then use it, otherwise execute the command or query without a transaction. - - - - - Specifies a structural type mapping. - - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents the base item class for all the metadata - - - Represents the base item class for all the metadata - - - - - Adds or updates an annotation with the specified name and value. - - - If an annotation with the given name already exists then the value of that annotation - is updated to the given value. If the given value is null then the annotation will be - removed. - - The name of the annotation property. - The value of the annotation property. - - - - Removes an annotation with the specified name. - - The name of the annotation property. - true if an annotation was removed; otherwise, false. - - - - Returns a conceptual model built-in type that matches one of the - - values. - - - An object that represents the built-in type in the EDM. - - - One of the values. - - - - Returns the list of the general facet descriptions for a specified type. - - A object that represents the list of the general facet descriptions for a specified type. - - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - Gets the list of properties of the current type. - - A collection of type that contains the list of properties of the current type. - - - - Gets or sets the documentation associated with this type. - - A object that represents the documentation on this type. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this attribute has been replaced by the starting with EF6. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. - - - - - Initializes a new instance of the class. - - The namespace of the mapped-to function. - The name of the mapped-to function. - - - The namespace of the mapped-to function. - The namespace of the mapped-to function. - - - The name of the mapped-to function. - The name of the mapped-to function. - - - - Creates a new DbFunctionAttribute instance. - - The namespace name of the EDM function represented by the attributed method. - The function name of the EDM function represented by the attributed method. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that these functions have been moved to the class starting with EF6. - The functions are retained here only to help in the migration of older EF apps to EF6. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Options for query execution. - - - - - Creates a new instance of . - - Merge option to use for entity results. - - - - Creates a new instance of . - - Merge option to use for entity results. - Whether the query is streaming or buffering. - - - Determines whether the specified objects are equal. - true if the two objects are equal; otherwise, false. - The left object to compare. - The right object to compare. - - - - Determines whether the specified objects are not equal. - - The left object to compare. - The right object to compare. - true if the two objects are not equal; otherwise, false. - - - - - - - - - - Merge option to use for entity results. - - - - - Whether the query is streaming or buffering. - - - - - DataRecord interface supporting structured types and rich metadata information. - - - - - Gets a object with the specified index. - - - A object. - - The index of the row. - - - - Returns nested readers as objects. - - - Nested readers as objects. - - The ordinal of the column. - - - - Gets for this - - . - - - A object. - - - - - DataRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new object for a specific type with an enumerable collection of data fields. - - - The metadata for the type represented by this object, supplied by - - . - - - An enumerable collection of objects that represent column information. - - - - - Gets for this - - object. - - - A object. - - - - - Gets type info for this object as a object. - - - A value. - - - - - A prepared command definition, can be cached and reused to avoid - repreparing a command. - - - - - Initializes a new instance of the class using the supplied - - . - - - The supplied . - - method used to clone the - - - - Initializes a new instance of the class. - - - - - Creates and returns a object that can be executed. - - The command for database. - - - - Metadata Interface for all CLR types types - - - - - Value to pass to GetInformation to get the StoreSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaMapping - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 - - - - - Value to pass to GetInformation to get the StoreSchemaMappingVersion3 - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 - - - - - Name of the MaxLength Facet - - - - - Name of the Unicode Facet - - - - - Name of the FixedLength Facet - - - - - Name of the Precision Facet - - - - - Name of the Scale Facet - - - - - Name of the Nullable Facet - - - - - Name of the DefaultValue Facet - - - - - Name of the Collation Facet - - - - - Name of the SRID Facet - - - - - Name of the IsStrict Facet - - - - When overridden in a derived class, returns the set of primitive types supported by the data source. - The set of types supported by the data source. - - - When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. - A collection of EDM functions. - - - Returns the FacetDescription objects for a particular type. - The FacetDescription objects for the specified EDM type. - The EDM type to return the facet description for. - - - When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. - - The instance that describes an EDM type and a set of facets for that type. - - The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. - - - When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. - The TypeUsage instance that describes a storage type and a set of facets for that type. - The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. - - - When overridden in a derived class, this method returns provider-specific information. - The XmlReader object that represents the mapping to the underlying data store catalog. - The type of the information to return. - - - Gets the provider-specific information. - The provider-specific information. - The type of the information to return. - - - Indicates if the provider supports escaping strings to be used as patterns in a Like expression. - True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. - If the provider supports escaping, the character that would be used as the escape character. - - - Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. - The argument with the wildcards and the escape character escaped. - The argument to be escaped. - - - - Returns a boolean that specifies whether the provider can handle expression trees - containing instances of DbInExpression. - The default implementation returns false for backwards compatibility. Derived classes can override this method. - - - false - - - - Gets the namespace used by this provider manifest. - The namespace used by this provider manifest. - - - - The factory for building command definitions; use the type of this object - as the argument to the IServiceProvider.GetService method on the provider - factory; - - - - - Constructs an EF provider that will use the obtained from - the app domain Singleton for resolving EF dependencies such - as the instance to use. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object given a command tree. - - command tree for the statement - an executable command definition object - - This method simply delegates to the provider's implementation of CreateDbCommandDefinition. - - - - Creates command definition from specified manifest and command tree. - The created command definition. - The manifest. - The command tree. - - - Creates a command definition object for the specified provider manifest and command tree. - An executable command definition object. - Provider manifest previously retrieved from the store provider. - Command tree for the statement. - - - - Create the default DbCommandDefinition object based on the prototype command - This method is intended for provider writers to build a default command definition - from a command. - Note: This will clone the prototype - - the prototype command - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - DbCommand can cause deadlocks. So here allow sub-classes to override. - - the object to clone - a clone of the - - - Returns provider manifest token given a connection. - The provider manifest token. - Connection to provider. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - Returns the provider manifest by using the specified version information. - The provider manifest by using the specified version information. - The token information associated with the provider manifest. - - - When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. - A DbProviderManifest object that represents the provider manifest. - The token information associated with the provider manifest. - - - - Gets the that will be used to execute methods that use the specified connection. - - The database connection - - A new instance of - - - - - Gets the that will be used to execute methods that use the specified connection. - This overload should be used by the derived classes for compatability with wrapping providers. - - The database connection - The provider invariant name - - A new instance of - - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - Gets the spatial services for the . - The spatial services. - Information about the database that the spatial services will be used for. - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The token information associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - Returns providers given a connection. - - The instanced based on the specified connection. - - Connection to provider. - - - Retrieves the DbProviderFactory based on the specified DbConnection. - The retrieved DbProviderFactory. - The connection to use. - - - - Return an XML reader which represents the CSDL description - - The name of the CSDL description. - An XmlReader that represents the CSDL description - - - Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - The provider manifest token identifying the target version. - The structure of the database. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Creates a database indicated by connection and creates schema objects - (tables, primary keys, foreign keys) based on the contents of storeItemCollection. - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - - Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, - or returns the given string if it does not start with |DataDirectory|. - - The path to expand. - The expanded path. - - - - Adds an that will be used to resolve additional default provider - services when a derived type is registered as an EF provider either using an entry in the application's - config file or through code-based registration in . - - The resolver to add. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - - Use this method to set, add, or change other provider-related services. Note that this method - will only be called for such services if they are not already explicitly configured in some - other way by the application. This allows providers to set default services while the - application is still able to override and explicitly configure each service if required. - See and for more details. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - An instance of the given type, or null if the service could not be resolved. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - All registered services that satisfy the given type and key, or an empty enumeration if there are none. - - - - A specialization of the ProviderManifest that accepts an XmlReader - - - - - Initializes a new instance of the class. - - - An object that provides access to the XML data in the provider manifest file. - - - - Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. - - A collection of type that contains the list of facet descriptions for the specified EDM type. - - - An for which the facet descriptions are to be retrieved. - - - - Returns the list of primitive types supported by the storage provider. - - A collection of type that contains the list of primitive types supported by the storage provider. - - - - Returns the list of provider-supported functions. - - A collection of type that contains the list of provider-supported functions. - - - - Gets the namespace name supported by this provider manifest. - The namespace name supported by this provider manifest. - - - Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. - The best mapped equivalent EDM type for a specified storage type name. - - - Gets the best mapped equivalent storage primitive type for a specified storage type name. - The best mapped equivalent storage primitive type for a specified storage type name. - - - - Class for representing a collection of items. - Most of the implementation for actual maintenance of the collection is - done by MetadataCollection - - - - - Class representing a read-only wrapper around MetadataCollection - - The type of items in this collection - - - Retrieves an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - - - Determines whether the collection contains an item with the specified identity. - true if the collection contains the item to be searched for; otherwise, false. The default is false. - The identity of the item. - - - Retrieves an item from this collection by using the specified identity. - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. - - - Returns an enumerator that can iterate through this collection. - - A that can be used to iterate through this - - . - - - - Returns the index of the specified value in this collection. - The index of the specified value in this collection. - A value to seek. - - - Gets a value indicating whether this collection is read-only. - true if this collection is read-only; otherwise, false. - - - Gets an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - - - - The enumerator for MetadataCollection - - - - Disposes of this enumerator. - - - - Moves to the next member in the collection of type - - . - - - true if the enumerator is moved in the collection of type - - ; otherwise, false. - - - - - Positions the enumerator before the first position in the collection of type - - . - - - - Gets the member at the current position. - The member at the current position. - - - - Gets the member at the current position - - - - - Returns a strongly typed object by using the specified identity. - - The item that is specified by the identity. - The identity of the item. - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. - - The item that is specified by the identity. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The type returned by the method. - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all the items of the specified type. - - The type returned by the method. - - - - Returns an object by using the specified type name and the namespace name in this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - Returns all the overloads of the functions by using the specified name from this item collection. - A collection of type ReadOnlyCollection that contains all the functions that have the specified name. - A dictionary of functions. - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first one. - The name of the entity container. - - - - Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - Gets the data model associated with this item collection. - The data model associated with this item collection. - - - - EntityRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. - - - The of the entity represented by the - - described by this - - object. - - - An enumerable collection of objects that represent column information. - - The key for the entity. - The entity set to which the entity belongs. - - - - Gets the for the entity. - - The key for the entity. - - - - Public Entity SQL Parser class. - - - - Parse the specified query with the specified parameters. - - The containing - - and information describing inline function definitions if any. - - The EntitySQL query to be parsed. - The optional query parameters. - - - - Parse a specific query with a specific set variables and produce a - - . - - - The containing - - and information describing inline function definitions if any. - - The query to be parsed. - The optional query variables. - - - - Entity SQL query inline function definition, returned as a part of . - - - - Function name. - - - Function body and parameters. - - - Start position of the function definition in the eSQL query text. - - - End position of the function definition in the eSQL query text. - - - - Entity SQL Parser result information. - - - - A command tree produced during parsing. - - - - List of objects describing query inline function definitions. - - - - - Compares objects using reference equality. - - - - - Gets the default instance. - - - - - Specifies the maximum length of array/string data allowed in a property. - - - - - Initializes a new instance of the class. - - The maximum allowable length of array/string data. Value must be greater than zero. - - - - Initializes a new instance of the class. - The maximum allowable length supported by the database will be used. - - - - - Determines whether a specified object is valid. (Overrides ) - - - This method returns true if the is null. - It is assumed the is used if the value may not be null. - - The object to validate. - true if the value is null or less than or equal to the specified maximum length, otherwise false - Length is zero or less than negative one. - - - - Applies formatting to a specified error message. (Overrides ) - - The name to include in the formatted string. - A localized string to describe the maximum acceptable length. - - - - Checks that Length has a legal value. Throws InvalidOperationException if not. - - - - - Gets the maximum allowable length of the array/string data. - - - - - Specifies the minimum length of array/string data allowed in a property. - - - - - Initializes a new instance of the class. - - The minimum allowable length of array/string data. Value must be greater than or equal to zero. - - - - Determines whether a specified object is valid. (Overrides ) - - - This method returns true if the is null. - It is assumed the is used if the value may not be null. - - The object to validate. - true if the value is null or greater than or equal to the specified minimum length, otherwise false - Length is less than zero. - - - - Applies formatting to a specified error message. (Overrides ) - - The name to include in the formatted string. - A localized string to describe the minimum acceptable length. - - - - Checks that Length has a legal value. Throws InvalidOperationException if not. - - - - - Gets the minimum allowable length of the array/string data. - - - - - Specifies the database column that a property is mapped to. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the column the property is mapped to. - - - - The name of the column the property is mapped to. - - - - - The zero-based order of the column the property is mapped to. - - - - - The database provider specific data type of the column the property is mapped to. - - - - - Denotes that the class is a complex type. - Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. - Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object. - - - - - Specifies how the database generates values for a property. - - - - - Initializes a new instance of the class. - - The pattern used to generate values for the property in the database. - - - - The pattern used to generate values for the property in the database. - - - - - The pattern used to generate values for a property in the database. - - - - - The database does not generate values. - - - - - The database generates a value when a row is inserted. - - - - - The database generates a value when a row is inserted or updated. - - - - - Denotes a property used as a foreign key in a relationship. - The annotation may be placed on the foreign key property and specify the associated navigation property name, - or placed on a navigation property and specify the associated foreign key name. - - - - - Initializes a new instance of the class. - - If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). If a navigation property has multiple foreign keys, a comma separated list should be supplied. - - - - If placed on a foreign key property, the name of the associated navigation property. - If placed on a navigation property, the name of the associated foreign key(s). - - - - - Specifies the inverse of a navigation property that represents the other end of the same relationship. - - - - - Initializes a new instance of the class. - - The navigation property representing the other end of the same relationship. - - - - The navigation property representing the other end of the same relationship. - - - - - Denotes that a property or class should be excluded from database mapping. - - - - - Specifies the database table that a class is mapped to. - - - - - Initializes a new instance of the class. - - The name of the table the class is mapped to. - - - - The name of the table the class is mapped to. - - - - - The schema of the table the class is mapped to. - - - - - Wraps access to the transaction object on the underlying store connection and ensures that the - Entity Framework executes commands on the database within the context of that transaction. - An instance of this class is retrieved by calling BeginTransaction() on the - - object. - - - - - Commits the underlying store transaction - - - - - Rolls back the underlying store transaction - - - - - Cleans up this transaction object and ensures the Entity Framework - is no longer using that transaction. - - - - - Releases the resources used by this transaction object - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Gets the database (store) transaction that is underlying this context transaction. - - - - - A service for obtaining the correct from a given - . - - - On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the - default implementation of this service uses some heuristics to find the matching - provider. If these fail then a new implementation of this service can be registered - on to provide an appropriate resolution. - - - - - Returns the for the given connection. - - The connection. - The provider factory for the connection. - - - - Explicitly implemented by to prevent certain members from showing up - in the IntelliSense of scaffolded migrations. - - - - - Adds a custom to the migration. - Custom operation implementors are encouraged to create extension methods on - that provide a fluent-style API for adding new operations. - - The operation to add. - - - - A default implementation of that uses the - underlying provider to get the manifest token. - Note that to avoid multiple queries, this implementation using caching based on the actual type of - instance, the property, - and the property. - - - - - A service for getting a provider manifest token given a connection. - The class is used by default and makes use of the - underlying provider to get the token which often involves opening the connection. - A different implementation can be used instead by adding an - to that may use any information in the connection to return - the token. For example, if the connection is known to point to a SQL Server 2008 database then - "2008" can be returned without opening the connection. - - - - - Returns the manifest token to use for the given connection. - - The connection for which a manifest token is required. - The manifest token to use. - - - - - - - A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. - - - - - Executes the specified operation. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Indicates whether this might retry the execution after a failure. - - - - - Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses - exponentially increasing delays between retries. - - - A new instance will be created each time an operation is executed. - The following formula is used to calculate the delay after retryCount number of attempts: - min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) - The retryCount starts at 0. - The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - A delegate representing an executable operation that doesn't return any results. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - The type of result expected from the executable operation. - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Determines whether the operation should be retried and the delay before the next attempt. - - The exception thrown during the last execution attempt. - - Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; - null otherwise - - - - - Recursively gets InnerException from as long as it's an - , or - and passes it to - - The type of the unwrapped exception. - The exception to be unwrapped. - A delegate that will be called with the unwrapped exception. - - The result from . - - - - - Determines whether the specified exception represents a transient failure that can be compensated by a retry. - - The exception object to be verified. - - true if the specified exception is considered as transient, otherwise false. - - - - - Returns true to indicate that might retry the execution after a failure. - - - - - A key used for resolving . It consists of the ADO.NET provider invariant name - and the database server name as specified in the connection string. - - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A string that will be matched against the server name in the connection string. - - - - - - - - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - - - A string that will be matched against the server name in the connection string. - - - - - Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. - This interface allows you to have a single context type that can be used with different models in the same AppDomain, - or multiple context types that use the same model. - - - - Gets the cached key associated with the provider. - The cached key associated with the provider. - - - - Used by and when resolving - a provider invariant name from a . - - - - Gets the name of the provider. - The name of the provider. - - - - Represents a custom pluralization term to be used by the - - - - - Create a new instance - - A non null or empty string representing the singular. - A non null or empty string representing the plural. - - - - Get the singular. - - - - - Get the plural. - - - - - Default pluralization service implementation to be used by Entity Framework. This pluralization - service is based on English locale. - - - - - Pluralization services to be used by the EF runtime implement this interface. - By default the is used, but the pluralization service to use - can be set in a class derived from . - - - - - Pluralize a word using the service. - - The word to pluralize. - The pluralized word - - - - Singularize a word using the service. - - The word to singularize. - The singularized word. - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - A collection of user dictionary entries to be used by this service.These inputs - can customize the service according the user needs. - - - - Returns the plural form of the specified word. - The plural form of the input parameter. - The word to be made plural. - - - Returns the singular form of the specified word. - The singular form of the input parameter. - The word to be made singular. - - - - The exception that is thrown when the action failed again after being retried the configured number of times. - - - - - Provider exception - Used by the entity client. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the class with no error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The exception that is the cause of the current exception. - - - - An that doesn't retry operations if they fail. - - - - - Executes the specified operation once. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation once and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Returns false to indicate that will not retry the execution after a failure. - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a generic version of this class. - - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a generic version of this class. - - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking - and AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the results of the query will not be tracked by the associated - . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a non-generic version of this class. - - The type of entities returned by the query. - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a non-generic version of this class. - - The type of elements returned by the query. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking and - AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. - - - - Determines whether the current cached model key is equal to the specified cached model key. - true if the current cached model key is equal to the specified cached model key; otherwise, false. - The cached model key to compare to the current cached model key. - - - Returns the hash function for this cached model key. - The hash function for this cached model key. - - - - Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. - - - - - Represents errors that occur inside the Code First Migrations pipeline. - - - - - Initializes a new instance of the MigrationsException class. - - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the MigrationsException class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the MigrationsPendingException class. - - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - A migration operation to add a new stored procedure to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the stored procedure. - - - - - Allows configuration to be performed for a lightweight convention based on - the properties in a model. - - - - - Filters the properties that this convention applies to based on a predicate. - - A function to test each property for a condition. - - A instance so that multiple calls can be chained. - - - - - Filters the properties that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each property. If the value is null, the - property will be filtered out. - - - A instance so that multiple calls can be chained. - - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the properties of entity types in a model and a captured value. - - The type of the captured value. - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to modify a relationship. - - The type of the entity that the relationship is being configured from. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Creates a convention that configures stored procedures to be used to delete entities in the database. - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to insert entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a convention that configures stored procedures to be used to update entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - - Performs configuration of a stored procedure uses to modify an entity in the database. - - - - - Sets the name of the stored procedure. - - Name of the procedure. - The same configuration instance so that multiple calls can be chained. - - - - Sets the name of the stored procedure. - - Name of the procedure. - Name of the schema. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - Configures stored procedure used to insert relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to delete entities. - - The type of the entity that the stored procedure can be used to delete. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to insert entities. - - The type of the entity that the stored procedure can be used to insert. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to update entities. - - The type of the entity that the stored procedure can be used to update. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify entities. - - The type of the entity that the stored procedure can be used to modify. - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via lightweight conventions. - - - - - Configures the name of the database column used to store the property. - - The name of the column. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - - The same instance so that multiple calls can be chained. - - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be used as an optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures how values for the property are generated by the database. - - The pattern used to generate values for the property in the database. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to support Unicode string content. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to be variable length. - Properties are variable length by default. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to allow the maximum length supported by the database provider. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures this property to be part of the entity type's primary key. - - - The same instance so that - multiple calls can be chained. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the for this property. - - - - - An implementation of that does nothing. Using this - initializer disables database initialization for the given context type. Passing an instance - of this class to is equivalent to passing null. - When is being used to resolve initializers an instance of - this class must be used to disable initialization. - - The type of the context. - - - - - - - FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. - - - - - Initializes a new object with the specified ordinal value and field type. - - An integer specified the location of the metadata. - The field type. - - - - Gets the type of field for this object. - - - The type of field for this object. - - - - - Gets the ordinal for this object. - - An integer representing the ordinal value. - - - - Class representing a parameter collection used in EntityCommand - - - - - Adds the specified object to the . - - - The index of the new object. - - - An . - - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Removes all the objects from the - - . - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified one-dimensional - - starting at the specified destination index. - - - The one-dimensional that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the at which copying starts. - - - - - Returns an enumerator that iterates through the - - . - - - An for the - - . - - - - - - - - - - - Gets the location of the specified with the specified name. - - - The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the - - . - - - The case-sensitive name of the to find. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts an into the - - at the specified index. - - The zero-based index at which value should be inserted. - - An to be inserted in the - - . - - - - Removes the specified parameter from the collection. - - A object to remove from the collection. - - - - - Removes the from the - - at the specified index. - - - The zero-based index of the object to remove. - - - - - Removes the from the - - at the specified parameter name. - - - The name of the to remove. - - - - - - - - - - - Adds the specified object to the - - . - - - A new object. - - - The to add to the collection. - - - The specified in the value parameter is already added to this or another - - . - - - The parameter passed was not a . - - The value parameter is null. - - - - Adds a value to the end of the . - - - A object. - - The name of the parameter. - The value to be added. - - - - Adds a to the - - given the parameter name and the data type. - - - A new object. - - The name of the parameter. - - One of the values. - - - - - Adds a to the - - with the parameter name, the data type, and the column length. - - - A new object. - - The name of the parameter. - - One of the values. - - The column length. - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified - - starting at the specified destination index. - - - The that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the - - at which copying starts. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts a object into the - - at the specified index. - - The zero-based index at which value should be inserted. - - A object to be inserted in the - - . - - - - - Removes the specified from the collection. - - - A object to remove from the collection. - - - The parameter is not a . - - The parameter does not exist in the collection. - - - - Gets an Integer that contains the number of elements in the - - . - - - The number of elements in the as an Integer. - - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true if the has a fixed size; otherwise false. - - - - - Gets a value that indicates whether the - - is read-only. - - - Returns true if the is read only; otherwise false. - - - - - Gets a value that indicates whether the - - is synchronized. - - - Returns true if the is synchronized; otherwise false. - - - - - Gets an object that can be used to synchronize access to the - - . - - - An object that can be used to synchronize access to the - - . - - - - - Gets the at the specified index. - - - The at the specified index. - - The zero-based index of the parameter to retrieve. - The specified index does not exist. - - - - Gets the with the specified name. - - - The with the specified name. - - The name of the parameter to retrieve. - The specified name does not exist. - - - - Class representing a command for the conceptual layer - - - - - Initializes a new instance of the class using the specified values. - - - - - Initializes a new instance of the class with the specified statement. - - The text of the command. - - - - Constructs the EntityCommand object with the given eSQL statement and the connection object to use - - The eSQL command text to execute - The connection object - Resolver used to resolve DbProviderServices - - - - Initializes a new instance of the class with the specified statement and connection. - - The text of the command. - A connection to the data source. - - - - Initializes a new instance of the class with the specified statement, connection and transaction. - - The text of the command. - A connection to the data source. - The transaction in which the command executes. - - - - Cancels the execution of an . - - - - - Creates a new instance of an object. - - - A new instance of an object. - - - - - Create and return a new parameter object representing a parameter in the eSQL statement - - The parameter object. - - - Executes the command and returns a data reader. - - The that contains the results. - - - - - Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an - - out of the produced result set using the specified - - . - - - The that contains the results. - - - One of the values. - - - - - Executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - A DbDataReader object - - - Executes the current command. - The number of rows affected. - - - Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. - The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. - - - Compiles the entity-level command and creates a prepared version of the command. - - - Compiles the entity-level command and returns the store command text. - The store command text. - - - - Gets or sets the used by the - - . - - The connection used by the entity command. - - - - The connection object used for executing the command - - - - Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. - The Entity SQL statement that specifies a command or stored procedure to execute. - - - Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. - The command tree to execute. - - - Gets or sets the amount of time to wait before timing out. - The time in seconds to wait for the command to execute. - - - - Gets or sets a value that indicates how the - - property is to be interpreted. - - - One of the enumeration values. - - - - Gets the parameters of the Entity SQL statement or stored procedure. - The parameters of the Entity SQL statement or stored procedure. - - - - The collection of parameters for this command - - - - - Gets or sets the transaction within which the executes. - - - The transaction within which the executes. - - - - - The transaction that this command executes in - - - - Gets or sets how command results are applied to rows being updated. - - One of the values. - - - - Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. - true if the command object should be visible in a Windows Form Designer control; otherwise, false. - - - Gets or sets a value that indicates whether the query plan caching is enabled. - true if the query plan caching is enabled; otherwise, false. - - - - Class representing a connection for the conceptual layer. An entity connection may only - be initialized once (by opening the connection). It is subsequently not possible to change - the connection string, attach a new store connection, or change the store connection string. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, based on the connection string. - - The provider-specific connection string. - An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. - - - - Initializes a new instance of the class with a specified - and - . - - - A to be associated with this - . - - - The underlying data source connection for this object. - - The workspace or connection parameter is null. - The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. - The connection is not from an ADO.NET Entity Framework-compatible provider. - - - - Constructs the EntityConnection from Metadata loaded in memory - - Workspace containing metadata information. - Store connection. - If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. - - - - Returns the associated with this - - . - - - The associated with this - - . - - The inline connection string contains an invalid Metadata keyword value. - - - Establishes a connection to the data source by calling the underlying data provider's Open method. - An error occurs when you open the connection, or the name of the underlying data provider is not known. - The inline connection string contains an invalid Metadata keyword value. - - - - Creates a new instance of an , with the - - set to this - - . - - - An object. - - The name of the underlying data provider is not known. - - - - Create a new command object that uses this connection object - - The command object. - - - Closes the connection to the database. - An error occurred when closing the connection. - - - Not supported. - Not supported. - When the method is called. - - - Begins a transaction by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - Begins a transaction with the specified isolation level by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - The isolation level of the transaction. - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - - Begins a database transaction - - The isolation level of the transaction - An object representing the new transaction - - - - Enlists this in the specified transaction. - - The transaction object to enlist into. - - The state of the is not - - . - - - - - Cleans up this connection object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets or sets the connection string. - - The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. - - An attempt was made to set the property after the - - ’s was initialized. The - - is initialized either when the instance is constructed through the overload that takes a - - as a parameter, or when the - - instance has been opened. - - An invalid connection string keyword has been provided or a required connection string keyword has not been provided. - - - Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. - The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. - The value set is less than 0. - - - Gets the name of the current database, or the database that will be used after a connection is opened. - The value of the Database property of the underlying data provider. - The underlying data provider is not known. - - - - Gets the state of the EntityConnection, which is set up to track the state of the underlying - database connection that is wrapped by this EntityConnection. - - - - Gets the name or network address of the data source to connect to. - The name of the data source. The default value is an empty string. - The underlying data provider is not known. - - - Gets a string that contains the version of the data source to which the client is connected. - The version of the data source that is contained in the provider connection string. - The connection is closed. - - - - Gets the provider factory associated with EntityConnection - - - - - Provides access to the underlying data source connection that is used by the - - object. - - - The for the data source connection. - - - - - Gets the current transaction that this connection is enlisted in. May be null. - - - - - Class representing a connection string builder for the entity client provider - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class using the supplied connection string. - - A provider-specific connection string to the underlying data source. - - - - Clears the contents of the instance. - - - - - Determines whether the contains a specific key. - - - Returns true if the contains an element that has the specified key; otherwise, false. - - - The key to locate in the . - - - - - Retrieves a value corresponding to the supplied key from this - - . - - Returns true if keyword was found in the connection string; otherwise, false. - The key of the item to retrieve. - The value corresponding to keyword. - keyword contains a null value (Nothing in Visual Basic). - - - - Removes the entry with the specified key from the - - instance. - - Returns true if the key existed in the connection string and was removed; false if the key did not exist. - - The key of the keyword/value pair to be removed from the connection string in this - - . - - keyword is null (Nothing in Visual Basic) - - - Gets or sets the name of a section as defined in a configuration file. - The name of a section in a configuration file. - - - Gets or sets the name of the underlying .NET Framework data provider in the connection string. - The invariant name of the underlying .NET Framework data provider. - - - Gets or sets the metadata locations in the connection string. - Gets or sets the metadata locations in the connection string. - - - Gets or sets the inner, provider-specific connection string. - The inner, provider-specific connection string. - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true in every case, because the - - supplies a fixed-size collection of keyword/value pairs. - - - - - Gets an that contains the keys in the - - . - - - An that contains the keys in the - - . - - - - Gets or sets the value associated with the specified key. In C#, this property is the indexer. - The value associated with the specified key. - The key of the item to get or set. - keyword is a null reference (Nothing in Visual Basic). - Tried to add a key that does not exist in the available keys. - Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). - - - - A data reader class for the entity client provider - - - - - Closes the object. - - - - - Releases the resources consumed by this and calls - - . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the value of the specified column as a Boolean. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a byte. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of bytes read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the value of the specified column as a single character. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of characters read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the name of the data type of the specified column. - The name of the data type. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - - Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. - - A data reader. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a double-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the data type of the specified column. - The data type of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a single-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a globally-unique identifier (GUID). - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 16-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 32-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 64-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the name of the column, given the zero-based column ordinal. - The name of the specified column. - The zero-based column ordinal. - - - Gets the column ordinal given the name of the column. - The zero-based column ordinal. - The name of the column. - The name specified is not a valid column name. - - - Returns the provider-specific field type of the specified column. - - The object that describes the data type of the specified column. - - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Gets all provider-specific attribute columns in the collection for the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - - Returns a that describes the column metadata of the - - . - - - A that describes the column metadata. - - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Populates an array of objects with the column values of the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - Gets a value that indicates whether the column contains nonexistent or missing values. - - true if the specified column is equivalent to ; otherwise, false. - - The zero-based column ordinal. - - - Advances the reader to the next result when reading the results of a batch of statements. - true if there are more result sets; otherwise, false. - - - Advances the reader to the next record in a result set. - true if there are more rows; otherwise, false. - - - - Returns an that can be used to iterate through the rows in the data reader. - - - An that can be used to iterate through the rows in the data reader. - - - - - Returns a nested . - - The nested data record. - The number of the DbDataRecord to return. - - - - Returns nested readers as objects. - - - The nested readers as objects. - - The ordinal of the column. - - - Gets a value indicating the depth of nesting for the current row. - The depth of nesting for the current row. - - - Gets the number of columns in the current row. - The number of columns in the current row. - - - - Gets a value that indicates whether this contains one or more rows. - - - true if the contains one or more rows; otherwise, false. - - - - - Gets a value indicating whether the is closed. - - - true if the is closed; otherwise, false. - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The name of the column. - - - - Gets the number of fields in the that are not hidden. - - The number of fields that are not hidden. - - - - Gets for this - - . - - The information of a data record. - - - - Class representing a parameter used in EntityCommand - - - - - Initializes a new instance of the class using the default values. - - - - - Initializes a new instance of the class using the specified parameter name and data type. - - The name of the parameter. - - One of the values. - - - - - Initializes a new instance of the class using the specified parameter name, data type and size. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - The name of the source column. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - One of the values. - - true to indicate that the parameter accepts null values; otherwise, false. - The number of digits used to represent the value. - The number of decimal places to which value is resolved. - The name of the source column. - - One of the values. - - The value of the parameter. - - - - Resets the type associated with the . - - - - Returns a string representation of the parameter. - A string representation of the parameter. - - - Gets or sets the name of the entity parameter. - The name of the entity parameter. - - - - Gets or sets the of the parameter. - - - One of the values. - - - - Gets or sets the type of the parameter, expressed as an EdmType. - The type of the parameter, expressed as an EdmType. - - - - Gets or sets the number of digits used to represent the - - property. - - The number of digits used to represent the value. - - - - Gets or sets the number of decimal places to which - - is resolved. - - The number of decimal places to which value is resolved. - - - Gets or sets the value of the parameter. - The value of the parameter. - - - Gets or sets the direction of the parameter. - - One of the values. - - - - Gets or sets a value that indicates whether the parameter accepts null values. - true if null values are accepted; otherwise, false. - - - Gets or sets the maximum size of the data within the column. - The maximum size of the data within the column. - - - - Gets or sets the name of the source column mapped to the and used for loading or returning the - - . - - The name of the source column mapped to the dataset and used for loading or returning the value. - - - Gets or sets a value that indicates whether source column is nullable. - true if source column is nullable; otherwise, false. - - - - Gets or sets the to use when loading the value. - - - One of the values. - - - - - Class representing a provider factory for the entity client provider - - - - - A singleton object for the entity client provider factory object. - This remains a public field (not property) because DbProviderFactory expects a field. - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - This method is currently not supported. - - - - Returns the requested class. - - - A new instance of . The supported types are - - , - - , and - - . Returns null (or Nothing in Visual Basic) for every other type. - - - The to return. - - - - - Class representing a transaction for the conceptual layer - - - - Commits the underlying transaction. - - - Rolls back the underlying transaction. - - - - Cleans up this transaction object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets for this - - . - - - An to the underlying data source. - - - - - The connection object owning this transaction object - - - - - Gets the isolation level of this . - - - An enumeration value that represents the isolation level of the underlying transaction. - - - - - Gets the DbTransaction for the underlying provider transaction. - - - - - Represents a failure while trying to prepare or execute a CommandCompilation - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents a failure while trying to prepare or execute a CommandExecution - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - An identifier for an entity. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with an entity set name and a generic - - collection. - - - A that is the entity set name qualified by the entity container name. - - - A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the - - . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. - - - - - Initializes a new instance of the class with an entity set name and an - - collection of - - objects. - - - A that is the entity set name qualified by the entity container name. - - - An collection of - - objects with which to initialize the key. - - - - - Initializes a new instance of the class with an entity set name and specific entity key pair. - - - A that is the entity set name qualified by the entity container name. - - - A that is the name of the key. - - - An that is the key value. - - - - Gets the entity set for this entity key from the given metadata workspace. - - The for the entity key. - - The metadata workspace that contains the entity. - The entity set could not be located in the specified metadata workspace. - - - Returns a value that indicates whether this instance is equal to a specified object. - true if this instance and obj have equal values; otherwise, false. - - An to compare with this instance. - - - - - Returns a value that indicates whether this instance is equal to a specified - - . - - true if this instance and other have equal values; otherwise, false. - - An object to compare with this instance. - - - - - Serves as a hash function for the current object. - - is suitable for hashing algorithms and data structures such as a hash table. - - - A hash code for the current . - - - - - Compares two objects. - - true if the key1 and key2 values are equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Compares two objects. - - true if the key1 and key2 values are not equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream and provides an additional caller-defined context. - - - - Gets a singleton EntityKey by which a read-only entity is identified. - - - - - Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. - - - - Gets or sets the name of the entity set. - - A value that is the name of the entity set for the entity to which the - - belongs. - - - - Gets or sets the name of the entity container. - - A value that is the name of the entity container for the entity to which the - - belongs. - - - - - Gets or sets the key values associated with this . - - - A of key values for this - - . - - - - - Gets a value that indicates whether the is temporary. - - - true if the is temporary; otherwise, false. - - - - - Information about a key that is part of an EntityKey. - A key member contains the key name and value. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified entity key pair. - - The name of the key. - The key value. - - - Returns a string representation of the entity key. - A string representation of the entity key. - - - Gets or sets the name of the entity key. - The key name. - - - Gets or sets the value of the entity key. - The key value. - - - - Kind of collection (applied to Properties) - - - - - Property is not a Collection - - - - - Collection has Bag semantics( unordered and duplicates ok) - - - - - Collection has List semantics - (Order is deterministic and duplicates ok) - - - - - The concurrency mode for properties. - - - - - Default concurrency mode: the property is never validated - at write time - - - - - Fixed concurrency mode: the property is always validated at - write time - - - - - The pattern for Server Generated Properties. - - - - - Not a Server Generated Property. This is the default. - - - - - A value is generated on INSERT, and remains unchanged on update. - - - - - A value is generated on both INSERT and UPDATE. - - - - - Represents an eSQL Query compilation exception; - The class of exceptional conditions that may cause this exception to be raised are mainly: - 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; - 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information - not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. - For more information, see eSQL Language Spec. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - Gets a description of the error. - A string that describes the error. - - - Gets the approximate context where the error occurred, if available. - A string that describes the approximate context where the error occurred, if available. - - - Gets the approximate line number where the error occurred. - An integer that describes the line number where the error occurred. - - - Gets the approximate column number where the error occurred. - An integer that describes the column number where the error occurred. - - - - Thrown to indicate that a command tree is invalid. - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - Mapping exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Class for representing a collection of mapping items in Edm space. - - - - - Base class for the type created at design time to store the generated views. - - - - Returns the key/value pair at the specified index, which contains the view and its key. - The key/value pair at index , which contains the view and its key. - The index of the view. - - - - Gets or sets the name of . - - The container name. - - - - Gets or sets in storage schema. - - Container name. - - - Hash value. - Hash value. - - - Hash value of views. - Hash value. - - - Gets or sets view count. - View count. - - - - Attribute to mark the assemblies that contain the generated views type. - - - - - Initializes a new instance of the class. - - The view type. - - - Gets the T:System.Type of the view. - The T:System.Type of the view. - - - - Represents a complex type mapping for a function import result. - - - - - Specifies a function import structural type mapping. - - - - - Gets the property mappings for the result type of a function import. - - - - - Initializes a new FunctionImportComplexTypeMapping instance. - - The return type. - The property mappings for the result type of a function import. - - - - Ges the return type. - - - - - Represents a function import entity type mapping. - - - - - Initializes a new FunctionImportEntityTypeMapping instance. - - The entity types at the base of - the type hierarchies to be mapped. - The entity types to be mapped. - The property mappings for the result types of a function import. - The mapping conditions. - - - - Gets the entity types being mapped. - - - - - Gets the entity types at the base of the hierarchies being mapped. - - - - - Gets the mapping conditions. - - - - - Represents a mapping condition for a function import result. - - - - - - - - Gets the name of the column used to evaluate the condition. - - - - - Represents a mapping condition for the result of a function import - evaluated by checking null or not null. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. - - The name of the column used to evaluate the condition. - Flag that indicates whether a null or not null check is performed. - - - - Gets a flag that indicates whether a null or not null check is performed. - - - - - Represents a mapping condition for the result of a function import, - evaluated by comparison with a specified value. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionValue instance. - - The name of the column used to evaluate the condition. - The value to compare with. - - - - Gets the value used for comparison. - - - - - Represents a mapping from a model function import to a store composable or non-composable function. - - - - - Gets model function (or source of the mapping) - - - - - Gets store function (or target of the mapping) - - - - - Represents a mapping from a model function import to a store composable function. - - - - - Initializes a new FunctionImportMappingComposable instance. - - The model function import. - The store composable function. - The result mapping for the function import. - The parent container mapping. - - - - Gets the result mapping for the function import. - - - - - Represents a mapping from a model function import to a store non-composable function. - - - - - Initializes a new FunctionImportMappingNonComposable instance. - - The model function import. - The store non-composable function. - The function import result mappings. - The parent container mapping. - - - - Gets the function import result mappings. - - - - - Base class for mapping a property of a function import return type. - - - - - Maps a function import return type property to a table column. - - - - - Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. - - The mapped property name. - The mapped column name. - - - - Gets the mapped property name. - - - - - Gets the mapped column name. - - - - - Represents the base item class for all the mapping metadata - - - - - Represents the base item class for all the metadata - - - - - Describes modification function mappings for an association set. - - - - - Initalizes a new AssociationSetModificationFunctionMapping instance. - - An association set. - A delete function mapping. - An insert function mapping. - - - - - - - Gets the association set. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Describes modification function mappings for an entity type within an entity set. - - - - - Initializes a new EntityTypeModificationFunctionMapping instance. - - An entity type. - A delete function mapping. - An insert function mapping. - An updated function mapping. - - - - - - - Gets the entity type. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Gets hte update function mapping. - - - - - Describes the location of a member within an entity or association type structure. - - - - - Initializes a new ModificationFunctionMemberPath instance. - - Gets the members in the path from the leaf (the member being bound) - to the root of the structure. - Gets the association set to which we are navigating - via this member. If the value is null, this is not a navigation member path. - - - - - - - Gets the members in the path from the leaf (the member being bound) - to the Root of the structure. - - - - - Gets the association set to which we are navigating via this member. If the value - is null, this is not a navigation member path. - - - - - Binds a modification function parameter to a member of the entity or association being modified. - - - - - Initializes a new ModificationFunctionParameterBinding instance. - - The parameter taking the value. - The path to the entity or association member defining the value. - A flag indicating whether the current or original member value is being bound. - - - - - - - Gets the parameter taking the value. - - - - - Gets the path to the entity or association member defining the value. - - - - - Gets a flag indicating whether the current or original - member value is being bound. - - - - - Defines a binding from a named result set column to a member taking the value. - - - - - Initializes a new ModificationFunctionResultBinding instance. - - The name of the column to bind from the function result set. - The property to be set on the entity. - - - - - - - Gets the name of the column to bind from the function result set. - - - - - Gets the property to be set on the entity. - - - - - Represents the Mapping metadata for an AssociationSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the AssociationSetMapping elements in the - above example. And it is possible to access the AssociationTypeMap underneath it. - There will be only one TypeMap under AssociationSetMap. - - - - - Represents the Mapping metadata for an Extent in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for all the extent map elements in the - above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - - - Gets the parent container mapping. - - - - - Gets or sets the query view associated with this mapping. - - - - - Initializes a new AssociationSetMapping instance. - - The association set to be mapped. - The store entity set to be mapped. - The parent container mapping. - - - - Adds a property mapping condition. - - The condition to add. - - - - Removes a property mapping condition. - - The property mapping condition to remove. - - - - Gets the association set that is mapped. - - - - - Gets the contained association type mapping. - - - - - Gets or sets the corresponding function mapping. Can be null. - - - - - Gets the store entity set that is mapped. - - - - - Gets or sets the source end property mapping. - - - - - Gets or sets the target end property mapping. - - - - - Gets the property mapping conditions. - - - - - Represents the Mapping metadata for an association type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all association Type map elements in the - above example. Users can access the table mapping fragments under the - association type mapping through this class. - - - - - Represents the Mapping metadata for a type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all the Type map elements in the - above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. - The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. - - - - - Creates an AssociationTypeMapping instance. - - The AssociationSetMapping that - the contains this AssociationTypeMapping. - - - - Gets the AssociationSetMapping that contains this AssociationTypeMapping. - - - - - Gets the association type being mapped. - - - - - Gets the single mapping fragment. - - - - - Mapping metadata for Complex properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the complex property map elements in the - above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based - on the type of the ComplexProperty in case of inheritance. - - - - - Construct a new Complex Property mapping object - - The MemberMetadata object that represents this Complex member - - - - Adds a type mapping corresponding to a nested complex type. - - The complex type mapping to be added. - - - - Removes a type mapping corresponding to a nested complex type. - - The complex type mapping to be removed. - - - - Gets a read only collections of type mappings corresponding to the - nested complex types. - - - - - Mapping metadata for Complex Types. - - - - - Creates a ComplexTypeMapping instance. - - The ComplexType being mapped. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the ComplexType being mapped. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Mapping metadata for End property of an association. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the end property map elements in the - above example. EndPropertyMaps provide mapping for each end of the association. - - - - - Creates an association end property mapping. - - An AssociationEndMember that specifies - the association end to be mapped. - - - - Adds a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be added. - - - - Removes a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be removed. - - - - Gets an AssociationEndMember that specifies the mapped association end. - - - - - Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children - of this association end property mapping. - - - - - Represents the Mapping metadata for the EntityContainer map in CS space. - Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. - - - For Example if conceptually you could represent the CS MSL file as following - ---Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --AssociationSetMapping - The type represents the metadata for EntityContainerMapping element in the above example. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - We currently assume that an Entity Container on the C side - is mapped to a single Entity Container in the S - space. - - - - - Initializes a new EntityContainerMapping instance. - - The conceptual entity container to be mapped. - The store entity container to be mapped. - The parent mapping item collection. - Flag indicating whether to generate update views. - - - - Adds an entity set mapping. - - The entity set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds an association set mapping. - - The association set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds a function import mapping. - - The function import mapping to add. - - - - Removes a function import mapping. - - The function import mapping to remove. - - - - Gets the parent mapping item collection. - - - - - Gets the type kind for this item - - - - - Gets the conceptual entity container. - - - - - Gets the store entity container. - - - - - Gets the entity set mappings. - - - - - Gets the association set mappings. - - - - - Gets the function import mappings. - - - - - Gets a flag that indicates whether to generate the update views or not. - - - - - Represents the Mapping metadata for an EnitytSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the EntitySetMapping elements in the - above example. And it is possible to access the EntityTypeMaps underneath it. - - - - - Initialiazes a new EntitySetMapping instance. - - The entity set to be mapped. - The parent container mapping. - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Adds a function mapping. - - The function mapping to add. - - - - Removes a function mapping. - - The function mapping to remove. - - - - Gets the entity set that is mapped. - - - - - Gets the contained entity type mappings. - - - - - Gets the corresponding function mappings. - - - - - Mapping metadata for Entity type. - If an EntitySet represents entities of more than one type, than we will have - more than one EntityTypeMapping for an EntitySet( For ex : if - PersonSet Entity extent represents entities of types Person and Customer, - than we will have two EntityType Mappings under mapping for PersonSet). - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all entity Type map elements in the - above example. Users can access the table mapping fragments under the - entity type mapping through this class. - - - - - Creates an EntityTypeMapping instance. - - The EntitySetMapping that contains this EntityTypeMapping. - - - - Adds an entity type to the mapping. - - The EntityType to be added. - - - - Removes an entity type from the mapping. - - The EntityType to be removed. - - - - Adds an entity type hierarchy to the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be added. - - - - Removes an entity type hierarchy from the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be removed. - - - - Adds a mapping fragment. - - The mapping fragment to be added. - - - - Removes a mapping fragment. - - The mapping fragment to be removed. - - - - Gets the EntitySetMapping that contains this EntityTypeMapping. - - - - - Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. - - - - - Gets a flag that indicates whether this is a type hierarchy mapping. - - - - - Gets a read-only collection of mapping fragments. - - - - - Gets the mapped entity types. - - - - - Gets the mapped base types for a hierarchy mapping. - - - - - Represents the metadata for mapping fragment. - A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) - Each MappingFragment provides mapping for those properties of a type that map to a single table. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the mapping fragment elements in the - above example. Users can access all the top level constructs of - MappingFragment element like EntityKey map, Property Maps, Discriminator - property through this mapping fragment class. - - - - - Creates a MappingFragment instance. - - The EntitySet corresponding to the table of view being mapped. - The TypeMapping that contains this MappingFragment. - Flag that indicates whether to include 'DISTINCT' when generating queries. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the EntitySet corresponding to the table or view being mapped. - - - - - Gets the TypeMapping that contains this MappingFragment. - - - - - Gets a flag that indicates whether to include 'DISTINCT' when generating queries. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents a collection of items in Storage Mapping (CS Mapping) space. - - - - Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. - The that this mapping is to use. - The that this mapping is to use. - The file paths that this mapping is to use. - - - Initializes a new instance of the class using the specified , and XML readers. - The that this mapping is to use. - The that this mapping is to use. - The XML readers that this mapping is to use. - - - - Computes a hash value for the container mapping specified by the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A string that specifies the computed hash value. - - - - Computes a hash value for the single container mapping in the collection. - - A string that specifies the computed hash value. - - - - Creates a dictionary of (extent, generated view) for a container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Creates a dictionary of (extent, generated view) for the single container mapping - in the collection. - - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Factory method that creates a . - - - The edm metadata collection to map. Must not be null. - - - The store metadata collection to map. Must not be null. - - - MSL artifacts to load. Must not be null. - - - Paths to MSL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - - Gets or sets a for creating instances - that are used to retrieve pre-generated mapping views. - - - - Gets the version of this represents. - The version of this represents. - - - - Describes modification function binding for change processing of entities or associations. - - - - - Initializes a new ModificationFunctionMapping instance. - - The entity or association set. - The entity or association type. - The metadata of function to which we should bind. - Bindings for function parameters. - The output parameter producing number of rows affected. - Bindings for the results of function evaluation - - - - - - - Gets output parameter producing number of rows affected. May be null. - - - - - Gets Metadata of function to which we should bind. - - - - - Gets bindings for function parameters. - - - - - Gets bindings for the results of function evaluation. - - - - - Mapping metadata for scalar properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the scalar property map elements in the - above example. - - - - - Creates a mapping between a simple property and a column. - - The property to be mapped. - The column to be mapped. - - - - Gets an EdmProperty that specifies the mapped column. - - - - - metadata exception class - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - DataSpace - - - - - OSpace indicates the item in the clr space - - - - - CSpace indicates the item in the CSpace - edm primitive types + - types defined in csdl - - - - - SSpace indicates the item in the SSpace - - - - - Mapping between OSpace and CSpace - - - - - Mapping between CSpace and SSpace - - - - - This class encapsulates the error information for a generic EDM error. - - - - Gets the error message. - The error message. - - - - Class for representing a collection of items in Edm space. - - - - - Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - - Initializes a new instance of the class. - The entity data model. - - - - Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. - - The paths where the conceptual schema definition language (CSDL) files exist. - - - - Returns a collection of the objects. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - - - - Returns a collection of the objects with the specified conceptual model version. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - The conceptual model version. - - - - Factory method that creates an . - - - CSDL artifacts to load. Must not be null. - - - Paths to CSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the conceptual model version for this collection. - The conceptual model version for this collection. - - - - This class encapsulates the error information for a schema error that was encountered. - - - - - Constructs a EdmSchemaError object. - - The explanation of the error. - The code associated with this error. - The severity of the error. - - - Returns the error message. - The error message. - - - Gets the error code. - The error code. - - - Gets the severity level of the error. - - One of the values. The default is - - . - - - - Gets the line number where the error occurred. - The line number where the error occurred. - - - Gets the column where the error occurred. - The column where the error occurred. - - - Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. - The location of the schema that contains the error. - - - Gets the name of the schema that contains the error. - The name of the schema that contains the error. - - - Gets a string representation of the stack trace at the time the error occurred. - A string representation of the stack trace at the time the error occurred. - - - - Defines the different severities of errors that can occur when validating an Entity Framework model. - - - - - A warning that does not prevent the model from being used. - - - - - An error that prevents the model from being used. - - - - - Represents a end of a Association Type - - - - - Initializes a new instance of the RelationshipEndMember class - - - - - Represents the edm member class - - - - Returns the name of this member. - The name of this member. - - - - Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database - column for this property. In the conceptual model, this should align with the corresponding property from the entity class - and should not be changed. - - The name of this member. - - - Gets the type on which this member is declared. - - A object that represents the type on which this member is declared. - - - - - Gets the instance of the class that contains both the type of the member and facets for the type. - - - A object that contains both the type of the member and facets for the type. - - - - - Tells whether this member is marked as a Computed member in the EDM definition - - - - - Tells whether this member's Store generated pattern is marked as Identity in the EDM definition - - - - Access the EntityType of the EndMember in an association. - The EntityType of the EndMember in an association. - - - Gets the operational behavior of this relationship end member. - - One of the values. The default is - - . - - - - Gets the multiplicity of this relationship end member. - - One of the values. - - - - - Creates a read-only AssociationEndMember instance. - - The name of the association end member. - The reference type for the end. - The multiplicity of the end. - Flag that indicates the delete behavior of the end. - Metadata properties to be associated with the instance. - The newly created AssociationEndMember instance. - The specified name is null or empty. - The specified reference type is null. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Class for representing an Association set - - - - - Class for representing a relationship set - - - - - Class for representing a entity set - - - - Returns the name of the current entity or relationship set. - The name of the current entity or relationship set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets escaped provider specific SQL describing this entity set. - - - - - Gets or sets the name of the current entity or relationship set. - If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. - To change the table name of a store space use the Table property. - - The name of the current entity or relationship set. - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - Gets the entity container of the current entity or relationship set. - - An object that represents the entity container of the current entity or relationship set. - - Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database table name for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database schema for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets the relationship type of this . - - - An object that represents the relationship type of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Creates a read-only AssociationSet instance from the specified parameters. - - The name of the association set. - The association type of the elements in the association set. - The entity set for the source association set end. - The entity set for the target association set end. - Metadata properties to be associated with the instance. - The newly created AssociationSet instance. - The specified name is null or empty. - The specified association type is null. - - The entity type of one of the ends of the specified - association type does not match the entity type of the corresponding entity set end. - - - - - Gets the association related to this . - - - An object that represents the association related to this - - . - - - - - Gets the ends of this . - - - A collection of type that contains the ends of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents built-in type kind for this - - . - - - - - Class representing a AssociationSet End - - - - - Returns the name of the End role for this . - - - The name of the End role for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the parent association set of this . - - - An object that represents the parent association set of this - - . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the End member that this object corresponds to. - - - An object that represents the End member that this - - object corresponds to. - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the name of the End for this . - - - The name of the End for this . - - - - - Gets the name of the End role for this . - - - The name of the End role for this . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - Gets the entity set referenced by this End role. - - An object that represents the entity set referred by this End role. - - - - - Describes an association/relationship between two entities in the conceptual model or a foreign key relationship - between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. - If a foreign key is defined the property will be true and the property will contain details of the foreign keys - - - - - Represents the Relationship type - - - - - Represents the Entity Type - - - - - Represents the Structural Type - - - - - Base EdmType class for all the model types - - - - Returns the full name of this type. - The full name of this type. - - - - Returns an instance of the whose element type is this type. - - - The object whose element type is this type. - - - - Gets the name of this type. - The name of this type. - - - Gets the namespace of this type. - The namespace of this type. - - - Gets a value indicating whether this type is abstract or not. - true if this type is abstract; otherwise, false. - Thrown if the setter is called on instance that is in ReadOnly state - - - Gets the base type of this type. - The base type of this type. - Thrown if the setter is called on instance that is in ReadOnly state - Thrown if the value passed in for setter will create a loop in the inheritance chain - - - Gets the full name of this type. - The full name of this type. - - - - Adds a member to this type - - The member to add - - - Removes a member from this type. - The member to remove. - - - Gets the list of members on this type. - - A collection of type that contains a set of members on this type. - - - - - Adds the specified property to the list of keys for the current entity. - - The property to add. - if member argument is null - Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type - If the EntityType instance is in ReadOnly state - - - Removes the specified key member from the collection. - The key member to remove. - - - Gets the list of all the key members for the current entity or relationship type. - - A object that represents the list of key members for the current entity or relationship type. - - - - Gets the list of all the key properties for this entity type. - The list of all the key properties for this entity type. - - - Gets the list of ends for this relationship type. - - A collection of type that contains the list of Ends for this relationship type. - - - - - Creates a read-only AssociationType instance from the specified parameters. - - The name of the association type. - The namespace of the association type. - Flag that indicates a foreign key (FK) relationship. - The data space for the association type. - The source association end member. - The target association end member. - A referential constraint. - Metadata properties to be associated with the instance. - The newly created AssociationType instance. - The specified name is null or empty. - The specified namespace is null or empty. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of ends for this . - - - A collection of type that contains the list of ends for this - - . - - - - Gets or sets the referential constraint. - The referential constraint. - - - - Gets the list of constraints for this . - - - A collection of type that contains the list of constraints for this - - . - - - - Gets the Boolean property value that specifies whether the column is a foreign key. - A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. - - - - Represents the structure of an . In the conceptual-model this represents the shape and structure - of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. - - - - - Returns a object that references this - - . - - - A object that references this - - . - - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - Adds the specified navigation property to the members of this type. - The navigation property is added regardless of the read-only flag. - - The navigation property to be added. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the declared navigation properties associated with the entity type. - The declared navigation properties associated with the entity type. - - - - Gets the navigation properties of this . - - - A collection of type that contains the list of navigation properties on this - - . - - - - Gets the list of declared properties for the entity type. - The declared properties for the entity type. - - - Gets the collection of declared members for the entity type. - The collection of declared members for the entity type. - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Represents an enumeration type. - - - - - Class representing a simple type - - - - - Creates a read-only EnumType instance. - - The name of the enumeration type. - The namespace of the enumeration type. - The underlying type of the enumeration type. - Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. - The members of the enumeration type. - Metadata properties to be associated with the enumeration type. - The newly created EnumType instance. - underlyingType is null. - - name is null or empty. - -or- - namespaceName is null or empty. - -or- - underlyingType is not a supported underlying type. - -or- - The specified members do not have unique names. - -or- - The value of a specified member is not in the range of the underlying type. - - - - Returns the kind of the type - - - Gets a collection of enumeration members for this enumeration type. - - - Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) - - - Gets the underlying type for this enumeration type. - - - - Specifies the kinds of item attributes in the conceptual model. - - - - - An enumeration member indicating that an item attribute is System - - - - - An enumeration member indicating that an item attribute is Extended. - - - - - List of all the built in types - - - - - Association Type Kind - - - - - AssociationSetEnd Kind - - - - - AssociationSet Kind - - - - - Association Type Kind - - - - - EntitySetBase Kind - - - - - Entity Type Base Kind - - - - - Collection Type Kind - - - - - Collection Kind - - - - - Complex Type Kind - - - - - Documentation Kind - - - - - DeleteAction Type Kind - - - - - Edm Type Kind - - - - - Entity Container Kind - - - - - Entity Set Kind - - - - - Entity Type Kind - - - - - Enumeration Type Kind - - - - - Enum Member Kind - - - - - Facet Kind - - - - - EdmFunction Kind - - - - - Function Parameter Kind - - - - - Global Item Type Kind - - - - - Metadata Property Kind - - - - - Navigation Property Kind - - - - - Metadata Item Type Kind - - - - - EdmMember Type Kind - - - - - Parameter Mode Kind - - - - - Primitive Type Kind - - - - - Primitive Type Kind Kind - - - - - EdmProperty Type Kind - - - - - ProviderManifest Type Kind - - - - - Referential Constraint Type Kind - - - - - Ref Type Kind - - - - - RelationshipEnd Type Kind - - - - - Relationship Multiplicity Type Kind - - - - - Relationship Set Type Kind - - - - - Relationship Type - - - - - Row Type Kind - - - - - Simple Type Kind - - - - - Structural Type Kind - - - - - Type Information Kind - - - - - Represents the Edm Collection Type - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - The instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - - - Represents the Edm Complex Type. This can be used to configure complex types - from a conceptual-space model-based convention. Complex types are not supported in the store model. - - - - - Creates a new instance of the type. - - The name of the complex type. - The namespace of the complex type. - The dataspace to which the complex type belongs to. - Members of the complex type. - Metadata properties to be associated with the instance. - Thrown if either name, namespace or members argument is null. - - A new instance a the type. - - - The newly created will be read only. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Class representing the Documentation associated with an item - - - - - Initializes a new Documentation instance. - - A summary string. - A long description string. - - - - Returns the summary for this . - - - The summary for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the summary for this . - - - The summary for this . - - - - - Gets the long description for this . - - - The long description for this . - - - - - Gets a value indicating whether this object contains only a null or an empty - - and a - - . - - - true if this object contains only a null or an empty - - and a - - ; otherwise, false. - - - - - Class for representing a function - - - - - Adds a parameter to this function. - - The parameter to be added. - - - - The factory method for constructing the object. - - The name of the function. - The namespace of the function. - The namespace the function belongs to. - Additional function attributes and properties. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - One of the enumeration values of the enumeration. - - - - Returns the full name (namespace plus name) of this type. - The full name of the type. - - - - Gets the parameters of this . - - - A collection of type that contains the parameters of this - - . - - - - - Gets the return parameter of this . - - - A object that represents the return parameter of this - - . - - - - - Gets the return parameters of this . - - - A collection of type that represents the return parameters of this - - . - - - - Gets the store function name attribute of this function. - - - Gets the parameter type semantics attribute of this function. - - - Gets the aggregate attribute of this function. - - - - Gets a value indicating whether built in attribute is present on this function. - - - true if the attribute is present; otherwise, false. - - - - - Gets a value indicating whether this instance is from the provider manifest. - - - true if this instance is from the provider manifest; otherwise, false. - - - - - Gets a value indicating whether the is a niladic function (a function that accepts no arguments). - - - true if the function is niladic; otherwise, false. - - - - Gets whether this instance is mapped to a function or to a stored procedure. - true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. - - - Gets a query in the language that is used by the database management system or storage model. - - A string value in the syntax used by the database management system or storage model that contains the query or update statement of the - - . - - - - Gets or sets the schema associated with the function. - The schema associated with the function. - - - - In conceptual-space, EdmProperty represents a property on an Entity. - In store-space, EdmProperty represents a column in a table. - - - - Creates a new primitive property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new enum property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new complex property. - The newly created property. - The name of the property. - The type of the property. - - - - Creates a new instance of EdmProperty type. - - Name of the property. - - Property - - A new instance of EdmProperty type - - - Sets the metadata properties. - The metadata properties to be set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a value indicating whether this can have a null value. - - - Nullability in the conceptual model and store model is a simple indication of whether or not - the property is considered nullable. Nullability in the object model is more complex. - When using convention based mapping (as usually happens with POCO entities), a property in the - object model is considered nullable if and only if the underlying CLR type is nullable and - the property is not part of the primary key. - When using attribute based mapping (usually used with entities that derive from the EntityObject - base class), a property is considered nullable if the IsNullable flag is set to true in the - attribute. This flag can - be set to true even if the underlying type is not nullable, and can be set to false even if the - underlying type is nullable. The latter case happens as part of default code generation when - a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. - In such a case, the Entity Framework treats the property as non-nullable even though the CLR would - allow null to be set. - There is no good reason to set a non-nullable CLR type as nullable in the object model and this - should not be done even though the attribute allows it. - - - true if this can have a null value; otherwise, false. - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets the type name of the property. - The type name of the property. - - - - Gets the default value for this . - - - The default value for this . - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets whether the property is a collection type property. - true if the property is a collection type property; otherwise, false. - - - Gets whether this property is a complex type property. - true if this property is a complex type property; otherwise, false. - - - Gets whether this property is a primitive type. - true if this property is a primitive type; otherwise, false. - - - Gets whether this property is an enumeration type property. - true if this property is an enumeration type property; otherwise, false. - - - Gets whether this property is an underlying primitive type. - true if this property is an underlying primitive type; otherwise, false. - - - Gets the complex type information for this property. - The complex type information for this property. - - - Gets the primitive type information for this property. - The primitive type information for this property. - - - Gets the enumeration type information for this property. - The enumeration type information for this property. - - - Gets the underlying primitive type information for this property. - The underlying primitive type information for this property. - - - Gets or sets the concurrency mode for the property. - The concurrency mode for the property. - - - Gets or sets the database generation method for the database column associated with this property - The store generated pattern for the property. - - - Gets or sets the kind of collection for this model. - The kind of collection for this model. - - - Gets whether the maximum length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the maximum length of the property. - The maximum length of the property. - - - Gets or sets whether this property uses the maximum length supported by the provider. - true if this property uses the maximum length supported by the provider; otherwise, false. - - - Gets whether the fixed length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether the length of this property is fixed. - true if the length of this property is fixed; otherwise, false. - - - Gets whether the Unicode facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether this property is a Unicode property. - true if this property is a Unicode property; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the precision of this property. - The precision of this property. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the scale of this property. - The scale of this property. - - - - Class for representing an entity container - - - - - Returns an object by using the specified name for the entity set. - - - An object that represents the entity set that has the specified name. - - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified name for the entity set. - - true if there is an entity set that matches the search criteria; otherwise, false. - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains an object. If there is no entity set, this output parameter contains null. - - - - - Returns a object by using the specified name for the relationship set. - - - An object that represents the relationship set that has the specified name. - - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns a object by using the specified name for the relationship set. - - true if there is a relationship set that matches the search criteria; otherwise, false. - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains a object. - - - - - Returns the name of this . - - - The name of this . - - - - Removes a specific entity set from the container. - The entity set to remove. - - - - Adds a function import to the container. - - The function import to add. - - - - The factory method for constructing the EntityContainer object. - - The name of the entity container to be created. - DataSpace in which this entity container belongs to. - Entity sets that will be included in the new container. Can be null. - Functions that will be included in the new container. Can be null. - Metadata properties to be associated with the instance. - The EntityContainer object. - Thrown if the name argument is null or empty string. - The newly created EntityContainer will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets a list of entity sets and association sets that this - - includes. - - - A object that contains a list of entity sets and association sets that this - - includes. - - - - Gets the association sets for this entity container. - The association sets for this entity container . - - - Gets the entity sets for this entity container. - The entity sets for this entity container . - - - - Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. - - - A that contains - - elements. - - - - - Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can - query and persist entities. In the store-model it represents a table. - From a store-space model-convention it can be used to configure - table name with property and table schema with property. - - - - - The factory method for constructing the EntitySet object. - - The name of the EntitySet. - The db schema. Can be null. - The db table. Can be null. - - The provider specific query that should be used to retrieve data for this EntitySet. Can be null. - - The entity type of the entities that this entity set type contains. - - Metadata properties that will be added to the newly created EntitySet. Can be null. - - The EntitySet object. - Thrown if the name argument is null or empty string. - The newly created EntitySet will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - - - - Represents an enumeration member. - - - - Overriding System.Object.ToString to provide better String representation for this type. - The name of this enumeration member. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - Gets the kind of this type. - - - Gets the name of this enumeration member. - - - Gets the value of this enumeration member. - - - - Class for representing a Facet object - This object is Immutable (not just set to readonly) and - some parts of the system are depending on that behavior - - - - - Returns the name of this . - - - The name of this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the description of this . - - - The object that represents the description of this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the type of this . - - - The object that represents the type of this - - . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the Facet instance is in ReadOnly state - - - Gets a value indicating whether the value of the facet is unbounded. - true if the value of the facet is unbounded; otherwise, false. - - - - Class for representing a FacetDescription object - - - - Returns the name of this facet. - The name of this facet. - - - Gets the name of this facet. - The name of this facet. - - - Gets the type of this facet. - - An object that represents the type of this facet. - - - - Gets the minimum value for this facet. - The minimum value for this facet. - - - Gets the maximum value for this facet. - The maximum value for this facet. - - - Gets the default value of a facet with this facet description. - The default value of a facet with this facet description. - - - Gets a value indicating whether the value of this facet is a constant. - true if this facet is a constant; otherwise, false. - - - Gets a value indicating whether this facet is a required facet. - true if this facet is a required facet; otherwise, false. - - - - Class representing a function parameter - - - - - Returns the name of this . - - - The name of this . - - - - - The factory method for constructing the object. - - The name of the parameter. - The EdmType of the parameter. - - The of the parameter. - - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the mode of this . - - - One of the values. - - Thrown if the FunctionParameter instance is in ReadOnly state - - - - Gets the name of this . - - - The name of this . - - - - - Gets the instance of the class that contains both the type of the parameter and facets for the type. - - - A object that contains both the type of the parameter and facets for the type. - - - - Gets the type name of this parameter. - The type name of this parameter. - - - Gets whether the max length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the maximum length of the parameter. - The maximum length of the parameter. - - - Gets whether the parameter uses the maximum length supported by the database provider. - true if parameter uses the maximum length supported by the database provider; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the precision value of the parameter. - The precision value of the parameter. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the scale value of the parameter. - The scale value of the parameter. - - - - Gets the on which this parameter is declared. - - - A object that represents the function on which this parameter is declared. - - - - - Class representing a metadata attribute for an item - - - - - The factory method for constructing the MetadataProperty object. - - The name of the metadata property. - The type usage of the metadata property. - The value of the metadata property. - The MetadataProperty object. - - Thrown is null. - - The newly created MetadataProperty will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the instance of the class that contains both the type of this - - and facets for the type. - - - A object that contains both the type of this - - and facets for the type. - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the value of this . - - - The value of this . - - - - - Gets a boolean that indicates whether the metadata property is an annotation. - - - - - Represent the edm navigation property class - - - - - Where the given navigation property is on the dependent end of a referential constraint, - returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order - of the principal end key properties. - - A collection of the foreign key properties. - - - - Creates a NavigationProperty instance from the specified parameters. - - The name of the navigation property. - Specifies the navigation property type and its facets. - The relationship type for the navigation. - The source end member in the navigation. - The target end member in the navigation. - The metadata properties of the navigation property. - The newly created NavigationProperty instance. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the relationship type that this navigation property operates on. - The relationship type that this navigation property operates on. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "to" relationship end member of this navigation. - The "to" relationship end member of this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "from" relationship end member in this navigation. - The "from" relationship end member in this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - - Represents the list of possible actions for delete operation - - - - - no action - - - - - Cascade to other ends - - - - - The enumeration defining the mode of a parameter - - - - - In parameter - - - - - Out parameter - - - - - Both in and out parameter - - - - - Return Parameter - - - - - Class representing a primitive type - - - - - Returns the equivalent of this - - . - - - For example if this instance is nvarchar and it's - base type is Edm String then the return type is Edm String. - If the type is actually already a model type then the - return type is "this". - - - An object that is an equivalent of this - - . - - - - Returns the list of primitive types. - - A collection of type that contains the list of primitive types. - - - - - Returns the equivalent of a - - . - - - An object that is an equivalent of a specified - - . - - - A value of type . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a enumeration value that indicates a primitive type of this - - . - - - A enumeration value that indicates a primitive type of this - - . - - - - - Gets the list of facet descriptions for this . - - - A collection of type that contains the list of facet descriptions for this - - . - - - - - Returns an equivalent common language runtime (CLR) type of this - - . Note that the - - property always returns a non-nullable type value. - - - A object that represents an equivalent common language runtime (CLR) type of this - - . - - - - - Primitive Types as defined by EDM - - - - - Binary Type Kind - - - - - Boolean Type Kind - - - - - Byte Type Kind - - - - - DateTime Type Kind - - - - - Decimal Type Kind - - - - - Double Type Kind - - - - - Guid Type Kind - - - - - Single Type Kind - - - - - SByte Type Kind - - - - - Int16 Type Kind - - - - - Int32 Type Kind - - - - - Int64 Type Kind - - - - - String Type Kind - - - - - Time Type Kind - - - - - DateTimeOffset Type Kind - - - - - Geometry Type Kind - - - - - Geography Type Kind - - - - - Geometric point type kind - - - - - Geometric linestring type kind - - - - - Geometric polygon type kind - - - - - Geometric multi-point type kind - - - - - Geometric multi-linestring type kind - - - - - Geometric multi-polygon type kind - - - - - Geometric collection type kind - - - - - Geographic point type kind - - - - - Geographic linestring type kind - - - - - Geographic polygon type kind - - - - - Geographic multi-point type kind - - - - - Geographic multi-linestring type kind - - - - - Geographic multi-polygon type kind - - - - - Geographic collection type kind - - - - - This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. - - - - - Constructs a new constraint on the relationship - - role from which the relationship originates - role to which the relationship is linked/targeted to - properties on entity type of to role which take part in the constraint - properties on entity type of from role which take part in the constraint - Argument Null exception if any of the arguments is null - - - - Returns the combination of the names of the - - and the - - . - - - The combination of the names of the - - and the - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the "from role" that takes part in this - - . - - - A object that represents the "from role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the "to role" that takes part in this . - - - A object that represents the "to role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the list of properties for the "from role" on which this - - is defined. - - - A collection of type that contains the list of properties for "from role" on which this - - is defined. - - - - - Gets the list of properties for the "to role" on which this - - is defined. - - - A collection of type that contains the list of properties for the "to role" on which this - - is defined. - - - - - Class representing a ref type - - - - - - - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type referenced by this . - - - An object that represents the entity type referenced by this - - . - - - - - Represents the multiplicity information about the end of a relationship type - - - - - Lower Bound is Zero and Upper Bound is One - - - - - Both lower bound and upper bound is one - - - - - Lower bound is zero and upper bound is null - - - - - Represents the Edm Row Type - - - - - The factory method for constructing the object. - - Properties of the row type object. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the object. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties on this . - - - A collection of type that contains the list of properties on this - - . - - - - Gets a collection of the properties defined by the current type. - A collection of the properties defined by the current type. - - - - Class representing a type information for an item - - - - - Factory method for creating a TypeUsage with specified EdmType and facets - - EdmType for which to create a type usage - facets to be copied into the new TypeUsage - new TypeUsage instance - - - - Creates a object with the specified conceptual model type. - - - A object with the default facet values for the specified - - . - - - A for which the - - object is created. - - - - - Creates a object to describe a string type by using the specified facet values. - - - A object describing a string type by using the specified facet values. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false. - - - - Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. - - - A object describing a string type by using the specified facet values and unbounded MaxLength. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - The maximum length of the binary type. - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - The simple type that defines the units of measurement of the offset. - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object to describe a decimal type by using the specified facet values. - - - A object describing a decimal type by using the specified facet values. - - - A for which the - - object is created. - - - The precision of the decimal type as type . - - - The scale of the decimal type as type . - - - - - Creates a object to describe a decimal type with unbounded precision and scale facet values. - - - A object describing a decimal type with unbounded precision and scale facet values. - - - A for which the - - object is created. - - - - - Checks whether this is a subtype of the specified - - . - - - true if this is a subtype of the specified - - ; otherwise, false. - - - The object to be checked. - - - - - Returns the full name of the type described by this . - - - The full name of the type described by this as string. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the type information described by this . - - - An object that represents the type information described by this - - . - - - - - Gets the list of facets for the type that is described by this - - . - - - A collection of type that contains the list of facets for the type that is described by this - - . - - - - - Returns a Model type usage for a provider type - - Model (CSpace) type usage - - - - Do not perform any extension check - - - - - Check the extension against a specific value - - - - - Check the extension against the set of acceptable extensions - - - - - Runtime Metadata Workspace - - - - - Initializes a new instance of the class. - - - - - Constructs a with loaders for all item collections () - needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space - loaders. The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - Delegate to return the o-space item collection. - - - - Constructs a with loaders for all item collections () - that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. - The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - - - - Initializes a new instance of the class using the specified paths and assemblies. - - The paths to workspace metadata. - The names of assemblies used to construct workspace. - - - - Creates an configured to use the - - data space. - - The created parser object. - - - - Creates a new bound to this metadata workspace based on the specified query expression. - - - A new with the specified expression as it's - - property. - - - A that defines the query. - - - If - - is null - - - If - - contains metadata that cannot be resolved in this metadata workspace - - - If - - is not structurally valid because it contains unresolvable variable references - - - - - Gets items. - - - The items. - - - The from which to retrieve items. - - - - Registers the item collection with each associated data model. - The output parameter collection that needs to be filled up. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The delegate for logging the load messages. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - The conceptual model in which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - true to perform the case-insensitive search; otherwise, false. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns the list of primitive types in the specified data model. - - A collection of type that contains all the primitive types in the specified data model. - - The data model for which you need the list of primitive types. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Tests the retrieval of . - - true if the retrieval was successful; otherwise, false. - - The from which to attempt retrieval of - - . - - When this method returns, contains the item collection. This parameter is passed uninitialized. - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true on success, false on failure. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - Clears all the metadata cache entries. - - - Gets original value members from an entity set and entity type. - The original value members from an entity set and entity type. - The entity set from which to retrieve original values. - The entity type of which to retrieve original values. - - - - Returns members of a given / - - for which original values are needed when modifying an entity. - - - The s for which original value is required. - - - An belonging to the C-Space. - - - An that participates in the given - - . - - true if entities may be updated partially; otherwise, false. - - - - The Max EDM version thats going to be supported by the runtime. - - - - - Class for representing a collection of items for the object layer. - Most of the implementation for actual maintenance of the collection is - done by ItemCollection - - - - - Initializes a new instance of the class. - - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - The delegate to which log messages are sent. - - - Loads metadata from the specified assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - - - Returns a collection of primitive type objects. - A collection of primitive type objects. - - - - Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. - - The CLR type of the OSpace argument. - - A that represents the object space type. - - - - - Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. - - true if there is a type that matches the search criteria; otherwise, false. - - A that represents the object space type. - - The CLR type. - - - The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. - The CLR type of the OSpace argument. - The OSpace type to look up. - - - Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. - true on success, false on failure - The OSpace enum type to look up - The CLR enum type of the OSpace argument - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all items of the specified type. - - The type returned by the method. - - - - The enumeration defining the type semantics used to resolve function overloads. - These flags are defined in the provider manifest per function definition. - - - - - Allow Implicit Conversion between given and formal argument types (default). - - - - - Allow Type Promotion between given and formal argument types. - - - - - Use strict Equivalence only. - - - - - Class for representing a collection of items in Store space. - - - - - Initializes a new instance of the class using the specified XMLReader. - - The XMLReader used to create metadata. - - - Initializes a new instances of the class. - The model of the . - - - - Initializes a new instance of the class using the specified file paths. - - The file paths used to create metadata. - - - - Returns a collection of the objects. - - - A object that represents the collection of the - - objects. - - - - - Factory method that creates a . - - - SSDL artifacts to load. Must not be null. - - - Paths to SSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - Custom resolver. Currently used to resolve DbProviderServices implementation. If null - the default resolver will be used. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the provider factory of the StoreItemCollection. - The provider factory of the StoreItemCollection. - - - Gets the provider manifest of the StoreItemCollection. - The provider manifest of the StoreItemCollection. - - - Gets the manifest token of the StoreItemCollection. - The manifest token of the StoreItemCollection. - - - Gets the invariant name of the StoreItemCollection. - The invariant name of the StoreItemCollection. - - - Gets the version of the store schema for this collection. - The version of the store schema for this collection. - - - - This exception is thrown when a requested object is not found in the store. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of class that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Caches an ELinq query - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - - The values currently assigned to the properties of an entity. - - - - - Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. - - - - Retrieves the field value as a Boolean. - The field value as a Boolean. - The ordinal of the field. - - - Retrieves the field value as a byte. - The field value as a byte. - The ordinal of the field. - - - Retrieves the field value as a byte array. - The number of bytes copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of bytes to copy. - - - Retrieves the field value as a char. - The field value as a char. - The ordinal of the field. - - - Retrieves the field value as a char array. - The number of characters copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of characters to copy. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as a - - - The field value as a . - - The ordinal of the field. - - - Retrieves the name of the field data type. - The name of the field data type. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Retrieves the field value as a decimal. - The field value as a decimal. - The ordinal of the field. - - - Retrieves the field value as a double. - The field value as a double. - The ordinal of the field. - - - Retrieves the type of a field. - The field type. - The ordinal of the field. - - - Retrieves the field value as a float. - The field value as a float. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - Retrieves the name of a field. - The name of the field. - The ordinal of the field. - - - Retrieves the ordinal of a field by using the name of the field. - The ordinal of the field. - The name of the field. - - - Retrieves the field value as a string. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Populates an array of objects with the field values of the current record. - The number of field values returned. - An array of objects to store the field values. - - - - Returns whether the specified field is set to . - - - true if the field is set to ; otherwise false. - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets field values in a record. - The number of the fields that were set. - The values of the field. - - - - Sets a field to the value. - - The ordinal of the field. - - - - Retrieves a field value as a . - - - A field value as a . - - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Gets the number of fields in the record. - An integer value that is the field count. - - - Returns a value that has the given field ordinal. - The value that has the given field ordinal. - The ordinal of the field. - - - Gets a value that has the given field name. - The field value. - The name of the field. - - - Gets data record information. - - A object. - - - - - This is the interface that represent the minimum interface required - to be an entity in ADO.NET. - - - - - This class contains the common methods need for an date object. - - - - - Public constant name used for change tracking - Providing this definition allows users to use this constant instead of - hard-coding the string. This helps to ensure the property name is correct - and allows faster comparisons in places where we are looking for this specific string. - Users can still use the case-sensitive string directly instead of the constant, - it will just be slightly slower on comparison. - Including the dash (-) character around the name ensures that this will not conflict with - a real data property, because -EntityKey- is not a valid identifier name - - - - - Raises the event. - - The name of the changed property. - - - - Raises the event. - - The name of the property changing. - - - Returns the minimum date time value supported by the data source. - - A value that is the minimum date time that is supported by the data source. - - - - Raises an event that is used to report that a property change is pending. - The name of the changing property. - - - Raises an event that is used to report that a property change has occurred. - The name for the changed property. - - - Returns a complex type for the specified property. - - Unlike most of the other helper methods in this class, this one is not static - because it references the SetValidValue for complex objects, which is also not static - because it needs a reference to this. - - A complex type object for the property. - A complex object that inherits from complex object. - The name of the complex property that is the complex object. - Indicates whether the type supports null values. - Indicates whether the type is initialized. - The type of the complex object being requested. - - - Determines whether the specified byte arrays contain identical values. - true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. - The first byte array value to compare. - The second byte array to compare. - - - Returns a copy of the current byte value. - - A copy of the current value. - - The current byte array value. - - - - Makes sure the value being set for a property is valid. - - - The value being validated. - - The value passed into the property setter. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - If value is null for a non nullable value. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - The value being set. - Indicates whether the property is nullable. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - A that is set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value that is set. - - The value that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - The name of the property that is being validated. - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - Name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - The name of the property that is being validated. - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - The name of the property that is being validated. - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - - - Validates that the property is not null, and throws if it is. - The validated property. - The string value to be checked. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The string value is null for a non-nullable string. - - - Validates that the property is not null, and throws if it is. - - The validated value. - - The string value to be checked. - Flag indicating if this property is allowed to be null. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - Name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Sets a complex object for the specified property. - A complex type that derives from complex object. - The original complex object for the property, if any. - The complex object is being set. - The complex property that is being set to the complex object. - The type of the object being replaced. - - - Verifies that a complex object is not null. - The complex object being validated. - The complex object that is being validated. - The complex property on the parent object that is associated with complexObject . - The type of the complex object being verified. - - - - Notification that a property has been changed. - - - The PropertyChanged event can indicate all properties on the - object have changed by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangedEventArgs. - - - - - Notification that a property is about to be changed. - - - The PropertyChanging event can indicate all properties on the - object are changing by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangingEventArgs. - - - - Notifies the change tracker that a property change is pending on a complex object. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property of a complex object has changed. - The name of the changed property. - property is null. - - - - Attribute for complex properties - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Base attribute for properties mapped to store elements. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - attribute for complex types - - - - - Base attribute for schematized types - - - - The name of the type in the conceptual schema that maps to the class to which this attribute is applied. - - A that is the name. - - - - The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. - - A that is the namespace name. - - - - - Attribute identifying the Edm base class - - - - - Attribute indicating an enum type. - - - - - Attribute identifying the Ends defined for a RelationshipSet - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Initializes a new instance of the - - class. - - The namespace name of the relationship property. - The name of the relationship. The relationship name is not namespace qualified. - The role name at the other end of the relationship. - - - The namespace name of the navigation property. - - A that is the namespace name. - - - - Gets the unqualified relationship name. - The relationship name. - - - Gets the role name at the other end of the relationship. - The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). - - - - Defines a relationship between two entity types based on an association in the conceptual model. - - - - - Creates an instance of the class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - - - - Initializes a new instance of the - - class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - A value that indicates whether the relationship is based on the foreign key value. - - - The namespace for the relationship. - - A that is the namespace for the relationship. - - - - Name of the relationship. - - A that is the name of a relationship that is defined by this - - . - - - - Name of the role at one end of the relationship. - - A that is the name of the role. - - - - Multiplicity at one end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at one end of the relationship. - - A that is the type of the object at this end of the association. - - - - Name of the role at the other end of the relationship. - - A that is the name of the role. - - - - Multiplicity at the other end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at the other end of the relationship. - - A that is the type of the object t the other end of the association. - - - - Gets a Boolean value that indicates whether the relationship is based on the foreign key value. - true if the relationship is based on the foreign key value; otherwise false. - - - - Attribute for scalar properties in an IEntity. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - Gets or sets the value that indicates whether the property can have a null value. - The value that indicates whether the property can have a null value. - - - Gets or sets the value that indicates whether the property is part of the entity key. - The value that indicates whether the property is part of the entity key. - - - - Attribute for static types - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a unique value for each model referenced by the assembly. - - - Setting this parameter to a unique value for each model file in a Visual Basic - assembly will prevent the following error: - "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." - - A string that is a unique GUID value for the model in the assembly. - - - - Collection of entities modeling a particular EDM construct - which can either be all entities of a particular type or - entities participating in a particular relationship. - - The type of entities in this collection. - - - - Base class for EntityCollection and EntityReference - - - - - Represents one end of a relationship. - - - - Loads the related object or objects into this related end with the default merge option. - - - Loads the related object or objects into the related end with the specified merge option. - - The to use when merging objects into an existing - . - - - - Adds an object to the related end. - - An object to add to the collection. entity must implement - - . - - - - Adds an object to the related end. - An object to add to the collection. - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed, false if entity was not part of the - - . - - - The object to remove from the collection. entity must implement - - . - - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed; false if entity was not part of the - - . - - An object to remove from the collection. - - - Defines a relationship between two attached objects. - - The object being attached. entity must implement - - . - - - - Defines a relationship between two attached objects. - The object being attached. - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Gets or sets a value indicating whether the entity (for an or all entities - in the collection (for an have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded - and wants to prevent any other entities from being loaded automatically. - Note that explicit loading using will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities - are now loaded. - - - True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. - - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this is participating. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - The role name at the source end of the relationship. - - - Gets the role name at the target end of the relationship. - The role name at the target end of the relationship. - - - Returns a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Loads the related object or objects into the related end with the default merge option. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Loads an object or objects from the related end with the specified merge option. - - - The to use when merging objects into an existing - . - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Attaches an entity to the related end. This method works in exactly the same way as Attach(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Attaches an entity to the related end. If the related end is already filled - or partially filled, this merges the existing entities with the given entity. The given - entity is not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. - Deleted elements are allowed only when the state manager is already tracking the relationship - instance. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Adds an entity to the related end. This method works in exactly the same way as Add(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to add to the related end - - - - Adds an entity to the related end. If the owner is - attached to a cache then the all the connected ends are - added to the object cache and their corresponding relationships - are also added to the ObjectStateManager. The RelatedEnd of the - relationship is also fixed. - - Entity instance to add to the related end - - - - Removes an entity from the related end. This method works in exactly the same way as Remove(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Removes an entity from the related end. If owner is - attached to a cache, marks relationship for deletion and if - the relationship is composition also marks the entity for deletion. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - Occurs when a change is made to a related end. - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this participates. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - - A that is the role name. - - - - Gets the role name at the target end of the relationship. - - A that is the role name. - - - - Gets a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - - - - Initializes a new instance of the class. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Loads related objects into the collection, using the specified merge option. - - Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same - - . - - - - Defines relationships between an object and a collection of related objects in an object context. - - Loads related entities into the local collection. If the collection is already filled - or partially filled, merges existing entities with the given entities. The given - entities are not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. We allow - deleted elements only when the state manager is already tracking the relationship - instance. - - Collection of objects in the object context that are related to the source object. - entities collection is null. - - The source object or an object in the entities collection is null or is not in an - - or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - - Defines a relationship between two attached objects in an object context. - The object being attached. - When the entity is null. - - When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an - - or state. - - - - Adds an object to the collection. - - An object to add to the collection. entity must implement - - . - - entity is null. - - - Removes an object from the collection and marks the relationship for deletion. - true if item was successfully removed; otherwise, false. - The object to remove from the collection. - entity object is null. - The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. - - - Returns an enumerator that is used to iterate through the objects in the collection. - - An that iterates through the set of values cached by - - . - - - - - Returns an enumerator that is used to iterate through the set of values cached by - - . - - - An that iterates through the set of values cached by - - . - - - - Removes all entities from the collection. - - - Determines whether a specific object exists in the collection. - - true if the object is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies all the contents of the collection to an array, starting at the specified index of the target array. - The array to copy to. - The zero-based index in the array at which copying begins. - - - Used internally to serialize entity objects. - The streaming context. - - - Used internally to deserialize entity objects. - The streaming context. - - - Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. - - An that represents the entity collection. - - - When the object is in an state - or when the object is in a - state with a - other than - . - - - - Gets the number of objects that are contained in the collection. - - The number of elements that are contained in the - - . - - - - - Gets a value that indicates whether the - - is read-only. - - Always returns false. - - - - IListSource.ContainsListCollection implementation. Always returns false. - This means that the IList we return is the one which contains our actual data, - it is not a list of collections. - - - - - This is the class is the basis for all perscribed EntityObject classes. - - - - - Interface that defines an entity containing a key. - - - - - Gets or sets the for instances of entity types that implement this interface. - - - If an object is being managed by a change tracker, it is expected that - IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be - used to report changes on EntityKey. This allows the change tracker to validate the - EntityKey's new value and to verify if the change tracker is in a state where it can - allow updates to the EntityKey. - - - The for instances of entity types that implement this interface. - - - - - Minimum interface that a data class must implement in order to be managed by a change tracker. - - - - - Gets or sets the used to report changes. - - - The used to report changes. - - - - - Interface that a data class must implement if exposes relationships - - - - Returns the relationship manager that manages relationships for an instance of an entity type. - - Classes that expose relationships must implement this property - by constructing and setting RelationshipManager in their constructor. - The implementation of this property should use the static method RelationshipManager.Create - to create a new RelationshipManager when needed. Once created, it is expected that this - object will be stored on the entity and will be provided through this property. - - - The for this entity. - - - - - Used by the ObjectStateManager to attach or detach this EntityObject to the cache. - - Reference to the ObjectStateEntry that contains this entity - - - Notifies the change tracker that a property change is pending. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property has changed. - The name of the changed property. - property is null. - - - Gets the entity state of the object. - - The of this object. - - - - Gets or sets the key for this object. - - The for this object. - - - - - Returns the container for the lazily created relationship - navigation property objects, collections and refs. - - - - - This interface is implemented by a change tracker and is used by data classes to report changes - - - - Notifies the change tracker of a pending change to a property of an entity type. - The name of the property that is changing. - - - Notifies the change tracker that a property of an entity type has changed. - The name of the property that has changed. - - - Notifies the change tracker of a pending change to a complex property. - The name of the top-level entity property that is changing. - The complex type that contains the property that is changing. - The name of the property that is changing on complex type. - - - Notifies the change tracker that a property of a complex type has changed. - The name of the complex property of the entity type that has changed. - The complex type that contains the property that changed. - The name of the property that changed on complex type. - - - Gets current state of a tracked object. - - An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. - - - - - Models a relationship end with multiplicity 1. - - - - Returns the key for the related object. - - Returns the EntityKey of the target entity associated with this EntityReference. - Is non-null in the following scenarios: - (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the - same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting - the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. - (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation - occurs that would set it to null, as described below. - (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. - (d) Entity graph was created using a NoTracking query with full span - Is null in the following scenarios: - (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the - same RelationshipName and source role. - (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key - is one of the special keys - (c) Entities are detached and the relationship was explicitly created by the user. - - - An that is the key of the related object. - - - - - Models a relationship end with multiplicity 1. - - The type of the entity being referenced. - - - - Creates a new instance of . - - - The default constructor is required for some serialization scenarios. It should not be used to - create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager - class instead. - - - - - Loads the related object for this with the specified merge option. - - - Specifies how the object should be returned if it already exists in the - - . - - - The source of the is null - or a query returned more than one related end - or a query returned zero related ends, and one related end was expected. - - - - Creates a many-to-one or one-to-one relationship between two objects in the object context. - The object being attached. - When the entity is null. - When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - Creates an equivalent object query that returns the related object. - - An that returns the related object. - - - When the object is in an state - or when the object is in a - state with a - other than . - - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - - Gets or sets the related object returned by this - - . - - - The object returned by this . - - - - - Identifies the kind of a relationship - - - - - The relationship is an Association - - - - - Container for the lazily created relationship navigation - property objects (collections and refs). - - - - - Creates a new object. - - - Used by data classes that support relationships. If the change tracker - requests the RelationshipManager property and the data class does not - already have a reference to one of these objects, it calls this method - to create one, then saves a reference to that object. On subsequent accesses - to that property, the data class should return the saved reference. - The reason for using a factory method instead of a public constructor is to - emphasize that this is not something you would normally call outside of a data class. - By requiring that these objects are created via this method, developers should - give more thought to the operation, and will generally only use it when - they explicitly need to get an object of this type. It helps define the intended usage. - - - The requested . - - Reference to the entity that is calling this method. - - - - Returns either an or - - of the correct type for the specified target role in a relationship. - - - representing the - - or - - that was retrieved. - - Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. - Target role to use to retrieve the other end of relationshipName . - relationshipName or targetRoleName is null. - The source type does not match the type of the owner. - targetRoleName is invalid or unable to find the relationship type in the metadata. - - - - Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, - if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W - - The relationship name. - The role name of the related end. - - The to initialize. - - - The type of the being initialized. - - - When the provided - is already initialized.-or-When the relationship manager is already attached to an - - or when the relationship manager already contains a relationship with this name and target role. - - - - - Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, - or if the relationship manager is already attached to a ObjectContext. - - The relationship name. - The target role name. - An existing EntityCollection. - Type of the entity represented by targetRoleName - - - - Gets an of related objects with the specified relationship name and target role name. - - - The of related objects. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - - Gets the for a related object by using the specified combination of relationship name and target role name. - - - The of a related object. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - Returns an enumeration of all the related ends managed by the relationship manager. - - An of objects that implement - - . An empty enumeration is returned when the relationships have not yet been populated. - - - - - Called by Object Services to prepare an for binary serialization with a serialized relationship. - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - - Represents either a entity, entity stub or relationship - - - - - Gets the updatable version of original values of the object associated with this - - . - - The updatable original values of object data. - - - Accepts the current values as original values. - - - Marks an entity as deleted. - - - - Returns the names of an object’s properties that have changed since the last time - - was called. - - - An collection of names as string. - - - - Sets the state of the object or relationship to modify. - If State is not Modified or Unchanged - - - Marks the specified property as modified. - The name of the property. - If State is not Modified or Unchanged - - - Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. - The name of the property to change. - - - Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. - - Note that this property always returns the same result as the modified state of the property for change tracking - proxies and entities that derive from the EntityObject base class. This is because original values are not tracked - for these entity types and hence there is no way to know if the current value is really different from the - original value. - - true if the property has changed; otherwise, false. - The name of the property. - - - - Changes state of the entry to the specified value. - - - The value to set for the - - property of the entry. - - - - Sets the current values of the entry to match the property values of a supplied object. - The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. - - - Sets the original values of the entry to match the property values of a supplied object. - The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. - - - - Used to report that a scalar entity property is about to change - The current value of the specified property is cached when this method is called. - - The name of the entity property that is changing - - - - Used to report that a scalar entity property has been changed - The property value that was cached during EntityMemberChanging is now - added to OriginalValues - - The name of the entity property that has changing - - - - Used to report that a complex property is about to change - The current value of the specified property is cached when this method is called. - - The name of the top-level entity property that is changing - The complex object that contains the property that is changing - The name of the property that is changing on complexObject - - - - Used to report that a complex property has been changed - The property value that was cached during EntityMemberChanging is now added to OriginalValues - - The name of the top-level entity property that has changed - The complex object that contains the property that changed - The name of the property that changed on complexObject - - - - Gets the for the - - . - - - The for the - - . - - - - - Gets the for the object or relationship. - - - The for the object or relationship. - - - - - Gets the state of the . - - - The state of the . - - - - Gets the entity object. - The entity object. - - - Gets the entity key. - The entity key. - - - - Gets a value that indicates whether the represents a relationship. - - - true if the represents a relationship; otherwise, false. - - - - Gets the read-only version of original values of the object or relationship. - The read-only version of original values of the relationship set entry or entity. - - - - Gets the current property values of the object or relationship associated with this - - . - - - A that contains the current values of the object or relationship associated with this - - . - - - - - Gets the instance for the object represented by entry. - - - The object. - - The entry is a stub or represents a relationship - - - - Returns the EntityState from the ObjectStateEntry - - - - - Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. - - Type of entities returned from the queryable. - - - Notifies the set that an object that represents a new entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The new object to add to the set. - - - Notifies the set that an object that represents an existing entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to add to the set. - - - Notifies the set that an object that represents an existing entity must be deleted from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to delete from the set. - - - Notifies the set that an object that represents an existing entity must be detached from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The object to detach from the set. - - - - The different ways that new objects loaded from the database can be merged with existing objects already in memory. - - - - - Will only append new (top level-unique) rows. This is the default behavior. - - - - - Same behavior as LoadOption.OverwriteChanges. - - - - - Same behavior as LoadOption.PreserveChanges. - - - - - Will not modify cache. - - - - - ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, - serving as a gateway for Create, Read, Update, and Delete operations. - - - - - Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the - - object. - - - An that contains references to the model and to the data source connection. - - The connection is null. - The connection is invalid or the metadata workspace is invalid. - - - - Creates an ObjectContext with the given connection and metadata workspace. - - connection to the store - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - Initializes a new instance of the class with the given connection string and default entity container name. - - The connection string, which also provides access to the metadata information. - The connectionString is null. - The connectionString is invalid or the metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection string and entity container name. - - The connection string, which also provides access to the metadata information. - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connectionString is null. - The connectionString , defaultContainerName , or metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection and entity container name. - - - An that contains references to the model and to the data source connection. - - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connection is null. - The connection , defaultContainerName , or metadata workspace is not valid. - - - Accepts all changes made to objects in the object context. - - - Adds an object to the object context. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to add. - - The entity parameter is null or the entitySetName does not qualify. - - - Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The value to use when you load the related objects. - - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - - The value to use when you load the related objects. - - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Applies property changes from a detached object to an object already attached to the object context. - The name of the entity set to which the object belongs. - The detached object that has property updates to apply to the original object. - When entitySetName is null or an empty string or when changed is null. - - When the from entitySetName does not match the - - of the object - - or when the entity is in a state other than - - or - - or the original object is not attached to the context. - - When the type of the changed object is not the same type as the original object. - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - The entity type of the object. - entitySetName or current is null. - - The from entitySetName does not match the - - of the object - - or the object is not in the - - or it is in a - - state or the entity key of the supplied object is invalid. - - entitySetName is an empty string. - - - - Copies the scalar values from the supplied object into set of original values for the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has original values to apply to the object. The entity key of originalEntity must match the - - property of an entry in the - - . - - The type of the entity object. - entitySetName or original is null. - - The from entitySetName does not match the - - of the object - - or an - - for the object cannot be found in the - - or the object is in an - - or a - - state or the entity key of the supplied object is invalid or has property changes. - - entitySetName is an empty string. - - - Attaches an object or object graph to the object context in a specific entity set. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to attach. - - The entity is null. - - Invalid entity set or the object has a temporary key or the object has an - - and the - - does not match with the entity set passed in as an argument of the method or the object does not have an - - and no entity set is provided or any object from the object graph has a temporary - - or any object from the object graph has an invalid - - (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. - - - - Attaches an object or object graph to the object context when the object has an entity key. - The object to attach. - The entity is null. - Invalid entity key. - - - Creates the entity key for a specific object, or returns the entity key if it already exists. - - The of the object. - - The fully qualified name of the entity set to which the entity object belongs. - The object for which the entity key is being retrieved. - When either parameter is null. - When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. - When the entity key cannot be constructed successfully based on the supplied parameters. - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. - - - The new instance. - - - Entity type of the requested . - - - The property is not set on the - - or the specified type belongs to more than one entity set. - - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. - - - The new instance. - - - Name of the entity set for the returned . The string must be qualified by the default container name if the - - property is not set on the - - . - - - Entity type of the requested . - - - The from entitySetName does not match the - - of the object - - or the - - property is not set on the - - and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. - - - - - Creates an in the current object context by using the specified query string. - - - An of the specified type. - - The query string to be executed. - Parameters to pass to the query. - - The entity type of the returned . - - The queryString or parameters parameter is null. - - - Marks an object for deletion. - - An object that specifies the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - The entity is null. - - The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). - - - - - Finalizes an instance of the class. - - - - Releases the resources used by the object context. - - - - Releases the resources used by the object context. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns an object that has the specified entity key. - - An that is an instance of an entity type. - - The key of the object to be found. - The key parameter is null. - - The object is not found in either the or the data source. - - - - Updates a collection of objects in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Updates an object in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Persists all updates to the database and resets change tracking in the object context. - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after - - finishes. If false, you must call the - method after . - - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - A value that determines the behavior of the operation. - - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - - Ensures that changes are synchronized with changes in all objects that are tracked by the - - . - - - - Returns an object that has the specified entity key. - true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. - The key of the object to be found. - When this method returns, contains the object. - Incompatible metadata for key . - key is null. - - - - Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - The to use when executing the query. - - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given function on the default container. - - Element type for function results. - - Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. - - The options for executing this function. - - The parameter values to use for the function. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - An object representing the result of executing this function. - If function is null or empty - - If function is invalid (syntax, - does not exist, refers to a function with return type incompatible with T) - - - - Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. - The number of rows affected. - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. - - An enumeration of objects that represent custom data classes that map to the conceptual model. - - - - Returns all the existing proxy types. - - An of all the existing proxy types. - - - - Returns the entity type of the POCO entity associated with a proxy object of a specified type. - - The of the associated POCO entity. - - - The of the proxy object. - - - - Creates and returns an instance of the requested type . - An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. - Type of object to be returned. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior of - DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - - The to use when executing the query. The default is - . - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Translates a that contains rows of entity data to objects of the requested entity type. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - When reader is null. - - - - Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - The entity set of the TResult type. - - The to use when translated objects are added to the object context. The default is - - . - - When reader is null. - - When the supplied mergeOption is not a valid value. - - When the supplied entitySetName is not a valid entity set for the TResult type. - - - - Creates the database by using the current data source connection and the metadata in the - - . - - - - Deletes the database that is specified as the database in the current data source connection. - - - - Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work - is done by the DbProviderServices implementation for the current store connection. - - true if the database exists; otherwise, false. - - - - Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the - - . The - - loads metadata from store schema definition language (SSDL) files. - - - A DDL script that creates schema objects for the metadata in the - - . - - - - Gets the connection used by the object context. - - A object that is the connection. - - - When the instance has been disposed. - - - - Gets or sets the default container name. - - A that is the default container name. - - - - Gets the metadata workspace used by the object context. - - The object associated with this - - . - - - - Gets the object state manager used by the object context to track object changes. - - The used by this - - . - - - - Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. - - An value that is the timeout value, in seconds. - - The timeout value is less than 0. - - - Gets the LINQ query provider associated with this object context. - - The instance used by this object context. - - - - - Gets the instance that contains options that affect the behavior of the - - . - - - The instance that contains options that affect the behavior of the - - . - - - - - Returns itself. ObjectContext implements to provide a common - interface for and ObjectContext both of which will return the underlying - ObjectContext. - - - - - Gets the transaction handler in use by this context. May be null if no transaction have been started. - - - The transaction handler. - - - - - Returns the being used for this context. - - - - Occurs when changes are saved to the data source. - - - Occurs when a new entity object is created from data in the data source as part of a query or load operation. - - - - Defines options that affect the behavior of the ObjectContext. - - - - Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. - true if lazy loading is enabled; otherwise, false. - - - Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. - true if proxies are created; otherwise, false. The default value is true. - - - Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. - true if the legacy PreserveChanges behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. - - If this flag is set to false then setting the Value property of the for an - FK relationship to null when it is already null will have no effect. When this flag is set to true, then - setting the value to null will always cause the FK to be nulled and the relationship to be deleted - even if the value is currently null. The default value is false when using ObjectContext and true - when using DbContext. - - true if the consistent NullReference behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. - - This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. - If this flag is set, then any equality comparison between two operands, both of which are potentially - nullable, will be rewritten to show C# null comparison semantics. As an example: - (operand1 = operand2) will be rewritten as - (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) - The default value is false when using . - - true if the C# NullComparison behavior should be used; otherwise, false. - - - - EventArgs for the ObjectMaterialized event. - - - - Gets the entity object that was created. - The entity object that was created. - - - - Delegate for the ObjectMaterialized event. - - The ObjectContext responsable for materializing the object. - EventArgs containing a reference to the materialized object. - - - - This class represents a query parameter at the object layer, which consists - of a Name, a Type and a Value. - - - - - Initializes a new instance of the class with the specified name and type. - - The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The common language runtime (CLR) type of the parameter. - If the value of either argument is null. - If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - - Initializes a new instance of the class with the specified name and value. - - The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The initial value (and inherently, the type) of the parameter. - If the value of either argument is null. - If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - Gets the parameter name, which can only be set through a constructor. - The parameter name, which can only be set through a constructor. - - - Gets the parameter type. - - The of the parameter. - - - - Gets or sets the parameter value. - The parameter value. - - - - This class represents a collection of query parameters at the object layer. - - - - - Adds the specified to the collection. - - The parameter to add to the collection. - The parameter argument is null. - - The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a - - . - - The type of the parameter is not valid. - - - - Deletes all instances from the collection. - - - - - Checks for the existence of a specified in the collection by reference. - - Returns true if the parameter object was found in the collection; otherwise, false. - - The to find in the collection. - - The parameter argument is null. - - - - Determines whether an with the specified name is in the collection. - - Returns true if a parameter with the specified name was found in the collection; otherwise, false. - The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - The name parameter is null. - - - Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. - The array into which to copy the parameters. - The index in the array at which to start copying the parameters. - - - - Removes an instance of an from the collection by reference if it exists in the collection. - - Returns true if the parameter object was found and removed from the collection; otherwise, false. - An object to remove from the collection. - The parameter argument is null. - - - - These methods return enumerator instances, which allow the collection to - be iterated through and traversed. - - An object that can be used to iterate through the collection. - - - Returns an untyped enumerator over the collection. - - An instance. - - - - Gets the number of parameters currently in the collection. - - The number of objects that are currently in the collection. - - - - - This collection is read-write - parameters may be added, removed - and [somewhat] modified at will (value only) - provided that the - implementation the collection belongs to has not locked its parameters - because it's command definition has been prepared. - - - - Provides an indexer that allows callers to retrieve parameters by name. - - The instance. - - The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - No parameter with the specified name is found in the collection. - - - - This class implements untyped queries at the object-layer. - - - - Returns the commands to execute against the data source. - A string that represents the commands that the query executes against the data source. - - - Returns information about the result type of the query. - - A value that contains information about the result type of the query. - - - - Executes the untyped object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Returns an enumerator that iterates through a collection. - - An that can be used to iterate through the collection. - - - - Returns the command text for the query. - A string value. - - - Gets the object context associated with this object query. - - The associated with this - - instance. - - - - Gets or sets how objects returned from a query are added to the object context. - - The query . - - - - - Whether the query is streaming or buffering - - - - Gets the parameter collection for this object query. - - The parameter collection for this . - - - - Gets or sets a value that indicates whether the query plan should be cached. - A value that indicates whether the query plan should be cached. - - - - Gets the result element type for this query instance. - - - - - Gets the expression describing this query. For queries built using - LINQ builder patterns, returns a full LINQ expression tree; otherwise, - returns a constant expression wrapping this query. Note that the - default expression is not cached. This allows us to differentiate - between LINQ and Entity-SQL queries. - - - - - Gets the associated with this query instance. - - - - - ObjectQuery implements strongly-typed queries at the object-layer. - Queries are specified using Entity-SQL strings and may be created by calling - the Entity-SQL-based query builder methods declared by ObjectQuery. - - The result type of this ObjectQuery - - - - Creates a new instance using the specified Entity SQL command as the initial query. - - The Entity SQL query. - - The on which to execute the query. - - - - - Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. - - The Entity SQL query. - - The on which to execute the query. - - - Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same - - . - - - - Executes the object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - Specifies the related objects to include in the query results. - - A new with the defined query path. - - Dot-separated list of related objects to return in the query results. - path is null. - path is empty. - - - Limits the query to unique results. - - A new instance that is equivalent to the original instance with SELECT DISTINCT applied. - - - - - This query-builder method creates a new query whose results are all of - the results of this query, except those that are also part of the other - query specified. - - A query representing the results to exclude. - a new ObjectQuery instance. - If the query parameter is null. - - - Groups the query results by the specified criteria. - - A new instance of type - - that is equivalent to the original instance with GROUP BY applied. - - The key columns by which to group the results. - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - The query parameter is null or an empty string - or the projection parameter is null or an empty string. - - - - This query-builder method creates a new query whose results are those that - are both in this query and the other query specified. - - A query representing the results to intersect with. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to only results of a specific type. - - A new instance that is equivalent to the original instance with OFTYPE applied. - - - The type of the returned when the query is executed with the applied filter. - - The type specified is not valid. - - - Orders the query results by the specified criteria. - - A new instance that is equivalent to the original instance with ORDER BY applied. - - The key columns by which to order the results. - Zero or more parameters that are used in this method. - The keys or parameters parameter is null. - The key is an empty string. - - - Limits the query results to only the properties that are defined in the specified projection. - - A new instance of type - - that is equivalent to the original instance with SELECT applied. - - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - projection is null or parameters is null. - The projection is an empty string. - - - Limits the query results to only the property specified in the projection. - - A new instance of a type compatible with the specific projection. The returned - - is equivalent to the original instance with SELECT VALUE applied. - - The projection list. - An optional set of query parameters that should be in scope when parsing. - - The type of the returned by the - - method. - - projection is null or parameters is null. - The projection is an empty string. - - - Orders the query results by the specified criteria and skips a specified number of results. - - A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. - - The key columns by which to order the results. - The number of results to skip. This must be either a constant or a parameter reference. - An optional set of query parameters that should be in scope when parsing. - Any argument is null. - keys is an empty string or count is an empty string. - - - Limits the query results to a specified number of items. - - A new instance that is equivalent to the original instance with TOP applied. - - The number of items in the results as a string. - An optional set of query parameters that should be in scope when parsing. - count is null. - count is an empty string. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - without duplicates (i.e., results are unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - including any duplicates (i.e., results are not necessarily unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to results that match specified filtering criteria. - - A new instance that is equivalent to the original instance with WHERE applied. - - The filter predicate. - Zero or more parameters that are used in this method. - predicate is null or parameters is null. - The predicate is an empty string. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Gets or sets the name of this object query. - - A string value that is the name of this . - - The value specified on set is not valid. - - - - This class implements IEnumerable and IDisposable. Instance of this class - is returned from ObjectQuery.Execute method. - - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Returns the results in a format useful for data binding. - - An of entity objects. - - - - Performs tasks associated with freeing, releasing, or resetting resources. - - - Releases the resources used by the object result. - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the next result set of a stored procedure. - An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. - The type of the element. - - - - IListSource.ContainsListCollection implementation. Always returns false. - - - - - When overridden in a derived class, gets the type of the generic - - . - - - The type of the generic . - - - - - This class represents the result of the method. - - The type of the result. - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the type of the . - - - A that is the type of the . - - - - - Represents a typed entity set that is used to perform create, read, update, and delete operations. - - The type of the entity. - - - Adds an object to the object context in the current entity set. - The object to add. - - - Attaches an object or object graph to the object context in the current entity set. - The object to attach. - - - Marks an object for deletion. - - An object that represents the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - - - - Sets the property of an - - to match the property values of a supplied object. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the - - property of an entry in the - - . - - - - Creates a new entity type object. - The new entity type object, or an instance of a proxy type that corresponds to the entity type. - - - Creates an instance of the specified type. - An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . - Type of object to be returned. - - - - Gets the metadata of the entity set represented by this instance. - - - An object. - - - - - The original values of the properties of an entity when it was retrieved from the database. - - - - - Maintains object state and identity management for entity type instances and relationship instances. - - - - - Initializes a new instance of the class. - - - The , which supplies mapping and metadata information. - - - - - Returns a collection of objects for objects or relationships with the given state. - - - A collection of objects in the given - - . - - - An used to filter the returned - - objects. - - - When state is . - - - - - Changes state of the for a specific object to the specified entityState . - - - The for the supplied entity . - - The object for which the state must be changed. - The new state of the object. - When entity is null. - - When the object is not detached and does not have an entry in the state manager - or when you try to change the state to - from any other - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - When source or target is null. - - When trying to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - A LINQ expression that selects the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - The entity type of the source object. - When source , target , or selector is null. - selector is malformed or cannot return a navigation property. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a - state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the relationship. - The role name at the target end of the relationship. - - The requested of the specified relationship. - - When source or target is null. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an - state - or when state is not a valid value. - - - - - Returns an for the object or relationship entry with the specified key. - - - The corresponding for the given - - . - - - The . - - When key is null. - When the specified key cannot be found in the state manager. - - No entity with the specified exists in the - - . - - - - - Returns an for the specified object. - - - The corresponding for the given - - . - - - The to which the retrieved - - belongs. - - - No entity for the specified exists in the - - . - - - - - Tries to retrieve the corresponding for the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given object; otherwise, false. - - - The to which the retrieved - - belongs. - - - When this method returns, contains the for the given - - This parameter is passed uninitialized. - - - - - Tries to retrieve the corresponding for the object or relationship with the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given - - ; otherwise, false. - - - The given . - - - When this method returns, contains an for the given - - This parameter is passed uninitialized. - - A null (Nothing in Visual Basic) value is provided for key . - - - - Returns the that is used by the specified object. - - - The for the specified object. - - - The object for which to return the . - - - The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager - - - - - Returns the that is used by the specified object. - - - true if a instance was returned for the supplied entity ; otherwise false. - - - The object for which to return the . - - - When this method returns, contains the - - for the entity . - - - - - Gets the associated with this state manager. - - - The associated with this - - . - - - - Occurs when entities are added to or removed from the state manager. - - - - A DataContractResolver that knows how to resolve proxy types created for persistent - ignorant classes to their base types. This is used with the DataContractSerializer. - - - - During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. - Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. - The xsi:type information to map. - The namespace of the xsi:type. - The declared type. - - An instance of . - - - - During serialization, maps actual types to xsi:type information. - true if the type was resolved; otherwise, false. - The actual type of the persistence-ignorant object. - The declared type. - - An instance of . - - When this method returns, contains a list of xsi:type declarations. - When this method returns, contains a list of namespaces used. - - - - Defines the different ways to handle modified properties when refreshing in-memory data from the database. - - - - - For unmodified client objects, same behavior as StoreWins. For modified client - objects, Refresh original values with store value, keeping all values on client - object. The next time an update happens, all the client change units will be - considered modified and require updating. - - - - - Discard all changes on the client and refresh values with store values. - Client original values is updated to match the store. - - - - - Flags used to modify behavior of ObjectContext.SaveChanges() - - - - - Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. - - - - - After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. - - - - - Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. - - - - - This exception is thrown when a update operation violates the concurrency constraint. - - - - - Exception during save changes to store - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The collection of objects. - - - - - Initializes a new instance of with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Gets the objects for this - - . - - - A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The enumerable collection of objects. - - - - - Property constraint exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of the class with default message. - - - - - Initializes a new instance of the class with supplied message. - - A localized error message. - - - - Initializes a new instance of the class with supplied message and inner exception. - - A localized error message. - The inner exception. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - The inner exception. - - - Gets the name of the property that violated the constraint. - The name of the property that violated the constraint. - - - - This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that this class was called EntityFunctions in some previous versions of Entity Framework. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Describes the state of an entity. - - - - - The entity is not being tracked by the context. - An entity is in this state immediately after it has been created with the new operator - or with one of the Create methods. - - - - - The entity is being tracked by the context and exists in the database, and its property - values have not changed from the values in the database. - - - - - The entity is being tracked by the context but does not yet exist in the database. - - - - - The entity is being tracked by the context and exists in the database, but has been marked - for deletion from the database the next time SaveChanges is called. - - - - - The entity is being tracked by the context and exists in the database, and some or all of its - property values have been modified. - - - - - Represents information about a database connection. - - - - - Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. - - The name of the connection string in the application configuration. - - - - Creates a new instance of DbConnectionInfo based on a connection string. - - The connection string to use for the connection. - The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Instances of this class are used to create DbConnection objects for - SQL Server LocalDb based on a given database name or connection string. - - - An instance of this class can be set on the class or in the - app.config/web.config for the application to cause all DbContexts created with no - connection information or just a database name to use SQL Server LocalDb by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Implementations of this interface are used to create DbConnection objects for - a type of database server based on a given database name. - An Instance is set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use a certain type of database server by default. - Two implementations of this interface are provided: - is used to create connections to Microsoft SQL Server, including EXPRESS editions. - is used to create connections to Microsoft SQL - Server Compact Editions. - Other implementations for other database servers can be added as needed. - Note that implementations should be thread safe or immutable since they may - be accessed by multiple threads at the same time. - - - - - Creates a connection based on the given database name or connection string. - - The database name or connection string. - An initialized DbConnection. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. - - - - Creates a connection for SQL Server LocalDb based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog', - 'Data Source', and 'AttachDbFilename'. - The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the - database name when CreateConnection is called. - The 'Data Source' will be set based on the LocalDbVersion argument. - The default is 'Integrated Security=True;'. - - - - - An implementation of that will use Code First Migrations - to update the database to the latest version. - - The type of the context. - The type of the migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use - the connection information from a context constructed using the default constructor - or registered factory if applicable - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - Also allows specifying migrations configuration to use during initialization. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - Migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will - use a specific connection string from the configuration file to connect to - the database to perform the migration. - - The name of the connection string to use for migration. - - - - - - - Helper class that is used to configure a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new column definition to store Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - Value indicating whether or not this column should be configured as a timestamp. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The numeric precision of the column. - The numeric scale of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Value indicating whether or not the database will generate values for this column during insert. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the column supports Unicode content. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Helper class that is used to further configure a table being created from a CreateTable call on - - . - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The type that represents the table's columns. - - - - Initializes a new instance of the TableBuilder class. - - The table creation operation to be further configured. - The migration the table is created in. - - - - Specifies a primary key for the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The name of the primary key. If null is supplied, a default name will be generated. - A value indicating whether or not this is a clustered primary key. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies an index to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - The name of the index. - A value indicating whether or not this is a unique index. - A value indicating whether or not this is a clustered index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies a foreign key constraint to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table that the foreign key constraint targets. - A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - A value indicating whether or not cascade delete should be configured on the foreign key constraint. - The name of this foreign key constraint. If no name is supplied, a default name will be calculated. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Base class for code-based migrations. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Operations to be performed during the upgrade process. - - - - - Operations to be performed during the downgrade process. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - The parameters in this create stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The parameters in this alter stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing stored procedure with the specified name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - Custom annotations that exist on the table to be created. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to handle changes in the annotations defined on tables. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The column this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The columns this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The name of the foreign key constraint in the database. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. - Schema name is optional, if no schema is specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. - Schema name is optional, if no schema is specified then dbo is assumed. - - The columns this foreign key references. - - Additional arguments that may be processed by providers. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a table to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is - assumed. - - The schema the table is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a stored procedure to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be moved. Schema name is optional, if no schema is specified - then dbo is assumed. - - The schema the stored procedure is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a table. To change the schema of a table use MoveTable. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The new name for the table. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified - then dbo is assumed. - - - The new name for the stored procedure. Schema name is optional, if no schema is specified then - dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the column to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the column to be renamed. - The new name for the column. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to add a column to an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to add the column to. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be added. - - An action that specifies the column to be added. i.e. c => c.Int(nullable: false, - defaultValue: 3) - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter the definition of an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table the column exists in. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be changed. - - An action that specifies the new definition for the column. i.e. c => c.String(nullable: - false, defaultValue: "none") - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The primary key column. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key based on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The primary key columns. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that does not have the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the primary key to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that was created with the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on a single column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the columns to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the index to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column(s) the index targets. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename an index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the index to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the index to be renamed. - The new name for the index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL command or set of SQL commands. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL resource file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The manifest resource name of the SQL resource file to be executed. - - The assembly containing the resource file. The calling assembly is assumed if not provided. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - - - - - - - - - - - - - - - - - - - Configuration relating to the use of migrations for a given model. - You will typically create a configuration class that derives - from rather than - using this class. - - - - - The default directory that migrations are stored in. - - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Adds a new SQL generator to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - The SQL generator to be used. - - - - Gets the SQL generator that is set to be used with a given database provider. - - Name of the database provider to get the SQL generator for. - The SQL generator that is set for the database provider. - - - - Adds a new factory for creating instances to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - - A factory for creating instances for a given and - representing the default schema. - - - - - Gets the history context factory that is set to be used with a given database provider. - - Name of the database provider to get thefactory for. - The history context factory that is set for the database provider. - - - - Gets or sets a value indicating if automatic migrations can be used when migrating the database. - - - - - Gets or sets the string used to distinguish migrations belonging to this configuration - from migrations belonging to other configurations using the same database. - This property enables migrations from multiple different models to be applied to applied to a single database. - - - - - Gets or sets a value indicating if data loss is acceptable during automatic migration. - If set to false an exception will be thrown if data loss may occur as part of an automatic migration. - - - - - Gets or sets the derived DbContext representing the model to be migrated. - - - - - Gets or sets the namespace used for code-based migrations. - - - - - Gets or sets the sub-directory that code-based migrations are stored in. - Note that this property must be set to a relative path for a sub-directory under the - Visual Studio project root; it cannot be set to an absolute path. - - - - - Gets or sets the code generator to be used when scaffolding migrations. - - - - - Gets or sets the assembly containing code-based migrations. - - - - - Gets or sets a value to override the connection of the database to be migrated. - - - - - Gets or sets the timeout value used for the individual commands within a - migration. A null value indicates that the default value of the underlying - provider will be used. - - - - - Configuration relating to the use of migrations for a given model. - - The context representing the model that this configuration applies to. - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Runs after upgrading to the latest migration to allow seed data to be updated. - - - Note that the database may already contain seed data when this method runs. This means that - implementations of this method must check whether or not seed data is present and/or up-to-date - and then only make changes if necessary and in a non-destructive way. The - - can be used to help with this, but for seeding large amounts of data it may be necessary to do less - granular checks if performance is an issue. - If the database - initializer is being used, then this method will be called each time that the initializer runs. - If one of the , , - or initializers is being used, then this method will not be - called and the Seed method defined in the initializer should be used instead. - - Context to be used for updating seed data. - - - - - - - - - - - - - - - - - - - DbMigrator is used to apply existing migrations to a database. - DbMigrator can be used to upgrade and downgrade to any given migration. - To scaffold migrations based on changes to your model use - - - - - Base class for decorators that wrap the core - - - - - Initializes a new instance of the MigratorBase class. - - The migrator that this decorator is wrapping. - - - - Gets a list of the pending migrations that have not been applied to the database. - - List of migration Ids - - - - Updates the target database to the latest migration. - - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets a list of the migrations that are defined in the assembly. - - List of migration Ids - - - - Gets a list of the migrations that have been applied to the database. - - List of migration Ids - - - - Gets the configuration being used for the migrations process. - - - - - Migration Id representing the state of the database before any migrations are applied. - - - - - Initializes a new instance of the DbMigrator class. - - Configuration to be used for the migration process. - - - - Gets all migrations that are defined in the configured migrations assembly. - - The list of migrations. - - - - Gets all migrations that have been applied to the target database. - - The list of migrations. - - - - Gets all migrations that are defined in the assembly but haven't been applied to the target database. - - The list of migrations. - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets the configuration that is being used for the migration process. - - - - - A set of extension methods for - - - - - Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation - from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Adds or updates entities by a custom identification expression when SaveChanges is called. - Equivalent to an "upsert" operation from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Generates C# code for a code-based migration. - - - - - Base class for providers that generate code for code-based migrations. - - - - - Generates the code that should be added to the users project. - - Unique identifier of the migration. - Operations to be performed by the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Gets the namespaces that must be output as "using" or "Imports" directives to handle - the code generated by the given operations. - - The operations for which code is going to be generated. - An ordered list of namespace names. - - - - Gets the default namespaces that must be output as "using" or "Imports" directives for - any code generated. - - A value indicating if this class is being generated for a code-behind file. - An ordered list of namespace names. - - - - Gets the instances that are being used. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to specify the definition for a . - The parameter definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Scaffolds code-based migrations to apply pending model changes to the database. - - - - - Initializes a new instance of the MigrationScaffolder class. - - Configuration to be used for scaffolding. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - The scaffolded migration. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The scaffolded migration. - - - - Gets or sets the namespace used in the migration's generated code. - By default, this is the same as MigrationsNamespace on the migrations - configuration object passed into the constructor. For VB.NET projects, this - will need to be updated to take into account the project's root namespace. - - - - - Represents a code-based migration that has been scaffolded and is ready to be written to a file. - - - - - Gets or sets the unique identifier for this migration. - Typically used for the file name of the generated code. - - - - - Gets or sets the scaffolded migration code that the user can edit. - - - - - Gets or sets the scaffolded migration code that should be stored in a code behind file. - - - - - Gets or sets the programming language used for this migration. - Typically used for the file extension of the generated code. - - - - - Gets or sets the subdirectory in the user's project that this migration should be saved in. - - - - - Gets a dictionary of string resources to add to the migration resource file. - - - - - Gets or sets whether the migration was re-scaffolded. - - - - - Helper class that is used by design time tools to run migrations related - commands that need to interact with an application that is being edited - in Visual Studio. - Because the application is being edited the assemblies need to - be loaded in a separate AppDomain to ensure the latest version - is always loaded. - The App/Web.config file from the startup project is also copied - to ensure that any configuration is applied. - - - - - Initializes a new instance of the ToolingFacade class. - - The name of the assembly that contains the migrations configuration to be used. - The name of the assembly that contains the DbContext to be used. - The namespace qualified name of migrations configuration to be used. - The working directory containing the compiled assemblies. - The path of the config file from the startup project. - The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. - The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. - - - - Releases all unmanaged resources used by the facade. - - - - - Gets the fully qualified name of all types deriving from . - - All context types found. - - - - Gets the fully qualified name of a type deriving from . - - The name of the context type. If null, the single context type found in the assembly will be returned. - The context type found. - - - - Gets a list of all migrations that have been applied to the database. - - Ids of applied migrations. - - - - Gets a list of all migrations that have not been applied to the database. - - Ids of pending migrations. - - - - Updates the database to the specified migration. - - The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. - Value indicating if data loss during automatic migration is acceptable. - - - - Generates a SQL script to migrate between two migrations. - - The migration to update from. If null is supplied, a script to update the current database will be produced. - The migration to update to. If null is supplied, a script to update to the latest migration will be produced. - Value indicating if data loss during automatic migration is acceptable. - The generated SQL script. - - - - Scaffolds a code-based migration to apply any pending model changes. - - The name for the generated migration. - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - The scaffolded migration. - - - - - - - Releases all resources used by the facade. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Gets or sets an action to be run to log information. - - - - - Gets or sets an action to be run to log warnings. - - - - - Gets or sets an action to be run to log verbose information. - - - - - Base class for loggers that can be used for the migrations process. - - - - - Logs an informational message. - - The message to be logged. - - - - Logs a warning that the user should be made aware of. - - The message to be logged. - - - - Logs some additional information that should only be presented to the user if they request verbose output. - - The message to be logged. - - - - Generates VB.Net code for a code-based migration. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The parameter model definition to generate code for. - Text writer to add the generated code to. - true to include the column name in the definition; otherwise, false. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - This class is used by Code First Migrations to read and write migration history - from the database. - To customize the definition of the migrations history table you can derive from - this class and override OnModelCreating. Derived instances can either be registered - on a per migrations configuration basis using , - or globally using . - - - - - The default name used for the migrations history table. - - - - - Initializes a new instance of the HistoryContext class. - If you are creating a derived history context you will generally expose a constructor - that accepts these same parameters and passes them to this base constructor. - - - An existing connection to use for the new context. - - - The default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Applies the default configuration for the migrations history table. If you override - this method it is recommended that you call this base implementation before applying your - custom configuration. - - The builder that defines the model for the context being created. - - - - Gets the key used to locate a model that was previously built for this context. This is used - to avoid processing OnModelCreating and calculating the model every time a new context instance is created. - By default this property returns the default schema. - In most cases you will not need to override this property. However, if your implementation of OnModelCreating - contains conditional logic that results in a different model being built for the same database provider and - default schema you should override this property and calculate an appropriate key. - - - - - Gets the default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Gets or sets a that can be used to read and write instances. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - - - - - Gets or sets the Id of the migration this row represents. - - - - - Gets or sets a key representing to which context the row applies. - - - - - Gets or sets the state of the model after this migration was applied. - - - - - Gets or sets the version of Entity Framework that created this entry. - - - - - Represents an error that occurs when an automatic migration would result in data loss. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides additional metadata about a code-based migration. - - - - - Gets the unique identifier for the migration. - - - - - Gets the state of the model before this migration is run. - - - - - Gets the state of the model after this migration is run. - - - - - Decorator to provide logging during migrations operations.. - - - - - Initializes a new instance of the MigratorLoggingDecorator class. - - The migrator that this decorator is wrapping. - The logger to write messages to. - - - - Decorator to produce a SQL script instead of applying changes to the database. - Using this decorator to wrap will prevent - from applying any changes to the target database. - - - - - Initializes a new instance of the MigratorScriptingDecorator class. - - The migrator that this decorator is wrapping. - - - - Produces a script to update the database. - - - The migration to update from. If null is supplied, a script to update the - current database will be produced. - - - The migration to update to. If null is supplied, - a script to update to the latest migration will be produced. - - The generated SQL script. - - - - Represents a column being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be added to. - Details of the column being added. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be added to. - - - - - Gets the details of the column being added. - - - - - Gets an operation that represents dropping the added column. - - - - - - - - Represents a foreign key constraint being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Base class for changes that affect foreign key constraints. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that the foreign key constraint targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the name of the table that the foreign key columns exist in. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - The names of the foreign key column(s). - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this foreign key constraint. - - - - - Gets or sets the name of this foreign key constraint. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddForeignKeyOperation class. - The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to create an index on the foreign key column(s). - - An operation to add the index. - - - - The names of the column(s) that the foreign key constraint should target. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. - - - - - Gets an operation to drop the foreign key constraint. - - - - - - - - Represents adding a primary key to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class to represent operations affecting primary keys. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Returns the default name for the primary key. - - The target table name. - The default primary key name. - - - - Initializes a new instance of the PrimaryKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that contains the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the column(s) that make up the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this primary key. - - - - - Gets or sets the name of this primary key. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - - - - Initializes a new instance of the AddPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the primary key. - - - - - Gets or sets whether this is a clustered primary key. - - - - - Represents altering an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - An operation to revert this alteration of the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table that the column belongs to. - - - - - Gets the new definition for the column. - - - - - Gets an operation that represents reverting the alteration. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents information about a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Determines if this column is a narrower data type than another column. - Used to determine if altering the supplied column definition to this definition will result in data loss. - - The column to compare to. - Details of the database provider being used. - True if this column is of a narrower data type. - - - - Gets the CLR type corresponding to the database type of this column. - - - - - Gets the default value for the CLR type corresponding to the database type of this column. - - - - - Gets or sets a value indicating if this column can store null values. - - - - - Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. - - - - - Gets or sets a value indicating if this property model should be configured as a timestamp. - - - - - Gets or sets the custom annotations that have changed on the column. - - - - - Represents creating a database index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class for operations affecting indexes. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a default index name based on the supplied column names. - - The column names used to create a default index name. - A default index name. - - - - Initializes a new instance of the IndexOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets or sets the table the index belongs to. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the columns that are indexed. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this index. - - - - - Gets or sets the name of this index. - If no name is supplied, a default name will be calculated. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateIndexOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets a value indicating if this is a unique index. - - - - - Gets an operation to drop this index. - - - - - - - - Gets or sets whether this is a clustered index. - - - - - Represents creating a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Custom annotations that exist on the table to be created. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be created. - - - - - Gets the columns to be included in the new table. - - - - - Gets or sets the primary key for the new table. - - - - - Gets custom annotations that exist on the table to be created. - - - - - Gets an operation to drop the table. - - - - - - - - Represents a column being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be dropped from. - - - - - Gets the name of the column to be dropped. - - - - - Gets custom annotations that exist on the column that is being dropped. - - - - - Gets an operation that represents reverting dropping the column. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents a foreign key constraint being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropForeignKeyOperation class. - The PrincipalTable, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc.. - - The operation that represents reverting dropping the foreign key constraint. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the associated index on the foreign key column(s). - - An operation to drop the index. - - - - Gets an operation that represents reverting dropping the foreign key constraint. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The operation that represents reverting dropping the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that represents reverting dropping the index. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping a primary key from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to add the primary key. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents dropping an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be dropped. - - - - - Gets custom annotations that exist on the table that is being dropped. - - - - - Gets custom annotations that exist on columns of the table that is being dropped. - - - - - Gets an operation that represents reverting dropping the table. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Operation representing DML changes to the migrations history table. - The migrations history table is used to store a log of the migrations that have been applied to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the HistoryOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A sequence of command trees representing the operations being applied to the history table. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - A sequence of commands representing the operations being applied to the history table. - - - - - - - - Represents moving a table from one schema to another. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MoveTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be moved. - Name of the schema to move the table to. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be moved. - - - - - Gets the name of the schema to move the table to. - - - - - Gets an operation that moves the table back to its original schema. - - - - - - - - Used when altering the migrations history table so that data can be moved to the new table. - - - The context key for the model. - - - - - Gets a value that indicates whether this is a system table. - - - true if the table is a system table; otherwise, false. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents renaming an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the column belongs to. - Name of the column to be renamed. - New name for the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column belongs to. - - - - - Gets the name of the column to be renamed. - - - - - Gets the new name for the column. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents renaming an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be renamed. - New name for the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be renamed. - - - - - Gets the new name for the table. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents a provider specific SQL statement to be executed directly against the target database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the SqlOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the SQL to be executed. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - - - - Common base class for providers that convert provider agnostic migration - operations into database provider specific SQL commands. - - - - - Converts a set of migration operations into database provider specific SQL. - - The operations to be converted. - Token representing the version of the database being targeted. - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Builds the store type usage for the specified using the facets from the specified . - - Name of the store type. - The target property. - A store-specific TypeUsage - - - - Gets or sets the provider manifest. - - - The provider manifest. - - - - - Represents a migration operation that has been translated into a SQL statement. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the SQL to be executed to perform this migration operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - Gets or sets the batch terminator for the database provider. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The batch terminator for the database provider. - - - - - Extension methods for . - - - - - Returns an implementation that stays in sync with the given - . - - The element type. - The collection that the binding list will stay in sync with. - The binding list. - - - - Represents data in a geodetic (round earth) coordinate system. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( - - ). - - A byte array that contains a well known binary representation of the geography value. - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified well known text value. - - - A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geography value. - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known text value. - The multi polygon value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. - A string containing the well known text representation of this DbGeography value. - - - Generates the well known binary representation of this DbGeography value. - The well-known binary representation of this DbGeography value. - - - Generates the Geography Markup Language (GML) representation of this DbGeography value. - A string containing the GML representation of this DbGeography value. - - - Determines whether this DbGeography is spatially equal to the specified DbGeography argument. - true if other is spatially equal to this geography value; otherwise false. - The geography value that should be compared with this geography value for equality. - - - Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. - true if other is disjoint from this geography value; otherwise false. - The geography value that should be compared with this geography value for disjointness. - - - Determines whether this DbGeography value spatially intersects the specified DbGeography argument. - true if other intersects this geography value; otherwise false. - The geography value that should be compared with this geography value for intersection. - - - Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. - A geography object that represents the union of all points - The distance. - - - Computes the distance between the closest points in this DbGeography value and another DbGeography value. - A double value that specifies the distance between the two closest points in this geography value and other. - The geography value for which the distance from this value should be computed. - - - Computes the intersection of this DbGeography value and another DbGeography value. - A new DbGeography value representing the intersection between this geography value and other. - The geography value for which the intersection with this value should be computed. - - - Computes the union of this DbGeography value and another DbGeography value. - A new DbGeography value representing the union between this geography value and other. - The geography value for which the union with this value should be computed. - - - Computes the difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the difference between this geography value and other. - The geography value for which the difference with this value should be computed. - - - Computes the symmetric difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the symmetric difference between this geography value and other. - The geography value for which the symmetric difference with this value should be computed. - - - Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns a string representation of the geography value. - A string representation of the geography value. - - - Gets the default coordinate system id (SRID) for geography values (WGS 84) - The default coordinate system id (SRID) for geography values (WGS 84) - - - Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. - A representation of this DbGeography value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeography value. - A data contract serializable well known representation of this DbGeography value. - - - Gets the identifier associated with the coordinate system. - The identifier associated with the coordinate system. - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of the given value. - - - - Gets the spatial type name of the DBGeography. - The spatial type name of the DBGeography. - - - Gets a nullable Boolean value indicating whether this DbGeography value is empty. - True if this DbGeography value is empty; otherwise, false. - - - Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> - The number of elements in this DbGeography value. - - - Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Latitude coordinate of this DbGeography value. - - - Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Longitude coordinate of this DbGeography value. - - - Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeography value. - - - Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The M (Measure) coordinate of this DbGeography value. - - - Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. - A nullable double value that indicates the length of this DbGeography value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. - True if this DbGeography value is closed; otherwise, false. - - - Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeography value. - - - Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeography value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - Represents geometric shapes. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( - - ). - - A byte array that contains a well known binary representation of the geometry value. - wellKnownBinary - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownBinary - coordinateSystemId - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownBinary - coordinateSystemId - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownBinary - coordinateSystemId - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownBinary - coordinateSystemId - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multipoint value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownBinary - coordinateSystemId - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - geometryMarkup - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryMarkup - coordinateSystemId - - - - Creates a new value based on the specified well known text value. - - - A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geometry value. - wellKnownText - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownText - coordinateSystemId - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownText - coordinateSystemId - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownText - coordinateSystemId - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownText - coordinateSystemId - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownText - coordinateSystemId - - - Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. - A string containing the well known text representation of this DbGeometry value. - - - Generates the well known binary representation of this DbGeometry value. - The well-known binary representation of this DbGeometry value. - - - Generates the Geography Markup Language (GML) representation of this DbGeometry value. - A string containing the GML representation of this DbGeometry value. - - - Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. - true if other is spatially equal to this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for equality. - other - - - Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. - true if other is disjoint from this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for disjointness. - other - - - Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. - true if other intersects this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for intersection. - other - - - Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. - true if other touches this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. - true if other crosses this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. - true if this geometry value is within other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. - true if this geometry value contains other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. - true if this geometry value overlaps other; otherwise false. - The geometry value that should be compared with this geometry value for overlap. - other - - - Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. - The geometry value that should be compared with this geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - othermatrix - - - Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. - A geometry object that represents the union of all points. - The distance. - - - Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. - A double value that specifies the distance between the two closest points in this geometry value and other. - The geometry value for which the distance from this value should be computed. - other - - - Computes the intersection of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the intersection between this geometry value and other. - The geometry value for which the intersection with this value should be computed. - other - - - Computes the union of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the union between this geometry value and other. - The geometry value for which the union with this value should be computed. - other - - - Computes the difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the difference between this geometry value and other. - The geometry value for which the difference with this value should be computed. - other - - - Computes the symmetric difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the symmetric difference between this geometry value and other. - The geometry value for which the symmetric difference with this value should be computed. - other - - - Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> - An interior ring from this DbGeometry value at a specific position. - The index. - - - Returns a string representation of the geometry value. - A string representation of the geometry value. - - - Gets the default coordinate system id (SRID) for geometry values. - The default coordinate system id (SRID) for geometry values. - - - Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. - A representation of this DbGeometry value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeometry value. - A data contract serializable well known representation of this DbGeometry value. - - - Gets the coordinate system identifier of the DbGeometry object. - The coordinate system identifier of the DbGeometry object. - - - Gets the boundary of the DbGeometry objects. - The boundary of the DbGeometry objects. - - - - Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. - - - The dimension of the given value. - - - - Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. - The envelope (minimum bounding box) of this DbGeometry value. - - - Gets a spatial type name representation of this DbGeometry value. - A spatial type name representation of this DbGeometry value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. - True if this DbGeometry value is empty; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is simple. - True if this DbGeometry value is simple; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is valid. - True if this DbGeometry value is valid; otherwise, false. - - - Gets the convex hull of this DbGeometry value as another DbGeometry value. - The convex hull of this DbGeometry value as another DbGeometry value. - - - Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> - The number of elements in this DbGeometry value. - - - Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The X coordinate of this DbGeometry value. - - - Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The Y coordinate of this DbGeometry value. - - - Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeometry value. - - - Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> - The Measure (M coordinate) of this DbGeometry value. - - - Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. - The length of this DbGeometry value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. - True if this DbGeometry value is closed; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. - True if this DbGeometry value is a ring; otherwise, false. - - - Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeometry value. - - - Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeometry value. - - - Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. - The DbGeometry value that represents the centroid of this DbGeometry value. - - - Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. - A point on the surface of this DbGeometry value. - - - Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. - The DbGeometry value that represents the exterior ring of this DbGeometry value. - - - Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> - The number of interior rings in this DbGeometry value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeography at the specified column value - The ordinal of the column that contains the geography value - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeometry at the specified column value - The ordinal of the data record column that contains the provider-specific geometry data - - - - Returns whether the column at the specified column ordinal is of geography type - - The column ordinal. - - true if the column at the specified column ordinal is of geography type; - false otherwise. - - - - - Returns whether the column at the specified column ordinal is of geometry type - - The column ordinal. - - true if the column at the specified column ordinal is of geometry type; - false otherwise. - - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - The provider value. - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. - A new DbGeography value backed by this spatial services implementation and the specified provider value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geography value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geographyValue, as a new - - . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geographyValue, or the largest element dimension if - - is a collection. - - The geography value for which the dimension value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. - - A string containing the well-known text representation of geographyValue. - The geography value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geography value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeography value. - The geography value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geographyValue is spatially equal to otherGeography; otherwise false. - The first geography value to compare for equality. - The second geography value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geographyValue is disjoint from otherGeography; otherwise false. - The first geography value to compare for disjointness. - The second geography value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geographyValue intersects otherGeography; otherwise false. - The first geography value to compare for intersection. - The second geography value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geography value representing all points less than or equal to distance from the given - - value. - - A new DbGeography value representing all points less than or equal to distance from geographyValue. - The geography value. - A double value specifying how far from geographyValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference of two values. - - A new DbGeography value representing the difference of geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference of two values. - - - A new value representing the symmetric difference of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geography collection. - - The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geography collection. - - The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Latitude coordinate of the given value, if it represents a point. - - - The Latitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Longitude coordinate of the given value, if it represents a point. - - - The Longitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z coordinate) of the given value, if it represents a point. - - The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. - - The end point of geographyValue, if it represents a curve; otherwise null. - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geography value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. - The geography value, which need not represent a linestring or linear ring. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geography value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - A provider value. - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geometry value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geometryValue, as a new - - . - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the boundary of the given - - value. - - - The boundary of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geometryValue, or the largest element dimension if - - is a collection. - - The geometry value for which the dimension value should be retrieved. - - - - Gets the envelope (minimum bounding box) of the given value, as a geometry value. - - - The envelope of geometryValue, as a value. - - The geometry value for which the envelope value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is simple. - - - True if the given value is simple; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is valid. - - - True if the given value is valid; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value, including only X and Y coordinates for points. - - A string containing the well-known text representation of geometryValue. - The geometry value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of with elevation and measure. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geometry value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeometry value. - The geometry value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geometryValue is spatially equal to otherGeometry; otherwise false. - The first geometry value to compare for equality. - The second geometry value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geometryValue is disjoint from otherGeometry; otherwise false. - The first geometry value to compare for disjointness. - The second geometry value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geometryValue intersects otherGeometry; otherwise false. - The first geometry value to compare for intersection. - The second geometry value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially touch. - - true if geometryValue touches otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially cross. - - true if geometryValue crosses otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value is spatially within the other. - - true if geometryValue is within otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value spatially contains the other. - - true if geometryValue contains otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially overlap. - - true if geometryValue overlaps otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - - true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. - The first geometry value. - The geometry value that should be compared with the first geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - - - , - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geometry value representing all points less than or equal to distance from the given - - value. - - A new DbGeometry value representing all points less than or equal to distance from geometryValue. - The geometry value. - A double value specifying how far from geometryValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the convex hull of the given - - value. - - - The convex hull of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference between two values. - - A new DbGeometry value representing the difference between geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference between two values. - - - A new value representing the symmetric difference between geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geometry collection. - - The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geometry collection. - - The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the X coordinate of the given value, if it represents a point. - - - The X coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Y coordinate of the given value, if it represents a point. - - - The Y coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z) of the given value, if it represents a point. - - The elevation (Z) of geometryValue, if it represents a point; otherwise null. - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. - - The end point of geometryValue, if it represents a curve; otherwise null. - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. - - - True if the given value is a ring; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geometry value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. - The geometry value, which need not represent a linestring or linear ring. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. - - The centroid of geometryValue, if it represents a surface; otherwise null. - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. - - - A value that represents a point on the surface of the given DbGeometry value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. - - A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of interior rings in the given value, if it represents a polygon. - - The number of elements in geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an interior ring from the given value, if it represents a polygon. - - The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the default services for the . - - The default services. - - - - Override this property to allow the spatial provider to fail fast when native types or other - resources needed for the spatial provider to function correctly are not available. - The default value is true which means that EF will continue with the assumption - that the provider has the necessary types/resources rather than failing fast. - - - - - The same as but works in partial trust and adds explicit caching of - generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure - we indent the next line properly. - - - - - Specifies the default tab string. This field is constant. - - - - - Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. - Note that any writer passed to one of the constructors of must use this - same culture. The culture is . - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - The tab string to use for indentation. - - - - Closes the document being written to. - - - - - Flushes the stream. - - - - - Outputs the tab string once for each level of indentation according to the - - property. - - - - - Builds a string representing the current indentation level for a new line. - - - Does NOT check if tabs are currently pending, just returns a string that would be - useful in replacing embedded newline characters. - - An empty string, or a string that contains .Indent level's worth of specified tab-string. - - - - Writes the specified string to the text stream. - - The string to write. - - - - Writes the text representation of a Boolean value to the text stream. - - The Boolean value to write. - - - - Writes a character to the text stream. - - The character to write. - - - - Writes a character array to the text stream. - - The character array to write. - - - - Writes a subarray of characters to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double to the text stream. - - The double to write. - - - - Writes the text representation of a Single to the text stream. - - The single to write. - - - - Writes the text representation of an integer to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object to the text stream. - - The object to write. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the specified string to a line without tabs. - - The string to write. - - - - Writes the specified string, followed by a line terminator, to the text stream. - - The string to write. - - - - Writes a line terminator. - - - - - Writes the text representation of a Boolean, followed by a line terminator, to the text stream. - - The Boolean to write. - - - - Writes a character, followed by a line terminator, to the text stream. - - The character to write. - - - - Writes a character array, followed by a line terminator, to the text stream. - - The character array to write. - - - - Writes a subarray of characters, followed by a line terminator, to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double, followed by a line terminator, to the text stream. - - The double to write. - - - - Writes the text representation of a Single, followed by a line terminator, to the text stream. - - The single to write. - - - - Writes the text representation of an integer, followed by a line terminator, to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object, followed by a line terminator, to the text stream. - - The object to write. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the text representation of a UInt32, followed by a line terminator, to the text stream. - - A UInt32 to output. - - - - Gets the encoding for the text writer to use. - - - An that indicates the encoding for the text writer to use. - - - - - Gets or sets the new line character to use. - - The new line character to use. - - - - Gets or sets the number of spaces to indent. - - The number of spaces to indent. - - - - Gets the to use. - - - The to use. - - - - - Convention to apply column ordering specified via - - or the API. This convention throws if a duplicate configured column order - is detected. - - - - - Convention to apply column ordering specified via - - or the API. - - - - - - - - Validates the ordering configuration supplied for columns. - This base implementation is a no-op. - - The name of the table that the columns belong to. - The definition of the table. - - - - Validates the ordering configuration supplied for columns to ensure - that the same ordinal was not supplied for two columns. - - The name of the table that the columns belong to. - The definition of the table. - - - - Represents a conceptual or store model. This class can be used to access information about the shape of the model - and the way the that it has been configured. - - - - - Adds an association type to the model. - - The AssociationType instance to be added. - - - - Adds a complex type to the model. - - The ComplexType instance to be added. - - - - Adds an entity type to the model. - - The EntityType instance to be added. - - - - Adds an enumeration type to the model. - - The EnumType instance to be added. - - - - Adds a function to the model. - - The EdmFunction instance to be added. - - - - Removes an association type from the model. - - The AssociationType instance to be removed. - - - - Removes a complex type from the model. - - The ComplexType instance to be removed. - - - - Removes an entity type from the model. - - The EntityType instance to be removed. - - - - Removes an enumeration type from the model. - - The EnumType instance to be removed. - - - - Removes a function from the model. - - The EdmFunction instance to be removed. - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - - Gets the data space associated with the model, which indicates whether - it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). - - - - - Gets the association types in the model. - - - - - Gets the complex types in the model. - - - - - Gets the entity types in the model. - - - - - Gets the enum types in the model. - - - - - Gets the functions in the model. - - - - - Gets the container that stores entity and association sets, and function imports. - - - - Gets the global items associated with the model. - The global items associated with the model. - - - - An implementation of IDatabaseInitializer that will recreate and optionally re-seed the - database only if the database does not exist. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An instance of this class is obtained from an object and can be used - to manage the actual database backing a DbContext or connection. - This includes creating, deleting, and checking for the existence of a database. - Note that deletion and checking for existence of a database can be performed using just a - connection (i.e. without a full context) by using the static methods of this class. - - - - - Enables the user to pass in a database transaction created outside of the object - if you want the Entity Framework to execute commands within that external transaction. - Alternatively, pass in null to clear the framework's knowledge of that transaction. - - the external transaction - Thrown if the transaction is already completed - - Thrown if the connection associated with the object is already enlisted in a - - transaction - - - Thrown if the connection associated with the object is already participating in a transaction - - Thrown if the connection associated with the transaction does not match the Entity Framework's connection - - - - Begins a transaction on the underlying store connection - - - a object wrapping access to the underlying store's transaction object - - - - - Begins a transaction on the underlying store connection using the specified isolation level - - The database isolation level with which the underlying store transaction will be created - - a object wrapping access to the underlying store's transaction object - - - - - Sets the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Runs the the registered on this context. - If "force" is set to true, then the initializer is run regardless of whether or not it - has been run before. This can be useful if a database is deleted while an app is running - and needs to be reinitialized. - If "force" is set to false, then the initializer is only run if it has not already been - run for this context, model, and connection in this app domain. This method is typically - used when it is necessary to ensure that the database has been created and seeded - before starting some operation where doing so lazily will cause issues, such as when the - operation is part of a transaction. - - - If set to true the initializer is run even if it has already been run. - - - - - Checks whether or not the database is compatible with the the current Code First model. - - - Model compatibility currently uses the following rules. - If the context was created using either the Model First or Database First approach then the - model is assumed to be compatible with the database and this method returns true. - For Code First the model is considered compatible if the model is stored in the database - in the Migrations history table and that model has no differences from the current model as - determined by Migrations model differ. - If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, - then this is used to check for compatibility. - - - If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. - - True if the model hash in the context and the database match; false otherwise. - - - - Creates a new database on the database server for the model defined in the backing context. - Note that calling this method before the database initialization strategy has run will disable - executing that strategy. - - - - - Creates a new database on the database server for the model defined in the backing context, but only - if a database with the same name does not already exist on the server. - - True if the database did not exist and was created; false otherwise. - - - - Checks whether or not the database exists on the server. - - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - Calling this method from outside of an initializer will mark the database as having - not been initialized. This means that if an attempt is made to use the database again - after it has been deleted, then any initializer set will run again and, usually, will - try to create the database again automatically. - - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - - An existing connection to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - - An existing connection to the database. - True if the database did exist and was deleted; false otherwise. - - - - Creates a raw SQL query that will return elements of the given generic type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Creates a raw SQL query that will return elements of the given type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local or ambient transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the connection being used by this context. This may cause the - connection to be created if it does not already exist. - - Thrown if the context has been disposed. - - - - The connection factory to use when creating a from just - a database name or a connection string. - - - This is used when just a database name or connection string is given to or when - the no database name or connection is given to DbContext in which case the name of - the context class is passed to this factory in order to generate a DbConnection. - By default, the instance to use is read from the application's .config - file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in - the config file then is used. Setting this property in code - always overrides whatever value is found in the config file. - - - - - Gets or sets the timeout value, in seconds, for all context operations. - The default value is null, where null indicates that the default value of the underlying - provider will be used. - - - The timeout, in seconds, or null to use the provider default. - - - - - Set this property to log the SQL generated by the to the given - delegate. For example, to log to the console, set this property to . - - - The format of the log text can be changed by creating a new formatter that derives from - and setting it with . - For more low-level control over logging/interception see and - . - - - - - DbModelBuilder is used to map CLR classes to a database schema. - This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. - - - DbModelBuilder is typically used to configure a model by overriding - DbContext.OnModelCreating(DbModelBuilder) - . - You can also use DbModelBuilder independently of DbContext to build a model and then construct a - or . - The recommended approach, however, is to use OnModelCreating in as - the workflow is more intuitive and takes care of common tasks, such as caching the created model. - Types that form your model are registered with DbModelBuilder and optional configuration can be - performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder - API. - When the Build method is called a set of conventions are run to discover the initial model. - These conventions will automatically discover aspects of the model, such as primary keys, and - will also process any data annotations that were specified on your classes. Finally - any configuration that was performed using the DbModelBuilder API is applied. - Configuration done via the DbModelBuilder API takes precedence over data annotations which - in turn take precedence over the default conventions. - - - - - Initializes a new instance of the class. - The process of discovering the initial model will use the set of conventions included - in the most recent version of the Entity Framework installed on your machine. - - - Upgrading to newer versions of the Entity Framework may cause breaking changes - in your application because new conventions may cause the initial model to be - configured differently. There is an alternate constructor that allows a specific - version of conventions to be specified. - - - - - Initializes a new instance of the class that will use - a specific set of conventions to discover the initial model. - - The version of conventions to be used. - - - - Excludes a type from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The type to be excluded. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Configures the default database schema name. This default database schema name is used - for database objects that do not have an explicitly configured schema name. - - The name of the default database schema. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Excludes the specified type(s) from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The types to be excluded from the model. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Registers an entity type as part of the model and returns an object that can be used to - configure the entity. This method can be called multiple times for the same entity to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified entity type. - - - - Registers an entity type as part of the model. - - The type to be registered. - - This method is provided as a convenience to allow entity types to be registered dynamically - without the need to use MakeGenericMethod in order to call the normal generic Entity method. - This method does not allow further configuration of the entity type using the fluent APIs since - these APIs make extensive use of generic type parameters. - - - - - Registers a type as a complex type in the model and returns an object that can be used to - configure the complex type. This method can be called multiple times for the same type to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified complex type. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types - in the model that inherit from or implement the type specified by the generic argument. - This method does not register types as part of the model. - - The type of the entities or complex types that this convention will apply to. - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Creates a based on the configuration performed using this builder. - The connection is used to determine the database provider being used as this - affects the database layer of the generated model. - - Connection to use to determine provider information. - The model that was built. - - - - Creates a based on the configuration performed using this builder. - Provider information must be specified because this affects the database layer of the generated model. - For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) - - The database provider that the model will be used with. - The model that was built. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to the settings of this DbModelBuilder that deal with conventions. - - - - - Gets the for this DbModelBuilder. - The registrar allows derived entity and complex type configurations to be registered with this builder. - - - - - A value from this enumeration can be provided directly to the - class or can be used in the applied to - a class derived from . The value used defines which version of - the DbContext and DbModelBuilder conventions should be used when building a model from - code--also known as "Code First". - - - Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available - when upgrading to a new release of the Entity Framework. However, it may result in an - application behaving differently with the new release than it did with a previous release. - This can be avoided by using a specific version of the conventions, but if a version - other than the latest is set then not all the latest functionality will be available. - - - - - Indicates that the latest version of the and - conventions should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v4.1 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - when targeting .Net Framework 4 should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v6.0 - should be used. - - - - - This attribute can be applied to a class derived from to set which - version of the DbContext and conventions should be used when building - a model from code--also known as "Code First". See the - enumeration for details about DbModelBuilder versions. - - - If the attribute is missing from DbContextthen DbContext will always use the latest - version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. - - - - - Initializes a new instance of the class. - - - The conventions version to use. - - - - - Gets the conventions version. - - - The conventions version. - - - - - A non-generic version of which can be used when the type of entity - is not known at build time. - - - - - Represents a non-generic LINQ to Entities query against a DbContext. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new DbQuery<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns the equivalent generic object. - - The type of element for which the query was created. - The generic set object. - - - - Returns a representation of the underlying query. - - The query string. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Returns the equivalent generic object. - - The type of entity for which the set was created. - The generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - A DbSet represents the collection of all entities in the context, or that can be queried from the - database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. - - - Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a - one-to-one correlation between a type and a set. - - The type that defines the set. - - - - Represents a LINQ to Entities query against a DbContext. - - The type of entity to query for. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns a representation of the underlying query. - - The query string. - - - - Returns a new instance of the non-generic class for this query. - - The query. - A non-generic version. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - An represents the collection of all entities in the context, or that - can be queried from the database, of a given type. is a concrete - implementation of IDbSet. - - - was originally intended to allow creation of test doubles (mocks or - fakes) for . However, this approach has issues in that adding new members - to an interface breaks existing code that already implements the interface without the new members. - Therefore, starting with EF6, no new members will be added to this interface and it is recommended - that be used as the base class for test doubles. - - The type that defines the set. - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - - - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - - - - - - - Returns the equivalent non-generic object. - - The generic set object. - The non-generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - - - - An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the - database the first time that a context is used in the app domain. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the - database only if the model has changed since the database was created. - - The type of the context. - - Whether or not the model has changed is determined by the - method. - To seed the database create a derived class and override the Seed method. - - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - Returned by the ChangeTracker method of to provide access to features of - the context that are related to change tracking of entities. - - - - - Gets objects for all the entities tracked by this context. - - The entries. - - - - Gets objects for all the entities of the given type - tracked by this context. - - The type of the entity. - The entries. - - - - Checks if the is tracking any new, deleted, or changed entities or - relationships that will be sent to the database if is called. - - - Functionally, calling this method is equivalent to checking if there are any entities or - relationships in the Added, Updated, or Deleted state. - Note that this method calls unless - has been set to false. - - - True if underlying have changes, else false. - - - - - Detects changes made to the properties and relationships of POCO entities. Note that some types of - entity (such as change tracking proxies and entities that derive from - ) - report changes automatically and a call to DetectChanges is not normally needed for these types of entities. - Also note that normally DetectChanges is called automatically by many of the methods of - and its related classes such that it is rare that this method will need to be called explicitly. - However, it may be desirable, usually for performance reasons, to turn off this automatic calling of - DetectChanges using the AutoDetectChangesEnabled flag from . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - A non-generic version of the class. - - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the name of the property. - - The property name. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the collection element. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Collection method of - and allow operations such as loading to - be performed on the an entity's collection navigation properties. - - The type of the entity to which this property belongs. - The type of the element in the collection of entities. - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Gets the name of the property. - The name of the property. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - An immutable representation of an Entity Data Model (EDM) model that can be used to create an - or can be passed to the constructor of a . - For increased performance, instances of this type should be cached and re-used to construct contexts. - - - - - Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance - of DbContext can be created instead by using the appropriate DbContext constructor. - If a derived ObjectContext is used, then it must have a public constructor with a single - EntityConnection parameter. - The connection passed is used by the ObjectContext created, but is not owned by the context. The caller - must dispose of the connection once the context has been disposed. - - The type of context to create. - An existing connection to a database for use by the context. - The context. - - - - A non-generic version of the class. - - - - - A non-generic version of the class. - - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - Setting this value to false for a modified property will revert the change by setting the - current value to the original value. If the result is that no properties of the entity are - marked as modified, then the entity will be marked as Unchanged. - Setting this value to false for properties of Added, Unchanged, or Deleted entities - is a no-op. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the complex property. - The equivalent generic object. - - - - Instances of this class are returned from the ComplexProperty method of - and allow access to the state of a complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Instances of this class are returned from the Property method of - and allow access to the state of the scalar - or complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Describes the origin of the database connection string associated with a . - - - - - The connection string was created by convention. - - - - - The connection string was read from external configuration. - - - - - The connection string was explicitly specified at runtime. - - - - - The connection string was overriden by connection information supplied to DbContextInfo. - - - - - Returned by the Configuration method of to provide access to configuration - options for the context. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets or sets a value indicating whether lazy loading of relationships exposed as - navigation properties is enabled. Lazy loading is enabled by default. - - - true if lazy loading is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether or not the framework will create instances of - dynamically generated proxy classes whenever it creates an instance of an entity type. - Note that even if proxy creation is enabled with this flag, proxy instances will only - be created for entity types that meet the requirements for being proxied. - Proxy creation is enabled by default. - - - true if proxy creation is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is false. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets or sets a value indicating whether the - method is called automatically by methods of and related classes. - The default value is true. - - - true if should be called automatically; otherwise, false. - - - - - Gets or sets a value indicating whether tracked entities should be validated automatically when - is invoked. - The default value is true. - - - - - Provides runtime information about a given type. - - - - - Creates a new instance representing a given type. - - - The type deriving from . - - - - - Creates a new instance representing a given targeting a specific database. - - - The type deriving from . - - Connection information for the database to be used. - - - - Creates a new instance representing a given type. An external list of - connection strings can be supplied and will be used during connection string resolution in place - of any connection strings specified in external configuration files. - - - It is preferable to use the constructor that accepts the entire config document instead of using this - constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config - to be found in addition to explicitly specified connection strings. - - - The type deriving from . - - A collection of connection strings. - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - - - - Creates a new instance representing a given , targeting a specific database. - An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - Connection information for the database to be used. - - - - Creates a new instance representing a given type. A - can be supplied in order to override the default determined provider used when constructing - the underlying EDM model. - - - The type deriving from . - - - A specifying the underlying ADO.NET provider to target. - - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - A can be supplied in order to override the default determined - provider used when constructing the underlying EDM model. This can be useful to prevent EF from - connecting to discover a manifest token. - - - The type deriving from . - - An object representing the config file. - - A specifying the underlying ADO.NET provider to target. - - - - - If instances of the underlying type can be created, returns - a new instance; otherwise returns null. - - - A instance. - - - - - The concrete type. - - - - - Whether or not instances of the underlying type can be created. - - - - - The connection string used by the underlying type. - - - - - The connection string name used by the underlying type. - - - - - The ADO.NET provider name of the connection used by the underlying type. - - - - - The origin of the connection string used by the underlying type. - - - - - An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. - - - - - A non-generic version of the class. - - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Returns a new instance of the generic class for the given - generic type for the tracked entity represented by this object. - Note that the type of the tracked entity must be compatible with the generic type or - an exception will be thrown. - - The type of the entity. - A generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Instances of this class provide access to information about and control of entities that - are being tracked by the . Use the Entity or Entities methods of - the context to obtain objects of this type. - - The type of the entity. - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - An expression representing the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - An expression representing the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The type of the member. - The name of the member. - An object representing the member. - - - - Returns a new instance of the non-generic class for - the tracked entity represented by this object. - - The object representing the tracked entity. - A non-generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Represents an Entity Data Model (EDM) created by the . - The Compile method can be used to go from this EDM representation to a - which is a compiled snapshot of the model suitable for caching and creation of - or instances. - - - - - Creates a for this mode which is a compiled snapshot - suitable for caching and creation of instances. - - The compiled model. - - - - Gets the provider information. - - - - - Gets the provider manifest. - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Gets the mapping model. - - - - - A collection of all the properties for an underlying entity or complex object. - - - An instance of this class can be converted to an instance of the generic class - using the Cast method. - Complex properties in the underlying entity or complex object are represented in - the property values as nested instances of this class. - - - - - Creates an object of the underlying type for this dictionary and hydrates it with property - values from this dictionary. - - The properties of this dictionary copied into a new object. - - - - Sets the values of this dictionary by reading values out of the given object. - The given object can be of any type. Any property on the object with a name that - matches a property name in the dictionary and can be read will be read. Other - properties will be ignored. This allows, for example, copying of properties from - simple Data Transfer Objects (DTOs). - - The object to read values from. - - - - Creates a new dictionary containing copies of all the properties in this dictionary. - Changes made to the new dictionary will not be reflected in this dictionary and vice versa. - - A clone of this dictionary. - - - - Sets the values of this dictionary by reading values from another dictionary. - The other dictionary must be based on the same type as this dictionary, or a type derived - from the type for this dictionary. - - The dictionary to read values from. - - - - Gets the value of the property just like using the indexed property getter but - typed to the type of the generic parameter. This is useful especially with - nested dictionaries to avoid writing expressions with lots of casts. - - The type of the property. - Name of the property. - The value of the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the set of names of all properties in this dictionary as a read-only set. - - The property names. - - - - Gets or sets the value of the property with the specified property name. - The value may be a nested instance of this class. - - The property name. - The value of the property. - - - - Groups a pair of strings that identify a provider and server version together into a single object. - - - Instances of this class act as the key for resolving a for a specific - provider from a . This is typically used when registering spatial services - in or when the spatial services specific to a provider is - resolved by an implementation of . - - - - - Creates a new object for a given provider invariant name and manifest token. - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - The manifest token is sometimes referred to as a version hint. - - - - - - - - - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - - - - - A non-generic version of the class. - - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Reference method of - and allow operations such as loading to - be performed on the an entity's reference navigation properties. - - The type of the entity to which this property belongs. - The type of the property. - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Exception thrown by when it was expected that SaveChanges for an entity would - result in a database update but in fact no rows in the database were affected. This usually indicates - that the database has been concurrently updated such that a concurrency token that was expected to match - did not actually match. - Note that state entries referenced by this exception are not serialized due to security and accesses to - the state entries after serialization will return null. - - - - - Exception thrown by when the saving of changes to the database fails. - Note that state entries referenced by this exception are not serialized due to security and accesses to the - state entries after serialization will return null. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Gets objects that represents the entities that could not - be saved to the database. - - The entries representing the entities that could not be saved. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Represents an entity used to store metadata about an EDM in the database. - - - - - Attempts to get the model hash calculated by Code First for the given context. - This method will return null if the context is not being used in Code First mode. - - The context. - The hash string. - - - - Gets or sets the ID of the metadata entity, which is currently always 1. - - The id. - - - - Gets or sets the model hash which is used to check whether the model has - changed since the database was created from it. - - The model hash. - - - - Contains methods used to access the Entity Data Model created by Code First in the EDMX form. - These methods are typically used for debugging when there is a need to look at the model that - Code First creates internally. - - - - - Uses Code First with the given context and writes the resulting Entity Data Model to the given - writer in EDMX form. This method can only be used with context instances that use Code First - and create the model internally. The method cannot be used for contexts created using Database - First or Model First, for contexts created using a pre-existing , or - for contexts created using a pre-existing . - - The context. - The writer. - - - - Writes the Entity Data Model represented by the given to the - given writer in EDMX form. - - An object representing the EDM. - The writer. - - - - A factory for creating derived instances. Implement this - interface to enable design-time services for context types that do not have a - public default constructor. - At design-time, derived instances can be created in order to enable specific - design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation - for derived types that do not have a public, default constructor, implement - this interface. Design-time services will auto-discover implementations of this interface that are in the - same assembly as the derived type. - - The type of the context. - - - - Creates a new instance of a derived type. - - An instance of TContext - - - - This convention causes DbModelBuilder to include metadata about the model - when it builds the model. When creates a model by convention it will - add this convention to the list of those used by the DbModelBuilder. This will then result in - model metadata being written to the database if the DbContext is used to create the database. - This can then be used as a quick check to see if the model has changed since the last time it was - used against the database. - This convention can be removed from the conventions by overriding - the OnModelCreating method on a derived DbContext class. - - - - - This convention uses the name of the derived - class as the container for the conceptual model built by - Code First. - - - - - Applies the convention to the given model. - - The container to apply the convention to. - The model. - - - - This convention uses the namespace of the derived - class as the namespace of the conceptual model built by - Code First. - - - - - Instances of this class are used internally to create constant expressions for - that are inserted into the expression tree to replace references to - and . - - The type of the element. - - - - The public property expected in the LINQ expression tree. - - The query. - - - - Instances of this class are used to create DbConnection objects for - SQL Server Compact Edition based on a given database name or connection string. - - - It is necessary to provide the provider invariant name of the SQL Server Compact - Edition to use when creating an instance of this class. This is because different - versions of SQL Server Compact Editions use different invariant names. - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server Compact Edition by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString - properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - - - - Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. - The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server Compact Edition based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The path to prepend to the database name that will form the file name used by - SQL Server Compact Edition when it creates or reads the database file. - The default value is "|DataDirectory|", which means the file will be placed - in the designated data directory. - - - - - The connection string to use for options to the database other than the 'Data Source'. - The Data Source will be prepended to this string based on the database name when - CreateConnection is called. - The default is the empty string, which means no other options will be used. - - - - - The provider invariant name that specifies the version of SQL Server Compact Edition - that should be used. - - - - - Instances of this class are used to create DbConnection objects for - SQL Server based on a given database name or connection string. By default, the connection is - made to '.\SQLEXPRESS'. This can be changed by changing the base connection - string when constructing a factory instance. - - - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with a default BaseConnectionString property of - 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. - - - - - Creates a new connection factory with the given BaseConnectionString property. - - The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog'. - The 'Initial Catalog' will be prepended to this string based on the database name when - CreateConnection is called. - The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. - - - - - This attribute can be applied to either an entire derived class or to - individual or properties on that class. When applied - any discovered or properties will still be included - in the model but will not be automatically initialized. - - - - - Thrown when a context is generated from the templates in Database First or Model - First mode and is then used in Code First mode. - - - Code generated using the T4 templates provided for Database First and Model First use may not work - correctly if used in Code First mode. To use these classes with Code First please add any additional - configuration using attributes or the DbModelBuilder API and then remove the code that throws this - exception. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Allows configuration to be performed for an complex type in a model. - A ComplexTypeConfiguration can be obtained via the ComplexType method on - or a custom type derived from ComplexTypeConfiguration - can be registered via the Configurations property on . - - The complex type to be configured. - - - - Allows configuration to be performed for a type in a model. - - The type to be configured. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Initializes a new instance of ComplexTypeConfiguration - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same ComplexTypeConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows derived configuration classes for entities and complex types to be registered with a - . - - - Derived configuration classes are created by deriving from - or and using a type to be included in the model as the generic - parameter. - Configuration can be performed without creating derived configuration classes via the Entity and ComplexType - methods on . - - - - - Discovers all types that inherit from or - in the given assembly and adds an instance - of each discovered type to this registrar. - - - Note that only types that are abstract or generic type definitions are skipped. Every - type that is discovered and added must provide a parameterless constructor. - - The assembly containing model configurations to add. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The entity type being configured. - The entity type configuration to be added. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The complex type being configured. - The complex type configuration to be added - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows the conventions used by a instance to be customized. - The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. - - - - - Discover all conventions in the given assembly and add them to the . - - - This method add all conventions ordered by type name. The order in which conventions are added - can have an impact on how they behave because it governs the order in which they are run. - All conventions found must have a parameterless public constructor. - - The assembly containing conventions to be added. - - - - Enables one or more conventions for the . - - The conventions to be enabled. - - - - Enables a convention for the . - - The type of the convention to be enabled. - - - - Enables a convention for the . This convention - will run after the one specified. - - The type of the convention after which the enabled one will run. - The convention to enable. - - - - Enables a configuration convention for the . This convention - will run before the one specified. - - The type of the convention before which the enabled one will run. - The convention to enable. - - - - Disables one or more conventions for the . - - The conventions to be disabled. - - - - Disables a convention for the . - The default conventions that are available for removal can be found in the - System.Data.Entity.ModelConfiguration.Conventions namespace. - - The type of the convention to be disabled. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. - This configuration functionality is available via the Code First Fluent API, see . - - The entity type to be mapped. - - - Initializes a new instance of the class. - - - - Configures the properties that will be included in this mapping fragment. - If this method is not called then all properties that have not yet been - included in a mapping fragment will be configured. - - An anonymous type including the properties to be mapped. - A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Re-maps all properties inherited from base types. - When configuring a derived type to be mapped to a separate table this will cause all properties to - be included in the table rather than just the non-inherited properties. This is known as - Table per Concrete Type (TPC) mapping. - - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name to be mapped to. - - Name of the table. - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name and schema to be mapped to. - - Name of the table. - Schema of the table. - The same configuration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the discriminator column used to differentiate between types in an inheritance hierarchy. - - The name of the discriminator column. - A configuration object to further configure the discriminator column and values. - - - - Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. - - The type of the property being used to discriminate between types. - A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object to further configure the discriminator condition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . - - - - - Configures a primitive column from an entity type. - - - - Configures the primitive column to be optional. - The same instance so that multiple calls can be chained. - - - Configures the primitive column to be required. - The same instance so that multiple calls can be chained. - - - Configures the data type of the primitive column used to store the property. - The same instance so that multiple calls can be chained. - The name of the database provider specific data type. - - - Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. - The same instance so that multiple calls can be chained. - The order that this column should appear in the database table. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Configures the column to allow the maximum length supported by the database provider. - The same instance so that multiple calls can be chained. - - - Configures the column to have the specified maximum length. - The same instance so that multiple calls can be chained. - The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. - - - Configures the column to be fixed length. - The same instance so that multiple calls can be chained. - - - Configures the column to be variable length. - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the condition to require a value in the property. - Rows that do not have a value assigned to column that this property is stored in are - assumed to be of the base type of this entity type. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a database column used to store a string values. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the column to allow the maximum length supported by the database provider. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - - The maximum length for the property. Setting 'null' will result in a default length being used for the column. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be variable length. - Columns are variable length by default. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be optional. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be required. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column. - - Name of the database provider specific data type. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column. - - The order that this column should appear in the database table. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to support Unicode string content. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the column supports Unicode string content. - - Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a discriminator column used to differentiate between types in an inheritance hierarchy. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a many relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be many:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an optional relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be optional:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A lambda expression representing the navigation property on the other end of the relationship. - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an required relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be required:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Base class for performing configuration of a relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures a relationship that can support cascade on delete functionality. - - - - - Configures cascade delete to be on for the relationship. - - - - - Configures whether or not cascade delete is on for the relationship. - - Value indicating if cascade delete is on or not. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a relationship that can support foreign key properties that are exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - The dependent entity type. - - - - Configures a relationship that can only support foreign key properties that are not exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the relationship to use foreign key property(s) that are not exposed in the object model. - The column(s) and table can be customized by specifying a configuration action. - If an empty configuration action is specified then column name(s) will be generated by convention. - If foreign key properties are exposed in the object model then use the HasForeignKey method. - Not all relationships support exposing foreign key properties in the object model. - - Action that configures the foreign key column(s) and table. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the relationship to use foreign key property(s) that are exposed in the object model. - If the foreign key property(s) are not exposed in the object model then use the Map method. - - The type of the key. - A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the column(s) for the foreign key. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for a database column that has been configured with . - The annotation value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The name of the column that was configured with the HasKey method. - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name and schema that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - Schema of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - - - - Configures the table and column mapping of a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the join table name for the relationship. - - Name of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the join table name and schema for the relationship. - - Name of the table. - Schema of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the join table. The annotation value can later be used when - processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the left foreign key. - The left foreign key points to the parent entity of the navigation property specified in the HasMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the right foreign key. - The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - Determines whether the specified object is equal to the current object. - true if the specified object is equal to the current object; otherwise, false. - The object to compare with the current object. - - - - - - - - - - - - - Configures a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - The type of the parent entity of the navigation property specified in the HasMany call. - The type of the parent entity of the navigation property specified in the WithMany call. - - - - Configures the foreign key column(s) and table used to store the relationship. - - Action that configures the foreign key column(s) and table. - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - The default conventions for procedure and parameter names will be used. - - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - - - Configuration to override the default conventions for procedure and parameter names. - - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a property with length facets for an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - Properties are variable length by default. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to allow the maximum length supported by the database provider. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to support Unicode string content. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Convention to process instances of found on properties in the model - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on foreign key properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on navigation properties in the model. - - - - - Convention to process instances of found on primitive properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to detect navigation properties to be inverses of each other when only one pair - of navigation properties exists between the related types. - - - - - - - - Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. - - - - - - - - Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. - - - - - Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties - - - - - Convention to set the table name to be a pluralized version of the entity type name. - - - - - - - - Convention to set precision to 18 and scale to 2 for decimal properties. - - - - - Initializes a new instance of with the default precision and scale. - - - - - Initializes a new instance of with the specified precision and scale. - - Precision - Scale - - - - - - - Convention to move primary key properties to appear first. - - - - - - - - Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. - - - - - - - - Base class for conventions that discover foreign key properties. - - - - - When overriden returns true if should be part of the foreign key. - - The association type being configured. - The dependent end. - The candidate property on the dependent end. - The principal end entity type. - A key property on the principal end that is a candidate target for the foreign key. - true if dependentProperty should be a part of the foreign key; otherwise, false. - - - - - - - Returns true if the convention supports pairs of entity types that have multiple associations defined between them. - - - - - Convention to process instances of found on navigation properties in the model. - - - - - - - - Convention to detect primary key properties. - Recognized naming patterns in order of precedence are: - 1. 'Id' - 2. [type name]Id - Primary key detection is case insensitive. - - - - - Base class for conventions that discover primary key properties. - - - - - - - - When overriden returns the subset of properties that will be part of the primary key. - - The entity type. - The primitive types of the entities - The properties that should be part of the primary key. - - - - - - - Convention to discover foreign key properties whose names are a combination - of the dependent navigation property name and the principal type primary key property name(s). - - - - - - - - - - - Convention to enable cascade delete for any required relationships. - - - - - - - - Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. - - - - - - - - Convention to set the entity set name to be a pluralized version of the entity type name. - - - - - - - - Convention to discover foreign key properties whose names match the principal type primary key property name(s). - - - - - - - - Convention to set a maximum length for properties whose type supports length facets. The default value is 128. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The maximum lenght of properties. - - - - - - - - - - - - - Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The default maximum length for properties. - - - - - - - - - - Convention to configure integer primary keys to be identity. - - - - - - - - Convention to discover foreign key properties whose names are a combination - of the principal type name and the principal type primary key property name(s). - - - - - - - - Allows configuration to be performed for an entity type in a model. - An EntityTypeConfiguration can be obtained via the Entity method on - or a custom type derived from EntityTypeConfiguration - can be registered via the Configurations property on . - - The entity type being configured. - - - - Initializes a new instance of EntityTypeConfiguration - - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how this entity type is mapped to the database schema. - By default, any configuration will also apply to any type derived from this entity type. - Derived types can be configured via the overload of Map that configures a derived type or - by using an EntityTypeConfiguration for the derived type. - The properties of an entity can be split between multiple tables using multiple Map calls. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how a derived entity type is mapped to the database schema. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - The derived entity type to be configured. - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures an optional relationship from this entity type. - Instances of the entity type will be able to be saved to the database without this relationship being specified. - The foreign key in the database will be nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a required relationship from this entity type. - Instances of the entity type will not be able to be saved to the database unless this relationship is specified. - The foreign key in the database will be non-nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a many relationship from this entity type. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Exception thrown by during model creation when an invalid model is generated. - - - - - Initializes a new instance of ModelValidationException - - - - - Initializes a new instance of ModelValidationException - - The exception message. - - - - Initializes a new instance of ModelValidationException - - The exception message. - The inner exception. - - - Initializes a new instance of class serialization info and streaming context. - The serialization info. - The streaming context. - - - - Exception thrown from when validating entities fails. - - - - - Initializes a new instance of DbEntityValidationException. - - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - The inner exception. - - - - Validation results. - - - - - Represents validation results for single entity. - - - - - Creates an instance of class. - - Entity entry the results applies to. Never null. - - List of instances. Never null. Can be empty meaning the entity is valid. - - - - - Gets an instance of the results applies to. - - - - - Gets validation errors. Never null. - - - - - Gets an indicator if the entity is valid. - - - - - Exception thrown from when an exception is thrown from the validation - code. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and - context. - - The serialization info. - The streaming context. - - - - Validation error. Can be either entity or property level validation error. - - - - - Creates an instance of . - - Name of the invalid property. Can be null. - Validation error message. Can be null. - - - - Gets name of the invalid property. - - - - - Gets validation error message. - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.dll b/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.dll deleted file mode 100644 index e4f2e35cb..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.xml b/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.xml deleted file mode 100644 index 2fcd48a66..000000000 --- a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.SqlServer.xml +++ /dev/null @@ -1,2043 +0,0 @@ - - - - EntityFramework.SqlServer - - - - - Contains extension methods for the class. - - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - - The type of the result produced by the associated . - - The task to be awaited on. - An object used to await this task. - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - The task to be awaited on. - An object used to await this task. - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - - The type of the result produced by the associated . - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The result of the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - An that retries actions that throw exceptions caused by SQL Azure transient failures. - - - This execution strategy will retry the operation on and - if the contains any of the following error numbers: - 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for - number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the ASCII code value of the left-most character of a character expression. - The ASCII code of the first character in the input string. - A valid string. - - - Returns the character that corresponds to the specified integer ASCII value. - The character that corresponds to the specified ASCII value. - An ASCII code. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - - A of value that is the starting position of target if it is found in toSearch . - - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch at which searching begins. - - - Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. - The SOUNDEX difference between the two strings. - The first string. - The second string. - - - Returns the Unicode character with the specified integer code, as defined by the Unicode standard. - The character that corresponds to the input character code. - A character code. - - - Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. - The starting character position where the string pattern was found. - A string pattern to search for. - The string to search. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with brackets added. - The expression that quote characters will be added to. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with the specified quote characters added. - The expression that quote characters will be added to. - The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. - - - Repeats a string value a specified number of times. - The target string, repeated the number of times specified by count . - A valid string. - The value that specifies how many time to repeat target . - - - Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. - The SOUNDEX code of the input string. - A valid string. - - - Returns a string of repeated spaces. - A string that consists of the specified number of spaces. - The number of spaces. If negative, a null string is returned. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. - A string consisting of the two strings. - The target string. - The character position in stringinput where the replacement string is to be inserted. - The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . - The substring to be inserted into stringInput . - - - Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. - The character code for the first character in the input string. - A valid string. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - The angle, in radians, defined by the input cosine value. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - An angle, measured in radians. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the constant value of pi. - The numeric value of pi. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns a new datetime value based on adding an interval to the specified date. - The new date. - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new time span value based on adding an interval to the specified time span. - The new time span. - The part of the date to increment. - The value used to increment a date by a specified amount. - The time span to increment. - - - Returns a new date value based on adding an interval to the specified date. - The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new datetime value based on adding an interval to the specified date. - - A of value that is the new date. - - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The value specifying the number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two Dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The the specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database timestamp. - - - Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database UTC timestamp. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input values. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the current date and time. - The current date and time. - - - Returns the name of the current user. - The name of the current user. - - - Returns the workstation name. - The name of the workstation. - - - Returns a database user name corresponding to a specified identification number. - The user name. - A user ID. - - - Returns a database user name corresponding to a specified identification number. - The user name. - - - Indicates whether the input value is a valid numeric type. - 1 if the input expression is a valid numeric data type; otherwise, 0. - A string expression. - - - Indicates whether the input value is a valid date or time. - 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. - The tested value. - - - - Provider to convert provider agnostic migration operations into SQL commands - that can be run against a Microsoft SQL Server database. - - - - - Converts a set of migration operations into Microsoft SQL Server specific SQL. - - The operations to be converted. - Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Generates the specified update database operation which represents applying a series of migrations. - The generated script is idempotent, meaning it contains conditional logic to check if individual migrations - have already been applied and only apply the pending ones. - - The update database operation. - - - - Generates SQL for a . - Allows derived providers to handle additional operation types. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Creates an empty connection for the current provider. - Allows derived providers to use connection other than . - - An empty connection for the current provider. - - - - Generates the specified create procedure operation. - - The create procedure operation. - - - - Generates the specified alter procedure operation. - - The alter procedure operation. - - - - Generates the specified drop procedure operation. - - The drop procedure operation. - - - - Generates SQL for a . This method differs from - in that it will - create the target database schema if it does not already exist. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Writes CREATE TABLE SQL to the target writer. - - The operation to produce SQL for. - The target writer. - - - - Override this method to generate SQL when the definition of a table or its attributes are changed. - The default implementation of this method does nothing. - - The operation describing changes to the table. - - - - Generates SQL to mark a table as a system table. - Generated SQL should be added using the Statement method. - - The table to mark as a system table. - The to write the generated SQL to. - - - - Generates SQL to create a database schema. - Generated SQL should be added using the Statement method. - - The name of the schema to create. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Call this method to generate SQL that will attempt to drop the default constraint created - when a column is created. This method is usually called by code that overrides the creation or - altering of columns. - - The table to which the constraint applies. - The column to which the constraint applies. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement or StatementBatch methods. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates the specified rename procedure operation. - - The rename procedure operation. - - - - Generates the specified move procedure operation. - - The move procedure operation. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for the given column model. This method is called by other methods that - process columns and can be overridden to change the SQL generated. - - The column for which SQL is being generated. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL to specify a constant byte[] default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant bool default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTime default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTimeOffset default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant Guid default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant string default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant TimeSpan default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geogrpahy default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geometry default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify the data type of a column. - This method just generates the actual type, not the SQL to create the column. - - The definition of the column. - SQL representing the data type. - - - - Generates a quoted name. The supplied name may or may not contain the schema. - - The name to be quoted. - The quoted name. - - - - Quotes an identifier for SQL Server. - - The identifier to be quoted. - The quoted identifier. - - - - Adds a new Statement to be executed against the database. - - The statement to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - The batch terminator for the database provider. - - - - Gets a new that can be used to build SQL. - This is just a helper method to create a writer. Writing to the writer will - not cause SQL to be registered for execution. You must pass the generated - SQL to the Statement method. - - An empty text writer to use for SQL generation. - - - - Adds a new Statement to be executed against the database. - - The writer containing the SQL to be executed. - The batch terminator for the database provider. - - - - Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. - - The SQL to split into one ore more statements to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - - - - Returns the column default value to use for store-generated GUID columns when - no default value is explicitly specified in the migration. - Returns newsequentialid() for on-premises SQL Server 2005 and later. - Returns newid() for SQL Azure. - - Either newsequentialid() or newid() as described above. - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geography instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. - The geography value. - - - Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geography instance is less than or equal to a specified value - The geography value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. - the maximum angle between the point returned by EnvelopeCenter(). - The geography value. - - - Returns a point that can be used as the center of a bounding circle for the geography instance. - A SqlGeography value that specifies the location of the center of a bounding circle. - The geography value. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geography value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Tests if the SqlGeography instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geography value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Returns the total number of rings in a Polygon instance. - The total number of rings. - The geography value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geography value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). - A SqlGeography object that represents the ring specified by n. - The geography value. - An int expression between 1 and the number of rings in a polygon instance. - - - Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geometry instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. - The geometry value. - - - Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geometry instance is less than or equal to a specified value - The geometry value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Tests if the SqlGeometry instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geometry value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geometry value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. - The converted geometry instance. - The geometry value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geometry value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - - The DbProviderServices implementation for the SqlClient provider for SQL Server. - - - Note that instance of this type also resolve additional provider services for Microsoft SQL Server - when this type is registered as an EF provider either using an entry in the application's config file - or through code-based registration in . - The services resolved are: - Requests for are resolved to a Singleton instance of - to create connections to SQL Express by default. - Requests for for the invariant name "System.Data.SqlClient" - for any server name are resolved to a delegate that returns a - to provide a non-retrying policy for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to instances to provide default Migrations SQL - generation for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to a Singleton instance of to provide default spatial - services for SQL Server. - - - - - This is the well-known string using in configuration files and code-based configuration as - the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and - Entity Framework provider services. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object, given the connection and command tree - - provider manifest that was determined from metadata - command tree for the statement - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - can cause deadlocks. - So here overriding to provide a method that does not clone DesignTimeVisible. - - the object to clone (must be a ) - a clone of the - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - - Returns the provider manifest by using the specified version information. - - The token information associated with the provider manifest. - The provider manifest by using the specified version information. - - - - Gets a spatial data reader for SQL Server. - - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Gets a spatial data reader for SQL Server. - - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Create the database and the database objects. - If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. - Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. - However if we try to replicate the name under which it would be attached, the following scenario would fail: - The file does not exist, but registered with database. - The user calls: If (DatabaseExists) DeleteDatabase - CreateDatabase - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Delete the database for the given connection. - There are three cases: - 1. If Initial Catalog is specified (X) drop database X - 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F - if none throw - 3. If niether the catalog not the file name is specified - throw - Note that directly deleting the files does not work for a remote server. However, even for not attached - databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase - - Connection - Timeout for internal commands. - Item Collection. - - - - The Singleton instance of the SqlProviderServices type. - - - - - Set this flag to false to prevent values from being truncated to - the scale (number of decimal places) defined for the column. The default value is true, - indicating that decimal values will be truncated, in order to prevent breaking existing - applications that depend on this behavior. - - - With this flag set to true objects are created with their Scale - properties set. When this flag is set to false then the Scale properties are not set, meaning - that the truncation behavior of SqlParameter is avoided. - - - - - An implementation of to provide support for geospatial types when using - Entity Framework with Microsoft SQL Server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.dll b/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.dll deleted file mode 100644 index 1d6a181c8..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.xml b/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.xml deleted file mode 100644 index 21d941ff2..000000000 --- a/packages/EntityFramework.6.1.2-beta1/lib/net45/EntityFramework.xml +++ /dev/null @@ -1,52709 +0,0 @@ - - - - EntityFramework - - - - - Represents a result mapping for a function import. - - - - - Base class for items in the mapping space (DataSpace.CSSpace) - - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Gets the type mappings. - - - - - Specifies a mapping condition evaluated by checking whether the value - of the a property/column is null or not null. - - - - - Mapping metadata for Conditional property mapping on a type. - Condition Property Mapping specifies a Condition either on the C side property or S side property. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the condition property map elements in the - above example. - - - - - Mapping metadata for all types of property mappings. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all property map elements in the - above example. This includes the scalar property maps, complex property maps - and end property maps. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped column. - - - - - Creates an IsNullConditionMapping instance. - - An EdmProperty that specifies a property or column. - A boolean that indicates whether to perform a null or a not-null check. - - - - Gets a bool that specifies whether the condition is evaluated by performing a null check - or a not-null check. - - - - - Specifies a mapping condition evaluated by comparing the value of - a property or column with a given value. - - - - - Creates a ValueConditionMapping instance. - - An EdmProperty that specifies a property or column. - An object that specifies the value to compare with. - - - - Gets an object that specifies the value to check against. - - - - - Serializes an that conforms to the restrictions of a single - CSDL schema file to an XML writer. The model to be serialized must contain a single - . - - - - - Serialize the to the XmlWriter. - - - The EdmModel to serialize. - - The XmlWriter to serialize to. - The serialized model's namespace. - true if the model is valid; otherwise, false. - - - - Occurs when an error is encountered serializing the model. - - - - - Information about an error that occurred processing an Entity Framework model. - - - - - Gets an optional value indicating which property of the source item caused the event to be raised. - - - - - Gets an optional descriptive message the describes the error that is being raised. - - - - - Gets a value indicating the that caused the event to be raised. - - - - - Contains additional attributes and properties of the - - - Note that objects are short lived and exist only to - make initialization easier. Instance of this type are not - compared to each other and arrays returned by array properties are copied to internal - collections in the ctor. Therefore it is fine to suppress the - Code Analysis messages. - - - - Gets or sets the function schema. - The function schema. - - - Gets or sets the store function name. - The store function name. - - - Gets or sets the command text associated with the function. - The command text associated with the function. - - - Gets or sets the entity sets for the function. - The entity sets for the function. - - - Gets a value that indicates whether this is an aggregate function. - true if this is an aggregate function; otherwise, false. - - - Gets or sets whether this function is a built-in function. - true if this function is a built-in function; otherwise, false. - - - Gets or sets whether the function contains no arguments. - true if the function contains no arguments; otherwise, false. - - - Gets or sets whether this function can be composed. - true if this function can be composed; otherwise, false. - - - Gets or sets whether this function is from a provider manifest. - true if this function is from a provider manifest; otherwise, false. - - - Gets or sets whether this function is a cached store function. - true if this function is a cached store function; otherwise, false. - - - Gets or sets whether this function is a function import. - true if this function is a function import; otherwise, false. - - - Gets or sets the return parameters. - The return parameters. - - - Gets or sets the parameter type semantics. - The parameter type semantics. - - - Gets or sets the function parameters. - The function parameters. - - - - Serializes the storage (database) section of an to XML. - - - - - Serialize the to the - - The EdmModel to serialize - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Serialize the to the - - The EdmModel to serialize - Namespace name on the Schema element - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Occurs when an error is encountered serializing the model. - - - - Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. - - - Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. - The type of the result produced by the visitor. - - - When overridden in a derived class, handles any expression of an unrecognized type. - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern method for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - Typed visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - An instance of TResultType. - - - - Initializes a new instance of the - - class. - - - - Replaces an old expression with a new one for the expression visitor. - The old expression. - The new expression. - - - Represents an event when the variable is rebound for the expression visitor. - The location of the variable. - The reference of the variable where it is rebounded. - - - Represents an event when entering the scope for the expression visitor with specified scope variables. - The collection of scope variables. - - - Exits the scope for the expression visitor. - - - Implements the visitor pattern for the expression. - The implemented visitor pattern. - The expression. - - - Implements the visitor pattern for the expression list. - The implemented visitor pattern. - The expression list. - - - Implements the visitor pattern for expression binding. - The implemented visitor pattern. - The expression binding. - - - Implements the visitor pattern for the expression binding list. - The implemented visitor pattern. - The expression binding list. - - - Implements the visitor pattern for the group expression binding. - The implemented visitor pattern. - The binding. - - - Implements the visitor pattern for the sort clause. - The implemented visitor pattern. - The sort clause. - - - Implements the visitor pattern for the sort order. - The implemented visitor pattern. - The sort order. - - - Implements the visitor pattern for the aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the function aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the group aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the Lambda function. - The implemented visitor pattern. - The lambda function. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the basic functionality required by expression types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the different kinds of constants. - The implemented visitor. - The constant expression. - - - Implements the visitor pattern for a reference to a typed null literal. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a variable that is currently in scope. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for an invocation of a function. - The implemented visitor. - The function expression. - - - Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. - The implemented visitor. - The expression. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the comparison operation applied to two arguments. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the null determination applied to a single argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the arithmetic operation applied to numeric arguments. - The implemented visitor. - The arithmetic expression. - - - Implements the visitor pattern for the logical AND expression. - The implemented visitor. - The logical AND expression. - - - Implements the visitor pattern for the logical OR of two Boolean arguments. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the DbInExpression. - The implemented visitor. - The DbInExpression that is being visited. - - - Implements the visitor pattern for the logical NOT of a single Boolean argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the removed duplicate elements from the specified set argument. - The implemented visitor. - The distinct expression. - - - Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. - The implemented visitor. - The element expression. - - - Implements the visitor pattern for an empty set determination applied to a single set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set union operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set intersection operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set subtraction operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type comparison of a single argument against the specified type. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type conversion of a single argument to the specified type. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for the When, Then, and Else clauses. - The implemented visitor. - The case expression. - - - Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the navigation of a relationship. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. - The implemented visitor. - The DEREF expression. - - - Implements the visitor pattern for the retrieval of the key value from the underlying reference value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. - The implemented visitor. - The entity reference expression. - - - Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a predicate applied to filter an input set. - The implemented visitor. - The filter expression. - - - Implements the visitor pattern for the projection of a given input set over the specified expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the unconditional join operation between the given collection arguments. - The implemented visitor. - The join expression. - - - Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. - The implemented visitor. - The APPLY expression. - - - Implements the visitor pattern for a group by operation. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the skip expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a sort key that can be used as part of the sort order. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. - The implemented visitor. - The expression. - - - - When this attribute is placed on a property it indicates that the database column to which the - property is mapped has an index. - - - This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Creates a instance for an index that will be named by convention and - has no column order, clustering, or uniqueness specified. - - - - - Creates a instance for an index with the given name and - has no column order, clustering, or uniqueness specified. - - The index name. - - - - Creates a instance for an index with the given name and column order, - but with no clustering or uniqueness specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - The index name. - A number which will be used to determine column ordering for multi-column indexes. - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - The index name. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no - column order has been specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Set this property to true to define a clustered index. Set this property to false to define a - non-clustered index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Set this property to true to define a unique index. Set this property to false to define a - non-unique index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Returns a different ID for each object instance such that type descriptors won't - attempt to combine all IndexAttribute instances into a single instance. - - - - - A class derived from this class can be placed in the same assembly as a class derived from - to define Entity Framework configuration for an application. - Configuration is set by calling protected methods and setting protected properties of this - class in the constructor of your derived type. - The type to use can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Any class derived from must have a public parameterless constructor - and that constructor should call this constructor. - - - - - The Singleton instance of for this app domain. This can be - set at application start before any Entity Framework features have been used and afterwards - should be treated as read-only. - - The instance of . - - - - Attempts to discover and load the associated with the given - type. This method is intended to be used by tooling to ensure that - the correct configuration is loaded into the app domain. Tooling should use this method - before accessing the property. - - A type to use for configuration discovery. - - - - Attempts to discover and load the from the given assembly. - This method is intended to be used by tooling to ensure that the correct configuration is loaded into - the app domain. Tooling should use this method before accessing the - property. If the tooling knows the type being used, then the - method should be used since it gives a greater chance that - the correct configuration will be found. - - An to use for configuration discovery. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The exceptions to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - - A implementation is automatically registered as a default resolver - when it is added with a call to . This allows EF providers to act as - resolvers for other services that may need to be overridden by the provider. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to register - an Entity Framework provider. - - - Note that the provider is both registered as a service itself and also registered as a default resolver with - a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that - may need to be overridden by the provider. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register - an ADO.NET provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for - and . This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - A function that returns a new instance of an execution strategy. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A function that returns a new instance of an execution strategy. - A string that will be matched against the server name in the connection string. - - - - Call this method from the constructor of a class derived from to register a - . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - A string that will be matched against the server name in the connection string. - - - - Sets the that is used to create connections by convention if no other - connection string or connection is given to or can be discovered by . - Note that a default connection factory is set in the app.config or web.config file whenever the - EntityFramework NuGet package is installed. As for all config file settings, the default connection factory - set in the config file will take precedence over any setting made with this method. Therefore the setting - must be removed from the config file before calling this method will have any effect. - Call this method from the constructor of a class derived from to change - the default connection factory being used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The connection factory. - - - - Call this method from the constructor of a class derived from to - set the pluralization service. - - The pluralization service to use. - - - - Call this method from the constructor of a class derived from to - set the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - - Calling this method is equivalent to calling . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is typically used by providers to register an associated SQL generator for Code First Migrations. - It is different from setting the generator in the because it allows - EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project - and/or Migrations are not being explicitly used. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - A delegate that returns a new instance of the SQL generator each time it is called. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows provider manifest tokens to - be obtained from connections without necessarily opening the connection. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The manifest token resolver. - - - - Call this method from the constructor of a class derived from to set - a factory for implementations of which allows custom annotations - represented by instances to be serialized to and from the EDMX XML. - - - Note that an is not needed if the annotation uses a simple string value. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The name of custom annotation that will be handled by this serializer. - A delegate that will be used to create serializer instances. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows a - to be obtained from a in cases where the default implementation is not - sufficient. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The provider factory service. - - - - Call this method from the constructor of a class derived from to set - a as the model cache key factory which allows the key - used to cache the model behind a to be changed. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can - be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The key factory. - - - - Call this method from the constructor of a class derived from to set - a delegate which which be used for - creation of the default for a any - . This default factory will only be used if no factory is - set explicitly in the and if no factory has been registered - for the provider in use using the - - method. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - a delegate which allows for creation of a customized - for the given provider for any - that does not have an explicit factory set. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - the global instance of which will be used whenever a spatial provider is - required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider - is obtained from the a implementation which is in turn returned by resolving - a service for passing the provider invariant name as a key. However, this - cannot work for stand-alone instances of and since - it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances - of and the global spatial provider is always used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider and provider - manifest token. - - - Use - to register spatial services for use only when a specific manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The indicating the type of ADO.NET connection for which this spatial provider will be used. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider with any - manifest token. - - - Use - to register spatial services for use when any manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - a factory for the type of to use with . - - - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - instance onto before any commands will be logged. - For more low-level control over logging/interception see and - . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A delegate that will create formatter instances. - - - - Call this method from the constructor of a class derived from to - register an at application startup. Note that interceptors can also - be added and removed at any time using . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The interceptor to register. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to register - a database table existence checker for a given provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The table existence checker to use. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Occurs during EF initialization after the DbConfiguration has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that this event should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - - - - Gets the that is being used to resolve service - dependencies in the Entity Framework. - - - - - This attribute can be placed on a subclass of to indicate that the subclass of - representing the code-based configuration for the application is in a different - assembly than the context type. - - - Normally a subclass of should be placed in the same assembly as - the subclass of used by the application. It will then be discovered automatically. - However, if this is not possible or if the application contains multiple context types in different - assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. - An alternative to using this attribute is to specify the DbConfiguration type to use in the application's - config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. - - - - - Indicates that the given subclass of should be used for code-based configuration - for this application. - - - The type to use. - - - - - Indicates that the subclass of represented by the given assembly-qualified - name should be used for code-based configuration for this application. - - - The type to use. - - - - - Gets the subclass of that should be used for code-based configuration - for this application. - - - - Implements the basic functionality required by aggregates in a GroupBy clause. - - - - Gets the result type of this . - - - The result type of this . - - - - - Gets the list of expressions that define the arguments to this - - . - - - The list of expressions that define the arguments to this - - . - - - - Represents the logical AND of two Boolean arguments. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept two expression operands. - - - Represents the base type for all expressions. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - The type of the result produced by . - - - An instance of . - - The type of the result produced by visitor. - - - - Determines whether the specified is equal to the current DbExpression instance. - - - True if the specified is equal to the current DbExpression instance; otherwise, false. - - - The object to compare to the current . - - - - Serves as a hash function for the type. - A hash code for the current expression. - - - - Creates a that represents the specified binary value, which may be null - - - A that represents the specified binary value. - - The binary value on which the returned expression should be based. - - - - Enables implicit casting from a byte array. - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Boolean value. - - - A that represents the specified Boolean value. - - The Boolean value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) byte value. - - - A that represents the specified byte value. - - The byte value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTime value. - - The DateTime value on which the returned expression should be based. - - - - Enables implicit casting from . - - The expression to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTimeOffset value. - - The DateTimeOffset value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) decimal value. - - - A that represents the specified decimal value. - - The decimal value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) double value. - - - A that represents the specified double value. - - The double value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeography value. - - The DbGeography value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeometry value. - - The DbGeometry value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified Guid value. - - The Guid value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int16 value. - - - A that represents the specified Int16 value. - - The Int16 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int32 value. - - - A that represents the specified Int32 value. - - The Int32 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int64 value. - - - A that represents the specified Int64 value. - - The Int64 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Single value. - - - A that represents the specified Single value. - - The Single value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified string value. - - - A that represents the specified string value. - - The string value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - Gets the type metadata for the result type of the expression. - The type metadata for the result type of the expression. - - - Gets the kind of the expression, which indicates the operation of this expression. - The kind of the expression, which indicates the operation of this expression. - - - - Gets the that defines the left argument. - - - The that defines the left argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the left argument. - - - - - Gets the that defines the right argument. - - - The that defines the right argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the right argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - - Gets the that specifies the function that is invoked for each element in the input set. - - - The that specifies the function that is invoked for each element in the input set. - - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Represents an arithmetic operation applied to numeric arguments. - Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. - This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the list of elements that define the current arguments. - - - A fixed-size list of elements. - - - - - Represents the When, Then, and Else clauses of the - - . This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets the When clauses of this . - - - The When clauses of this . - - - - - Gets the Then clauses of this . - - - The Then clauses of this . - - - - - Gets the Else clause of this . - - - The Else clause of this . - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the result type of the - - . - - - - Represents the type conversion of a single argument to the specified type. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept a single expression argument. - - - - Gets the that defines the argument. - - - The that defines the argument. - - The expression is null. - - The expression is not associated with the command tree of a - - , or its result type is not equal or promotable to the required type for the argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes the different "kinds" (classes) of command trees. - - - - - A query to retrieve data - - - - - Update existing data - - - - - Insert new data - - - - - Deleted existing data - - - - - Call a function - - - - Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. - - DbComparisonExpression requires that its arguments have a common result type - that is equality comparable (for .Equals and .NotEquals), - order comparable (for .GreaterThan and .LessThan), - or both (for .GreaterThanOrEquals and .LessThanOrEquals). - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents different kinds of constants (literals). This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Gets the constant value. - The constant value. - - - Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets a list that provides the input sets to the join. - - - A list that provides the input sets to the join. - - - - Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Removes duplicate elements from the specified set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the set subtraction operation between the left and right operands. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes a binding for an expression. Conceptually similar to a foreach loop - in C#. The DbExpression property defines the collection being iterated over, - while the Var property provides a means to reference the current element - of the collection during the iteration. DbExpressionBinding is used to describe the set arguments - to relational expressions such as , - and . - - - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - The variable reference. - - - Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that specifies the predicate used to filter the input set. - - - The that specifies the predicate used to filter the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - Represents an invocation of a function. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the function to invoke. - The metadata for the function to invoke. - - - - Gets an list that provides the arguments to the function. - - - An list that provides the arguments to the function. - - - - Represents a collection of elements that compose a group. - - - Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set and provides access to the set element and group element variables. - - - The that specifies the input set and provides access to the set element and group element variables. - - - - - Gets a list that provides grouping keys. - - - A list that provides grouping keys. - - - - - Gets a list that provides the aggregates to apply. - - - A list that provides the aggregates to apply. - - - - Represents the set intersection operation between the left and right operands. This class cannot be inherited. - - DbIntersectExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents an empty set determination applied to a single set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents null determination applied to a single argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the type comparison of a single argument against the specified type. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the type metadata that the type metadata of the argument should be compared to. - The type metadata that the type metadata of the argument should be compared to. - - - Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that provides the left input. - - - The that provides the left input. - - - - - Gets the that provides the right input. - - - The that provides the right input. - - - - Gets the join condition to apply. - The join condition to apply. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - - Allows the application of a lambda function to arguments represented by - - objects. - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of . - - visitor is null - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - The type of the result produced by the expression visitor. - - An instance of a typed that produces a result value of type TResultType. - - The type of the result produced by visitor - visitor is null - - - - Gets the representing the Lambda function applied by this expression. - - - The representing the Lambda function applied by this expression. - - - - - Gets a list that provides the arguments to which the Lambda function should be applied. - - - The list. - - - - Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the string to compare against the given pattern. - An expression that specifies the string to compare against the given pattern. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that specifies the pattern against which the given string should be compared. - An expression that specifies the pattern against which the given string should be compared. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that provides an optional escape string to use for the comparison. - An expression that provides an optional escape string to use for the comparison. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Represents the restriction of the number of elements in the argument collection to the specified limit value. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the input collection. - An expression that specifies the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a collection type. - - - - Gets an expression that specifies the limit on the number of elements returned from the input collection. - An expression that specifies the limit on the number of elements returned from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or is not one of - - or - - , or its result type is not equal or promotable to a 64-bit integer type. - - - - - Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the - - value. - - true if the limit operation will include tied results; otherwise, false. The default is false. - - - Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets an list that provides the property/column values or set elements for the new instance. - - - An list that provides the property/column values or set elements for the new instance. - - - - Represents the logical NOT of a single Boolean argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a typed null literal. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata of the type of elements that should be retrieved from the set argument. - The metadata of the type of elements that should be retrieved from the set argument. - - - Represents the logical OR of two Boolean arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced parameter. - The name of the referenced parameter. - - - Represents the projection of a given input set over the specified expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that defines the projection. - - - The that defines the projection. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the current projection. - - - - Provides methods and properties for retrieving an instance property. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Creates a new key/value pair based on this property expression. - - A new key/value pair with the key and value derived from the - - . - - - - - Enables implicit casting to . - - The expression to be converted. - The converted value. - - - Gets the property metadata for the property to retrieve. - The property metadata for the property to retrieve. - - - - Gets a that defines the instance from which the property should be retrieved. - - - A that defines the instance from which the property should be retrieved. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the type that defines the property. - - - - Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - Gets the Boolean predicate that should be evaluated for each element in the input set. - The Boolean predicate that should be evaluated for each element in the input set. - The expression is null. - - The expression is not associated with the command tree for the - - ,or its result type is not a Boolean type. - - - - Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the entity set that contains the instance. - The metadata for the entity set that contains the instance. - - - Represents the navigation of a relationship. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the relationship over which navigation occurs. - The metadata for the relationship over which navigation occurs. - - - Gets the metadata for the relationship end to navigate from. - The metadata for the relationship end to navigate from. - - - Gets the metadata for the relationship end to navigate to. - The metadata for the relationship end to navigate to. - - - - Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. - - - An that specifies the instance of the source relationship end from which navigation should occur. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the - - property. - - - - - Skips a specified number of elements in the input set. - - can only be used after the input collection has been sorted as specified by the sort keys. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Gets an expression that specifies the number of elements to skip from the input collection. - An expression that specifies the number of elements to skip from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - ; the expression is not either a - - or a - - ; or the result type of the expression is not equal or promotable to a 64-bit integer type. - - - - - Specifies a sort key that can be used as part of the sort order in a - - . This class cannot be inherited. - - - - Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. - true if this sort key uses an ascending sort order; otherwise, false. - - - Gets a string value that specifies the collation for this sort key. - A string value that specifies the collation for this sort key. - - - - Gets the that provides the value for this sort key. - - - The that provides the value for this sort key. - - - - Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by - visitor - - - visitor - is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. - - - Gets a value indicating whether this aggregate is a distinct aggregate. - true if the aggregate is a distinct aggregate; otherwise, false. - - - Gets the method metadata that specifies the aggregate function to invoke. - The method metadata that specifies the aggregate function to invoke. - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - Defines the basic functionality that should be implemented by visitors that do not return a result value. - - - When overridden in a derived class, handles any expression of an unrecognized type. - The expression to be handled. - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - Visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - - - - Convenience method to visit the specified . - - The DbUnaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbBinaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbExpressionBinding to visit. - - - is null - - - - - Convenience method for post-processing after a DbExpressionBinding has been visited. - - The previously visited DbExpressionBinding. - - - - Convenience method to visit the specified . - - The DbGroupExpressionBinding to visit. - - - is null - - - - - Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. - - The DbGroupExpressionBinding of the DbGroupByExpression - - - - Convenience method for post-processing after a DbGroupExpressionBinding has been visited. - - The previously visited DbGroupExpressionBinding. - - - - Convenience method indicating that the body of a Lambda is now about to be visited. - - The DbLambda that is about to be visited - - - is null - - - - - Convenience method for post-processing after a DbLambda has been visited. - - The previously visited DbLambda. - - - - Convenience method to visit the specified , if non-null. - - The expression to visit. - - - is null - - - - - Convenience method to visit each in the given list, if the list is non-null. - - The list of expressions to visit. - - - is null - - - - - Convenience method to visit each in the list, if the list is non-null. - - The list of aggregates to visit. - - - is null - - - - - Convenience method to visit the specified . - - The aggregate to visit. - - - is null - - - - - Called when an of an otherwise unrecognized type is encountered. - - The expression - - - is null - - - Always thrown if this method is called, since it indicates that - - is of an unsupported type - - - - - Visitor pattern method for . - - The DbConstantExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbVariableReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbParameterReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFunctionExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLambdaExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbPropertyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbComparisonExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLikeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLimitExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbArithmeticExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbAndExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOrExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbInExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNotExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbDistinctExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbElementExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsEmptyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbUnionAllExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIntersectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExceptExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOfTypeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbTreatExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCastExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsOfExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCaseExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNewInstanceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRelationshipNavigationExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DeRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefKeyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbEntityRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbScanExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFilterExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbProjectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCrossJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbApplyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSkipExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSortExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbQuantifierExpression that is being visited. - - - is null - - - - Implements the visitor pattern for the set clause. - The set clause. - - - Implements the visitor pattern for the modification clause. - The modification clause. - - - Implements the visitor pattern for the collection of modification clauses. - The modification clauses. - - - Implements the visitor pattern for the command tree. - The command tree. - - - Implements the visitor pattern for the delete command tree. - The delete command tree. - - - Implements the visitor pattern for the function command tree. - The function command tree. - - - Implements the visitor pattern for the insert command tree. - The insert command tree. - - - Implements the visitor pattern for the query command tree. - The query command tree. - - - Implements the visitor pattern for the update command tree. - The update command tree. - - - An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. - - - - Returns a that represents this command. - - - A that represents this command. - - - - - Gets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is true. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets the name and corresponding type of each parameter that can be referenced within this - - . - - - The name and corresponding type of each parameter that can be referenced within this - - . - - - - - Gets the kind of this command tree. - - - - - Gets the metadata workspace used by this command tree. - - - - - Gets the data space in which metadata used by this command tree must reside. - - - - Represents a single row delete operation expressed as a command tree. This class cannot be inherited. - - - Represents a data manipulation language (DML) operation expressed as a command tree. - - - - Gets the that specifies the target table for the data manipulation language (DML) operation. - - - The that specifies the target table for the DML operation. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be deleted. - - - - Gets an that specifies the predicate used to determine which members of the target collection should be deleted. - - - The predicate can include only the following elements: - - Equality expression - Constant expression - IsNull expression - Property expression - Reference expression to the target - And expression - Or expression - Not expression - - - - An that specifies the predicate used to determine which members of the target collection should be deleted. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - - Contains values that each expression class uses to denote the operation it represents. The - - property of an - - can be retrieved to determine which operation that expression represents. - - - - - True for all. - - - - - Logical And. - - - - - True for any. - - - - - Conditional case statement. - - - - - Polymorphic type cast. - - - - - A constant value. - - - - - Cross apply - - - - - Cross join - - - - - Dereference. - - - - - Duplicate removal. - - - - - Division. - - - - - Set to singleton conversion. - - - - - Entity ref value retrieval. - - - - - Equality - - - - - Set subtraction - - - - - Restriction. - - - - - Full outer join - - - - - Invocation of a stand-alone function - - - - - Greater than. - - - - - Greater than or equal. - - - - - Grouping. - - - - - Inner join - - - - - Set intersection. - - - - - Empty set determination. - - - - - Null determination. - - - - - Type comparison (specified Type or Subtype). - - - - - Type comparison (specified Type only). - - - - - Left outer join - - - - - Less than. - - - - - Less than or equal. - - - - - String comparison. - - - - - Result count restriction (TOP n). - - - - - Subtraction. - - - - - Modulo. - - - - - Multiplication. - - - - - Instance, row, and set construction. - - - - - Logical Not. - - - - - Inequality. - - - - - Null. - - - - - Set members by type (or subtype). - - - - - Set members by (exact) type. - - - - - Logical Or. - - - - - Outer apply. - - - - - A reference to a parameter. - - - - - Addition. - - - - - Projection. - - - - - Retrieval of a static or instance property. - - - - - Reference. - - - - - Ref key value retrieval. - - - - - Navigation of a (composition or association) relationship. - - - - - Entity or relationship set scan. - - - - - Skip elements of an ordered collection. - - - - - Sorting. - - - - - Type conversion. - - - - - Negation. - - - - - Set union (with duplicates). - - - - - A reference to a variable. - - - - - Application of a lambda function - - - - - In. - - - - Represents the invocation of a database function. - - - - Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - The that represents the function that is being invoked. - The expected result type for the function’s first result set. - The function's parameters. - - , or is null - - - does not represent a valid data space or - is a composable function - - - - - Gets the that represents the function that is being invoked. - - - The that represents the function that is being invoked. - - - - Gets the expected result type for the function’s first result set. - The expected result type for the function’s first result set. - - - Gets or sets the command tree kind. - The command tree kind. - - - Represents a single row insert operation expressed as a command tree. This class cannot be inherited. - - Represents a single row insert operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar value indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - The list of insert set clauses that define the insert operation. . - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of insert set clauses that define the insert operation. - The list of insert set clauses that define the insert operation. - - - - Gets an that specifies a projection of results to be returned based on the modified rows. - - - An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. - - - - Gets the command tree kind. - The command tree kind. - - - - Represents a Lambda function that can be invoked to produce a - - . - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null - - - - contains more than one element with the same variable name. - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null. - - - - contains more than one element with the same variable name. - - - - - Creates a new with a single argument of the specified type, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. - - A that defines the EDM type of the argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A that defines the EDM type of the sixteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - Gets the body of the lambda expression. - - A that represents the body of the lambda function. - - - - Gets the parameters of the lambda expression. - The list of lambda function parameters represented as DbVariableReferenceExpression objects. - - - - Specifies a single clause in an insert or update modification operation, see - and - - - An abstract base class allows the possibility of patterns other than - Property = Value in future versions, e.g., - update SomeTable - set ComplexTypeColumn.SomeProperty() - where Id = 2 - - - - Represents a query operation expressed as a command tree. This class cannot be inherited. - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - A boolean that indicates whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - - - or - - is null - - - - does not represent a valid data space - - - - - Gets an that defines the logic of the query operation. - - - An that defines the logic of the query operation. - - The expression is null. - The expression is associated with a different command tree. - - - Gets the kind of this command tree. - The kind of this command tree. - - - Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. - - - - Gets an that specifies the property that should be updated. - - - An that specifies the property that should be updated. - - - - - Gets an that specifies the new value with which to update the property. - - - An that specifies the new value with which to update the property. - - - - Represents a single-row update operation expressed as a command tree. This class cannot be inherited. - - Represents a single-row update operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be updated. - The list of update set clauses that define the update operation. - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of update set clauses that define the update operation. - The list of update set clauses that define the update operation. - - - - Gets an that specifies a projection of results to be returned, based on the modified rows. - - - An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. - - - - - Gets an that specifies the predicate used to determine which members of the target collection should be updated. - - - An that specifies the predicate used to determine which members of the target collection should be updated. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - Represents a reference to a variable that is currently in scope. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced variable. - The name of the referenced variable. - - - - Defines the binding for the input set to a . - In addition to the properties of , DbGroupExpressionBinding - also provides access to the group element via the variable reference - and to the group aggregate via the property. - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the result type of the current value of the property. - - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - A reference to the element variable. - - - Gets the name assigned to the group element variable. - The name assigned to the group element variable. - - - Gets the type metadata of the group element variable. - The type metadata of the group element variable. - - - - Gets the that references the group element variable. - - A reference to the group element variable. - - - - Gets the that represents the collection of elements in the group. - - The elements in the group. - - - - Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. - - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - - Creates a new that uses a generated variable name to bind the given expression. - - A new expression binding with the specified expression and a generated variable name. - The expression to bind. - input is null. - input does not have a collection result. - - - - Creates a new that uses the specified variable name to bind the given expression - - A new expression binding with the specified expression and variable name. - The expression to bind. - The variable name that should be used for the binding. - input or varName is null. - input does not have a collection result. - - - Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. - A new group expression binding with the specified expression and a generated variable name and group variable name. - The expression to bind. - input is null. - input does not have a collection result type. - - - - Creates a new that uses the specified variable name and group variable names to bind the given expression. - - A new group expression binding with the specified expression, variable name and group variable name. - The expression to bind. - The variable name that should be used for the binding. - The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. - input, varName or groupVarName is null. - input does not have a collection result type. - - - - Creates a new . - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new that is applied in a distinct fashion. - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument is null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new over the specified argument - - The argument over which to perform the nest operation - A new group aggregate representing the elements of the group referenced by the given argument. - - - is null - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a new with an ascending sort order and default collation. - - A new sort clause with the given sort key and ascending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and default collation. - - A new sort clause with the given sort key and descending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with an ascending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and ascending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and descending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that unconditionally joins the sets specified by the list of input expression bindings. - - - A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. - - A list of expression bindings that specifies the input sets. - inputs is null or contains null element. - inputs contains fewer than 2 expression bindings. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbFilterExpression that produces the filtered set. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. - - A new DbGroupByExpression with the specified input set, grouping keys and aggregates. - - A that specifies the input set. - - A list of string-expression pairs that define the grouping columns. - A list of expressions that specify aggregates to apply. - input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. - Both keys and aggregates are empty, or an invalid or duplicate column name was specified. - - - - Creates a new that projects the specified expression over the given input set. - - A new DbProjectExpression that represents the projection operation. - An expression binding that specifies the input set. - An expression to project over the set. - input or projection is null. - - - - Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. - - A new DbSkipExpression that represents the skip operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - An expression the specifies how many elements of the ordered set to skip. - input, sortOrder or count is null, or sortOrder contains null. - - sortOrder is empty, or count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that sorts the given input set by the specified sort specifications. - - A new DbSortExpression that represents the sort operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - input or sortOrder is null, or sortOrder contains null. - sortOrder is empty. - - - - Creates a new , which represents a typed null value. - - An instance of DbNullExpression. - The type of the null value. - nullType is null. - - - - Creates a new with the given constant value. - - A new DbConstantExpression with the given value. - The constant value to represent. - value is null. - value is not an instance of a valid constant type. - - - - Creates a new of the specified primitive type with the given constant value. - - A new DbConstantExpression with the given value and a result type of constantType. - The type of the constant value. - The constant value to represent. - value or constantType is null. - value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. - - - - Creates a new that references a parameter with the specified name and type. - - A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced parameter. - The name of the referenced parameter. - - - - Creates a new that references a variable with the specified name and type. - - A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced variable. - The name of the referenced variable. - - - - Creates a new that references the specified entity or relationship set. - - A new DbScanExpression based on the specified entity or relationship set. - Metadata for the entity or relationship set to reference. - targetSet is null. - - - - Creates an that performs the logical And of the left and right arguments. - - A new DbAndExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left and right does not have a Boolean result type. - - - - Creates an that performs the logical Or of the left and right arguments. - - A new DbOrExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left or right does not have a Boolean result type. - - - - Creates a that matches the result of the specified - expression with the results of the constant expressions in the specified list. - - A DbExpression to be matched. - A list of DbConstantExpression to test for a match. - - A new DbInExpression with the specified arguments. - - - - or - - is null. - - - The result type of - - is different than the result type of an expression from - . - - - - - Creates a that performs the logical negation of the given argument. - - A new DbNotExpression with the specified argument. - A Boolean expression that specifies the argument. - argument is null. - argument does not have a Boolean result type. - - - - Creates a new that divides the left argument by the right argument. - - A new DbArithmeticExpression representing the division operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left or right. - - - - Creates a new that subtracts the right argument from the left argument. - - A new DbArithmeticExpression representing the subtraction operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that computes the remainder of the left argument divided by the right argument. - - A new DbArithmeticExpression representing the modulo operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that multiplies the left argument by the right argument. - - A new DbArithmeticExpression representing the multiplication operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that adds the left argument to the right argument. - - A new DbArithmeticExpression representing the addition operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that compares the left and right arguments for equality. - - A new DbComparisonExpression representing the equality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that compares the left and right arguments for inequality. - - A new DbComparisonExpression representing the inequality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than the right argument. - - A new DbComparisonExpression representing the greater-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than the right argument. - - A new DbComparisonExpression representing the less-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than or equal to the right argument. - - A new DbComparisonExpression representing the greater-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than or equal to the right argument. - - A new DbComparisonExpression representing the less-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common result type that is both equality- and order-comparable exists between left and right. - - - - Creates a new that determines whether the specified argument is null. - - A new DbIsNullExpression with the specified argument. - An expression that specifies the argument. - argument is null. - argument has a collection result type. - - - - Creates a new that compares the specified input string to the given pattern. - - A new DbLikeExpression with the specified input, pattern and a null escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - Argument or pattern is null. - Argument or pattern does not have a string result type. - - - - Creates a new that compares the specified input string to the given pattern using the optional escape. - - A new DbLikeExpression with the specified input, pattern and escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - An optional expression that specifies the escape string. - argument, pattern or escape is null. - argument, pattern or escape does not have a string result type. - - - - Creates a new that applies a cast operation to a polymorphic argument. - - A new DbCastExpression with the specified argument and target type. - The argument to which the cast should be applied. - Type metadata that specifies the type to cast to. - Argument or toType is null. - The specified cast is not valid. - - - - Creates a new . - - A new DbTreatExpression with the specified argument and type. - An expression that specifies the instance. - Type metadata for the treat-as type. - argument or treatType is null. - treatType is not in the same type hierarchy as the result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - A that specifies the input set. - - Type metadata for the type that elements of the input set must have to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - An that specifies the input set. - - Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that determines whether the given argument is of the specified type or a subtype. - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new that retrieves a specific Entity given a reference expression. - - A new DbDerefExpression that retrieves the specified Entity. - - An that provides the reference. This expression must have a reference Type. - - argument is null. - argument does not have a reference result type. - - - - Creates a new that retrieves the ref of the specifed entity in structural form. - - A new DbEntityRefExpression that retrieves a reference to the specified entity. - The expression that provides the entity. This expression must have an entity result type. - argument is null. - argument does not have an entity result type. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - entitySet or keyRow is null. - keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - The type of the Entity that the reference should refer to. - entitySet, keyRow or entityType is null. - entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that retrieves the key values of the specifed reference in structural form. - - A new DbRefKeyExpression that retrieves the key values of the specified reference. - The expression that provides the reference. This expression must have a reference Type with an Entity element type. - argument is null. - argument does not have a reference result type. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - An expression that specifies the instance from which navigation should occur. - Metadata for the property that represents the end of the relationship from which navigation should occur. - Metadata for the property that represents the end of the relationship to which navigation should occur. - fromEnd, toEnd or navigateFrom is null. - fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - Metadata for the relation type that represents the relationship. - The name of the property of the relation type that represents the end of the relationship from which navigation should occur. - The name of the property of the relation type that represents the end of the relationship to which navigation should occur. - An expression the specifies the instance from which naviagtion should occur. - type, fromEndName, toEndName or navigateFrom is null. - type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. - - - - Creates a new that removes duplicates from the given set argument. - - A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. - An expression that defines the set over which to perfom the distinct operation. - argument is null. - argument does not have a collection result type. - - - - Creates a new that converts a set into a singleton. - - A DbElementExpression that represents the conversion of the set argument to a singleton. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is an empty set. - - A new DbIsEmptyExpression with the specified argument. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that computes the subtraction of the right set argument from the left set argument. - - A new DbExceptExpression that represents the difference of the left argument from the right argument. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left and right. - - - - Creates a new that computes the intersection of the left and right set arguments. - - A new DbIntersectExpression that represents the intersection of the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left or right. - - - - Creates a new that computes the union of the left and right set arguments and does not remove duplicates. - - A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new . - - A new DbCaseExpression with the specified cases and default result. - A list of expressions that provide the conditional for of each case. - A list of expressions that provide the result of each case. - An expression that defines the result when no case is matched. - whenExpressions or thenExpressions is null or contains null, or elseExpression is null. - whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - A list of expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - Expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new Expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - A list of expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - Expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null.. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs an empty collection of the specified collection type. - - A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. - The type metadata for the collection to create - collectionType is null. - collectionType is not a collection type. - - - - Creates a new that produces a row with the specified named columns and the given values, specified as expressions. - - A new DbNewInstanceExpression that represents the construction of the row. - A list of string-DbExpression key-value pairs that defines the structure and values of the row. - columnValues is null or contains an element with a null column name or expression. - columnValues is empty, or contains a duplicate or invalid column name. - - - - Creates a new representing the retrieval of the specified property. - - A new DbPropertyExpression representing the property retrieval. - The instance from which to retrieve the property. May be null if the property is static. - Metadata for the property to retrieve. - propertyMetadata is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the specified navigation property. - - A new DbPropertyExpression representing the navigation property retrieval. - The instance from which to retrieve the navigation property. - Metadata for the navigation property to retrieve. - navigationProperty or instance is null. - - - - Creates a new representing the retrieval of the specified relationship end member. - - A new DbPropertyExpression representing the relationship end member retrieval. - The instance from which to retrieve the relationship end member. - Metadata for the relationship end member to retrieve. - relationshipEnd is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the instance property with the specified name from the given instance. - - A new DbPropertyExpression that represents the property retrieval. - The instance from which to retrieve the property. - The name of the property to retrieve. - propertyName is null or instance is null and the property is not static. - No property with the specified name is declared by the type of instance. - - - - Creates a new representing setting a property to a value. - - The property to be set. - The value to set the property to. - The newly created set clause. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression that specifies the input set. - A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by Predicate does not have a Boolean result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - source is null. - source does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - Source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - outer, inner, outerKey or innerKey is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The expressions produced by outerKey and innerKey are not comparable for equality. - - - - Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an - - of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - - A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The type of the selector . - outer, inner, outerKey, innerKey or selector is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The result of selector is null after conversion to DbExpression. - The expressions produced by outerKey and innerKey is not comparable for equality. - The result of Selector is not compatible with SelectMany. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that selects the specified expression over the given input set. - - A new DbProjectExpression that represents the select operation. - An expression that specifies the input set. - - A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a - - . Compatibility requirements for TProjection are described in remarks. - - The method result type of projection. - source or projection is null. - The result of projection is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the apply column from each row, producing the overall collection of apply results. - - - An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - source or apply is null. - The expression produced by apply is null. - source does not have a collection result type. - The expression produced by apply does not have a collection type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the specified selector over each row, producing the overall collection of results. - - - An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - - A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The method result type of selector. - source, apply or selector is null. - The expression produced by apply is null. - The result of selector is null on conversion to DbExpression. - source does not have a collection result type. - The expression produced by apply does not have a collection type. does not have a collection type. - - - - Creates a new that skips the specified number of elements from the given sorted input set. - - A new DbSkipExpression that represents the skip operation. - - A that specifies the sorted input set. - - An expression the specifies how many elements of the ordered set to skip. - argument or count is null. - - count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that computes the union of the left and right set arguments with duplicates removed. - - A new DbExpression that computes the union, without duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Gets a with the Boolean value true. - - - A with the Boolean value true. - - - - - Gets a with the Boolean value false. - - - A with the Boolean value false. - - - - - Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the average value. - An expression that specifies the collection from which the average value should be computed. - - - - Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the maximum value. - An expression that specifies the collection from which the maximum value should be retrieved - - - - Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the minimum value. - An expression that specifies the collection from which the minimum value should be retrieved. - - - - Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the sum. - An expression that specifies the collection from which the sum should be computed. - - - - Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. - - A new DbFunctionExpression that produces the concatenated string. - An expression that specifies the string that should appear first in the concatenated result string. - An expression that specifies the string that should appear second in the concatenated result string. - - - - Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. - An expression that specifies the string to search for any occurence of searchedForString. - An expression that specifies the string to search for in searchedString. - - - - Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. - An expression that specifies the string that is searched at the end for string suffix. - An expression that specifies the target string that is searched for at the end of stringArgument. - - - - Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the first index of stringToFind in searchString. - An expression that specifies the string to search for stringToFind. - An expression that specifies the string to locate within searchString should be checked. - - - - Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the leftmost substring. - An expression that specifies the length of the leftmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the length of stringArgument. - An expression that specifies the string for which the length should be computed. - - - - Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. - An expression that specifies the string in which to perform the replacement operation. - An expression that specifies the string that is replaced. - An expression that specifies the replacement string. - - - - Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that produces the reversed value of stringArgument. - An expression that specifies the string to reverse. - - - - Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the rightmost substring. - An expression that specifies the length of the rightmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. - An expression that specifies the string that is searched at the start for string prefix. - An expression that specifies the target string that is searched for at the start of stringArgument. - - - - Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. - - A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. - An expression that specifies the string from which to extract the substring. - An expression that specifies the starting index from which the substring should be taken. - An expression that specifies the length of the substring. - - - - Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to lower case. - An expression that specifies the string that should be converted to lower case. - - - - Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to upper case. - An expression that specifies the string that should be converted to upper case. - - - - Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. - An expression that specifies the string from which leading and trailing space should be removed. - - - - Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with trailing space removed. - An expression that specifies the string from which trailing space should be removed. - - - - Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading space removed. - An expression that specifies the string from which leading space should be removed. - - - - Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer year value from dateValue. - An expression that specifies the value from which the year should be retrieved. - - - - Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer month value from dateValue. - An expression that specifies the value from which the month should be retrieved. - - - - Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day value from dateValue. - An expression that specifies the value from which the day should be retrieved. - - - - Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day of year value from dateValue. - An expression that specifies the value from which the day within the year should be retrieved. - - - - Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer hour value from timeValue. - An expression that specifies the value from which the hour should be retrieved. - - - - Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer minute value from timeValue. - An expression that specifies the value from which the minute should be retrieved. - - - - Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer second value from timeValue. - An expression that specifies the value from which the second should be retrieved. - - - - Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer millisecond value from timeValue. - An expression that specifies the value from which the millisecond should be retrieved. - - - - Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. - An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. - - - - Creates a that invokes the canonical 'CurrentDateTime' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'CurrentDateTimeOffset' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CurrentUtcDateTime' function. - - A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that returns the value of dateValue with time set to zero. - An expression that specifies the value for which the time portion should be truncated. - - - - Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. - - A new DbFunctionExpression that returns a new DateTime based on the specified values. - An expression that provides the year value for the new DateTime instance. - An expression that provides the month value for the new DateTime instance. - An expression that provides the day value for the new DateTime instance. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. - - A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. - An expression that provides the year value for the new DateTimeOffset instance. - An expression that provides the month value for the new DateTimeOffset instance. - An expression that provides the day value for the new DateTimeOffset instance. - An expression that provides the hour value for the new DateTimeOffset instance. - An expression that provides the minute value for the new DateTimeOffset instance. - An expression that provides the second value for the new DateTimeOffset instance. - An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. - - A new DbFunctionExpression that returns a new Time based on the specified values. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of years to add to dateValue. - - - - Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of months to add to dateValue. - - - - Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of days to add to dateValue. - - - - Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of hours to add to timeValue. - - - - Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of minutes to add to timeValue. - - - - Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of seconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of milliseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of microseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of nanoseconds to add to timeValue. - - - - Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value. - An expression that specifies the numeric value to round. - - - - Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to round. - An expression that specifies the number of digits of precision to use when rounding. - - - - Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the largest integer value not greater than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the smallest integer value not less than than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the absolute value of value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to truncate. - An expression that specifies the number of digits of precision to use when truncating. - - - - Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. - - A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. - An expression that specifies the numeric value to raise to the given power. - An expression that specifies the power to which baseArgument should be raised. - - - - Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. - An expression that specifies the first operand. - - - - Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'NewGuid' function. - - A new DbFunctionExpression that returns a new GUID value. - - - - Provides a constructor-like means of calling - - . - - - - - Initializes a new instance of the class with the specified first column value and optional successive column values. - - A key-value pair that provides the first column in the new row instance. (required) - A key-value pairs that provide any subsequent columns in the new row instance. (optional) - - - - Creates a new that constructs a new row based on the columns contained in this Row instance. - - A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. - - - - Converts the given Row instance into an instance of - - The Row instance. - A DbExpression based on the Row instance - - - is null. - - - - - - Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geometry value based on the specified value. - An expression that provides the well known text representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known text representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known text representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known text representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known text representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known text representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known text representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known text representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified binary value. - An expression that provides the well known binary representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known binary representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known binary representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known binary representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known binary representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geography value based on the specified value. - An expression that provides the well known text representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known text representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. - - The canonical 'GeographyPointFromText' function. - An expression that provides the well-known text representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. - - - - Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known text representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known text representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known text representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known text representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known text representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified binary value. - An expression that provides the well known binary representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known binary representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography point value based on the specified values. - An expression that provides the well known binary representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. - - - - Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known binary representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known binary representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known binary representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known binary representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known binary representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer SRID value from spatialValue. - An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. - - - - Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. - An expression that specifies the value from which the Geometry Type name should be retrieved. - - - - Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the Dimension value from spatialValue. - An expression that specifies the value from which the Dimension value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. - An expression that specifies the value from which the Envelope value should be retrieved. - - - - Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. - - A new DbFunctionExpression that returns the well known binary representation of spatialValue. - An expression that specifies the spatial value from which the well known binary representation should be produced. - - - - Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. - An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. - - - - Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the well known text representation of spatialValue. - An expression that specifies the spatial value from which the well known text representation should be produced. - - - - Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. - An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. - - - - Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. - The geometry value. - - - - Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the boundary for geometryValue. - An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. - - - - Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. - An expression that specifies the geometry value which should be tested for spatial validity. - - - - Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for equality. - - - - Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. - - - - Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. - - - - Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. - - - - Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. - An expression that specifies the spatial value. - An expression that specifies the buffer distance. - - - - Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. - - - - Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the convex hull for geometryValue. - An expression that specifies the geometry value from which the convex hull value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the union with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. - - - - Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value. - An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. - - - - Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. - - - - Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Latitude value should be retrieved. - - - - Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Longitude value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the length should be retrieved. - - - - Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the start point should be retrieved. - - - - Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the end point should be retrieved. - - - - Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. - - - - Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. - An expression that specifies the geometry curve value from which the IsRing value should be retrieved. - - - - Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value from which the number of points should be retrieved. - - - - Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value. - An expression that specifies the position of the point to be retrieved from within the line string. - - - - Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. - An expression that specifies the spatial surface value for which the area should be calculated. - - - - Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the centroid should be retrieved. - - - - Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the point should be retrieved. - - - - Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. - The geometry value. - An expression that specifies the position of the interior ring to be retrieved from within the polygon. - - - - Ensures that all metadata in a given expression tree is from the specified metadata workspace, - potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. - - - - Initializes a new instance of the class. - The target workspace. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - - Represents a boolean expression that tests whether a specified item matches any element in a list. - - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of DbExpressionVisitor. - - - is null - - - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - - An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. - - The type of the result produced by - - - - is null - - - An instance of . - - - - - Gets a DbExpression that specifies the item to be matched. - - - - - Gets the list of DbExpression to test for a match. - - - - - Represents the retrieval of the key value of the specified Reference as a row. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents the set union (without duplicate removal) operation between the left and right operands. - - - DbUnionAllExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents a 'scan' of all elements of a given entity set. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the referenced entity or relationship set. - The metadata for the referenced entity or relationship set. - - - - Extension methods for . - - - - - Gets the conceptual model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the conceptual model. - - - - Gets the store model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the store model. - - - - An interface to get the underlying store and conceptual model for a . - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Inherit from this class to create a service that allows for code generation of custom annotations as part of - scaffolding Migrations. The derived class should be set onto the . - - - Note that an is not needed if the annotation uses a simple string value, - or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. - - - - - Override this method to return additional namespaces that should be included in the code generated for the - scaffolded migration. The default implementation returns an empty enumeration. - - The names of the annotations that are being included in the generated code. - A list of additional namespaces to include. - - - - Implement this method to generate code for the given annotation value. - - The name of the annotation for which a value is being generated. - The annotation value. - The writer to which generated code should be written. - - - - Represents a pair of annotation values in a scaffolded or hand-coded . - - - Code First allows for custom annotations to be associated with columns and tables in the - generated model. This class represents a pair of annotation values in a migration such - that when the Code First model changes the old annotation value and the new annotation - value can be provided to the migration and used in SQL generation. - - - - - Creates a new pair of annotation values. - - The old value of the annotation, which may be null if the annotation has just been created. - The new value of the annotation, which may be null if the annotation has been deleted. - - - - - - - - - - Returns true if both annotation pairs contain the same values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if both pairs contain the same values. - - - - Returns true if the two annotation pairs contain different values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if the pairs contain different values. - - - - Gets the old value of the annotation, which may be null if the annotation has just been created. - - - - - Gets the new value of the annotation, which may be null if the annotation has been deleted. - - - - - Returned by and related methods to indicate whether or - not one object does not conflict with another such that the two can be combined into one. - - - If the two objects are not compatible then information about why they are not compatible is contained - in the property. - - - - - Creates a new instance. - - Indicates whether or not the two tested objects are compatible. - - An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. - - - - - Implicit conversion to a bool to allow the result object to be used directly in checks. - - The object to convert. - True if the result is compatible; false otherwise. - - - - True if the two tested objects are compatible; otherwise false. - - - - - If is true, then returns an error message indicating how the two tested objects - are incompatible. - - - - - Types used as custom annotations can implement this interface to indicate that an attempt to use - multiple annotations with the same name on a given table or column may be possible by merging - the multiple annotations into one. - - - Normally there can only be one custom annotation with a given name on a given table or - column. If a table or column ends up with multiple annotations, for example, because - multiple CLR properties map to the same column, then an exception will be thrown. - However, if the annotation type implements this interface, then the two annotations will be - checked for compatibility using the method and, if compatible, - will be merged into one using the method. - - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new merged annotation. This method is - only expected to succeed if returns true. - - The annotation to merge with this one. - A new merged annotation. - - - - Instances of this class are used as custom annotations for representing database indexes in an - Entity Framework model. - - - An index annotation is added to a Code First model when an is placed on - a mapped property of that model. This is used by Entity Framework Migrations to create indexes on - mapped database columns. Note that multiple index attributes on a property will be merged into a - single annotation for the column. Similarly, index attributes on multiple properties that map to the - same column will be merged into a single annotation for the column. This means that one index - annotation can represent multiple indexes. Within an annotation there can be only one index with any - given name. - - - - - The name used when this annotation is stored in Entity Framework metadata or serialized into - an SSDL/EDMX file. - - - - - Creates a new annotation for the given index. - - An index attributes representing an index. - - - - Creates a new annotation for the given collection of indexes. - - Index attributes representing one or more indexes. - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - - Each index annotation contains at most one with a given name. - Two annotations are considered compatible if each IndexAttribute with a given name is only - contained in one annotation or the other, or if both annotations contain an IndexAttribute - with the given name. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. - - - Each index annotation contains at most one with a given name. - The merged annotation will contain IndexAttributes from both this and the other annotation. - If both annotations contain an IndexAttribute with the same name, then the merged annotation - will contain one IndexAttribute with that name. - - The annotation to merge with this one. - A new annotation with indexes from both annotations merged. - - The other annotation contains indexes that are not compatible with indexes in this annotation. - - - - - - - - Gets the indexes represented by this annotation. - - - - - This class is used to serialize and deserialize objects so that they - can be stored in the EDMX form of the Entity Framework model. - - - An example of the serialized format is: - { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. - Note that properties that have not been explicitly set in an index attribute will be excluded from - the serialized output. So, in the example above, the first index has all properties specified, - the second has none, and the third has just the name set. - - - - - Implement this interface to allow custom annotations represented by instances to be - serialized to and from the EDMX XML. Usually a serializer instance is set using the - method. - - - - - Serializes the given annotation value into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize. - The serialized value. - - - - Deserializes the given string back into the expected annotation value. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - - - - Serializes the given into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize which must be an IndexAnnotation object. - The serialized value. - - - - Deserializes the given string back into an object. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - If there is an error reading the serialized value. - - - - This interface is implemented by any object that can resolve a dependency, either directly - or through use of an external container. - - - The public services currently resolved using IDbDependencyResolver are documented here: - http://msdn.microsoft.com/en-us/data/jj680697 - - - - - Attempts to resolve a dependency for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return null and not throw. This - allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers - can be asked to resolve a dependency until one finally does. - - The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. - - - - Attempts to resolve a dependencies for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return an empty enumeration and - not throw. This method differs from in that it returns all registered - services for the given type and key combination. - - The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. - - - - An implementation used for resolving - factories. - - - - - Initializes a new instance of - - A function that returns a new instance of a transaction handler. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. - null will match anything. - - - A string that will be matched against the server name in the connection string. null will match anything. - - - - - If the given type is , then this method will attempt - to return the service to use, otherwise it will return null. When the given type is - , then the key is expected to be a . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - , then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - - - - - - - A simple logger for logging SQL and other database operations to the console or a file. - A logger can be registered in code or in the application's web.config /app.config file. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework loads the application's . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This is the base interface for all interfaces that provide interception points for various - different types and operations. For example, see . - Interceptors are registered on the class. - - - - - Occurs during EF initialization after the has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that an interceptor of this type should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Creates a new logger that will send log output to the console. - - - - - Creates a new logger that will send log output to a file. If the file already exists then - it is overwritten. - - A path to the file to which log output will be written. - - - - Creates a new logger that will send log output to a file. - - A path to the file to which log output will be written. - True to append data to the file if it exists; false to overwrite the file. - - - - Stops logging and closes the underlying file if output is being written to a file. - - - - - Stops logging and closes the underlying file if output is being written to a file. - - - True to release both managed and unmanaged resources; False to release only unmanaged resources. - - - - - Starts logging. This method is a no-op if logging is already started. - - - - - Stops logging. This method is a no-op if logging is not started. - - - - - Called to start logging during Entity Framework initialization when this logger is registered. - as an . - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls into - implementations. - - - Note that specific types/operations that can be intercepted may use a more specific - interception context derived from this class. For example, if SQL is being executed by - a , then the DbContext will be contained in the - instance that is passed to the methods - of . - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. See - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - Call this method when creating a copy of an interception context in order to add new state - to it. Using this method instead of calling the constructor directly ensures virtual dispatch - so that the new type will have the same type (and any specialized state) as the context that - is being cloned. - - A new context with all state copied. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item if - a single has been used to construct multiple - instances. - - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item when - EF has created a new for use in database creation and initialization, or - if a single is used with multiple . - - - - - True if the operation is being executed asynchronously, otherwise false. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - Implemented by Entity Framework providers and used to check whether or not tables exist - in a given database. This is used by database initializers when determining whether or not to - treat an existing database as empty such that tables should be created. - - - - - When overridden in a derived class checks where the given tables exist in the database - for the given connection. - - - The context for which table checking is being performed, usually used to obtain an appropriate - . - - - A connection to the database. May be open or closed; should be closed again if opened. Do not - dispose. - - The tables to check for existence. - The name of the EdmMetadata table to check for existence. - True if any of the model tables or EdmMetadata table exists. - - - - Helper method to get the table name for the given s-space . - - The s-space entity set for the table. - The table name. - - - - Thrown when an error occurs committing a . - - - - - Initializes a new instance of - - - - - Initializes a new instance of - - The exception message. - - - - Initializes a new instance of - - The exception message. - The inner exception. - - - - Initializes a new instance of the class. - - The data necessary to serialize or deserialize an object. - Description of the source and destination of the specified serialized stream. - - - - Event arguments passed to event handlers. - - - - - Call this method to add a instance to the Chain of - Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The only exception to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here, unless the - overrideConfigFile is set to true in which case the resolver added here will also override config - file settings. - - The resolver to add. - If true, then the resolver added will take precedence over settings in the config file. - - - - Call this method to add a instance to the Chain of Responsibility - of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - The resolver to add. - - - - Adds a wrapping resolver to the configuration that is about to be locked. A wrapping - resolver is a resolver that incepts a service would have been returned by the resolver - chain and wraps or replaces it with another service of the same type. - - The type of service to wrap or replace. - A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. - - - - - - - - - - - - - - - - Returns a snapshot of the that is about to be locked. - Use the GetService methods on this object to get services that have been registered. - - - - - An implementation used for resolving - factories. - - - This class can be used by to aid in the resolving - of factories as a default service for the provider. - - The type of execution strategy that is resolved. - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - A string that will be matched against the server name in the connection string. null will match anything. - - A function that returns a new instance of an execution strategy. - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return null. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - Extension methods to call the method using - a generic type parameter and/or no name. - - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Implements to resolve a dependency such that it always returns - the same instance. - - The type that defines the contract for the dependency that will be resolved. - - This class is immutable such that instances can be accessed by multiple threads at the same time. - - - - - Constructs a new resolver that will return the given instance for the contract type - regardless of the key passed to the Get method. - - The instance to return. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches exactly the key passed to the Get method. - - The instance to return. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches the key passed to the Get method based on the given predicate. - - The instance to return. - A predicate that takes the key object and returns true if and only if it matches. - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Represents contextual information associated with calls with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The isolation level to associate. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to start a transaction. - - - - - This is the default log formatter used when some is set onto the - property. A different formatter can be used by creating a class that inherits from this class and overrides - some or all methods to change behavior. - - - To set the new formatter create a code-based configuration for EF using and then - set the formatter class to use with . - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - onto before any commands will be logged. - For more low-level control over logging/interception see and - . - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework executes commands. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework performs operations on a . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is invoked. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The transaction used by Entity Framework can be changed by setting - . - - The connection that began the transaction. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was closed. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is set. - - The connection. - Contextual information associated with the call. - - - - Called after is set. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being disposed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was disposed. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection. - Contextual information associated with the call. - - - - Called before or its async counterpart is invoked. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - - The connection that was opened. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework commits or rollbacks a transaction. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being disposed. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was disposed. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - Creates a formatter that will not filter by any and will instead log every command - from any context and also commands that do not originate from a context. - - - This constructor is not used when a delegate is set on . Instead it can be - used by setting the formatter directly using . - - The delegate to which output will be sent. - - - - Creates a formatter that will only log commands the come from the given instance. - - - This constructor must be called by a class that inherits from this class to override the behavior - of . - - - The context for which commands should be logged. Pass null to log every command - from any context and also commands that do not originate from a context. - - The delegate to which output will be sent. - - - - Writes the given string to the underlying write delegate. - - The string to write. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - Called whenever a command is about to be executed. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the - context filtering behavior. - - The type of the operation's results. - The command that will be executed. - Contextual information associated with the command. - - - - Called whenever a command has completed executing. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the context - filtering behavior. - - The type of the operation's results. - The command that was executed. - Contextual information associated with the command. - - - - Called to log a command that is about to be executed. Override this method to change how the - command is logged to . - - The type of the operation's results. - The command to be logged. - Contextual information associated with the command. - - - - Called by to log each parameter. This method can be called from an overridden - implementation of to log parameters, and/or can be overridden to - change the way that parameters are logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - The parameter to log. - - - - Called to log the result of executing a command. Override this method to change how results are - logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - - - - Does not write to log unless overridden. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that began the transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was opened. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was closed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - - - - - - - - - - - - The context for which commands are being logged, or null if commands from all contexts are - being logged. - - - - - The stop watch used to time executions. This stop watch is started at the end of - , , and - methods and is stopped at the beginning of the , , - and methods. If these methods are overridden and the stop watch is being used - then the overrides should either call the base method or start/stop the watch themselves. - - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Represents contextual information associated with calls that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to property setters of type on a . - - The type of the target property. - - - - Represents contextual information associated with calls to property setters of type . - - - An instance of this class is passed to the dispatch methods and does not contain mutable information such as - the result of the operation. This mutable information is obtained from the - that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information - use one of the With... or As... methods to create a new interception context containing the new information. - - The type of the target property. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The value that will be assigned to the target property. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when executing commands. It is provided publicly so that - code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is - typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls into - implementations. - - - An instance of this class is passed to the dispatch methods of - and does not contain mutable information such as the result of the operation. This mutable information - is obtained from the that is passed to the interceptors. - Instances of this class are publicly immutable. To add contextual information use one of the - With... or As... methods to create a new interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The that will be used or has been used to execute the command with a - . This property is only used for - and its async counterparts. - - - - - Represents contextual information associated with calls into - implementations including the result of the operation. - - The type of the operation's results. - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Base class that implements . This class is a convenience for - use when only one or two methods of the interface actually need to have any implementation. - - - - - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The original tree created by Entity Framework. Interceptors can change the - property to change the tree that will be used, but the - will always be the tree created by Entity Framework. - - - - - The command tree that will be used by Entity Framework. This starts as the tree contained in the - the property but can be set by interceptors to change - the tree that will be used by Entity Framework. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - setting . - - The connection on which the operation will be executed. - Information about the context of the call being made, including the value to be set. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token. - A task that represents the asynchronous operation. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to all dispatchers through the the fluent API. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - This is the registration point for interceptors. Interceptors - receive notifications when EF performs certain operations such as executing commands against - the database. For example, see . - - - - - Registers a new to receive notifications. Note that the interceptor - must implement some interface that extends from to be useful. - - The interceptor to add. - - - - Removes a registered so that it will no longer receive notifications. - If the given interceptor is not registered, then this is a no-op. - - The interceptor to remove. - - - - This is the entry point for dispatching to interceptors. This is usually only used internally by - Entity Framework but it is provided publicly so that other code can make sure that registered - interceptors are called when operations are performed on behalf of EF. For example, EF providers - a may make use of this when executing commands. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The connection on which the transaction was started. - A new interception context that also contains the connection on which the transaction was started. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - The connection on which the transaction was started - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The transaction to be used in the invocation. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to enlist a connection. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework creates command trees. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called after a new has been created. - The tree that is used after interception can be changed by setting - while intercepting. - - - Command trees are created for both queries and insert/update/delete commands. However, query - command trees are cached by model which means that command tree creation only happens the - first time a query is executed and this notification will only happen at that time - - Contextual information associated with the call. - - - - Represents a mapping view. - - - - - Creates a instance having the specified entity SQL. - - A string that specifies the entity SQL. - - - - Gets the entity SQL. - - - - - Base abstract class for mapping view cache implementations. - Derived classes must have a parameterless constructor if used with . - - - - - Gets a view corresponding to the specified extent. - - An that specifies the extent. - A that specifies the mapping view, - or null if the extent is not associated with a mapping view. - - - - Gets a hash value computed over the mapping closure. - - - - - Specifies the means to create concrete instances. - - - - - Creates a generated view cache instance for the container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - - A that specifies the generated view cache. - - - - - Defines a custom attribute that specifies the mapping view cache type (subclass of ) - associated with a context type (subclass of or ). - The cache type is instantiated at runtime and used to retrieve pre-generated views in the - corresponding context. - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - - A subclass of . - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - The assembly qualified full name of the cache type. - - - - The base class for interceptors that handle the transaction operations. Derived classes can be registered using - or - . - - - - - Initializes a new instance of the class. - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - The connection to use for the initialization. - - This method is called by migrations. It is important that no action is performed on the - specified context that causes it to be initialized. - - - - - - - - Releases the resources used by this transaction handler. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Checks whether the supplied interception context contains the target context - or the supplied connection is the same as the one used by the target context. - - A connection. - An interception context. - - true if the supplied interception context contains the target context or - the supplied connection is the same as the one used by the target context if - the supplied interception context doesn't contain any contexts; false otherwise. - - - Note that calling this method will trigger initialization of any DbContext referenced from the - - - - - When implemented in a derived class returns the script to prepare the database - for this transaction handler. - - A script to change the database schema for this transaction handler. - - - - Can be implemented in a derived class. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection that was disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being rolled back. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Gets the context. - - - The for which the transaction operations will be handled. - - - - - Gets the context. - - - The for which the transaction operations will be handled, could be null. - - - - - Gets the connection. - - - The for which the transaction operations will be handled. - - - This connection object is only used to determine whether a particular operation needs to be handled - in cases where a context is not available. - - - - - Gets or sets a value indicating whether this transaction handler is disposed. - - - true if disposed; otherwise, false. - - - - - This class is used by to write and read transaction tracing information - from the database. - To customize the definition of the transaction table you can derive from - this class and override . Derived classes can be registered - using . - - - By default EF will poll the resolved to check wether the database schema is compatible and - will try to modify it accordingly if it's not. To disable this check call - Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. - - - - - A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that - it can be used to query from a database and group together changes that will then be written - back to the store as a unit. - DbContext is conceptually similar to ObjectContext. - - - DbContext is usually used with a derived type that contains properties for - the root entities of the model. These sets are automatically initialized when the - instance of the derived class is created. This behavior can be modified by applying the - attribute to either the entire derived context - class, or to individual properties on the class. - The Entity Data Model backing the context can be specified in several ways. When using the Code First - approach, the properties on the derived context are used to build a model - by convention. The protected OnModelCreating method can be overridden to tweak this model. More - control over the model used for the Model First approach can be obtained by creating a - explicitly from a and passing this model to one of the DbContext constructors. - When using the Database First or Model First approach the Entity Data Model can be created using the - Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using - entity connection string or an object. - The connection to the database (including the name of the database) can be specified in several ways. - If the parameterless DbContext constructor is called from a derived context, then the name of the derived context - is used to find a connection string in the app.config or web.config file. If no connection string is found, then - the name is passed to the DefaultConnectionFactory registered on the class. The connection - factory then uses the context name as the database name in a default connection string. (This default connection - string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) - Instead of using the derived context name, the connection/database name can also be specified explicitly by - passing the name to one of the DbContext constructors that takes a string. The name can also be passed in - the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. - Note that the connection found in the app.config or web.config file can be a normal database connection - string (not a special Entity Framework connection string) in which case the DbContext will use Code First. - However, if the connection found in the config file is a special Entity Framework connection string, then the - DbContext will use Database/Model First and the model specified in the connection string will be used. - An existing or explicitly created DbConnection can also be used instead of the database/connection name. - A can be applied to a class derived from DbContext to set the - version of conventions used by the context when it creates a model. If no attribute is applied then the - latest version of conventions will be used. - - - - - Interface implemented by objects that can provide an instance. - The class implements this interface to provide access to the underlying - ObjectContext. - - - - - Gets the object context. - - The object context. - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made. The by-convention name is the full name (namespace + class name) - of the derived context class. - See the class remarks for how this is used to create a connection. - - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made, and initializes it from the given model. - The by-convention name is the full name (namespace + class name) of the derived context class. - See the class remarks for how this is used to create a connection. - - The model that will back this context. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made, and initializes it from the given model. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - The model that will back this context. - - - - Constructs a new context instance using the existing connection to connect to a database. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance using the existing connection to connect to a database, - and initializes it from the given model. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - The model that will back this context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance around an existing ObjectContext. - - An existing ObjectContext to wrap with the new context. - - If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. - - - - - This method is called when the model for a derived context has been initialized, but - before the model has been locked down and used to initialize the context. The default - implementation of this method does nothing, but it can be overridden in a derived class - such that the model can be further configured before it is locked down. - - - Typically, this method is called only once when the first instance of a derived context - is created. The model for that context is then cached and is for all further instances of - the context in the app domain. This caching can be disabled by setting the ModelCaching - property on the given ModelBuidler, but note that this can seriously degrade performance. - More control over caching is provided through use of the DbModelBuilder and DbContextFactory - classes directly. - - The builder that defines the model for the context being created. - - - - Returns a instance for access to entities of the given type in the context - and the underlying store. - - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the non-generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - The type entity for which a set should be returned. - A set for the given entity type. - - - - Returns a non-generic instance for access to entities of the given type in the context - and the underlying store. - - The type of entity for which a set should be returned. - A set for the given entity type. - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - - - - Saves all changes made in this context to the underlying database. - - The number of objects written to the underlying database. - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Asynchronously saves all changes made in this context to the underlying database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous save operation. - The task result contains the number of objects written to the underlying database. - - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Asynchronously saves all changes made in this context to the underlying database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous save operation. - The task result contains the number of objects written to the underlying database. - - Thrown if the context has been disposed. - - - - Validates tracked entities and returns a Collection of containing validation results. - - Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. - - 1. This method calls DetectChanges() to determine states of the tracked entities unless - DbContextConfiguration.AutoDetectChangesEnabled is set to false. - 2. By default only Added on Modified entities are validated. The user is able to change this behavior - by overriding ShouldValidateEntity method. - - - - - Extension point allowing the user to override the default behavior of validating only - added and modified entities. - - DbEntityEntry instance that is supposed to be validated. - true to proceed with validation; false otherwise. - - - - Extension point allowing the user to customize validation of an entity or filter out validation results. - Called by . - - DbEntityEntry instance to be validated. - - User-defined dictionary containing additional info for custom validation. It will be passed to - - and will be exposed as - - . This parameter is optional and can be null. - - Entity validation result. Possibly null when overridden. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The type of the entity. - The entity. - An entry for the entity. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The entity. - An entry for the entity. - - - - Calls the protected Dispose method. - - - - - Disposes the context. The underlying is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - The connection to the database ( object) is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Creates a Database instance for this context that allows for creation/deletion/existence checks - for the underlying database. - - - - - Returns the Entity Framework ObjectContext that is underlying this context. - - Thrown if the context has been disposed. - - - - Provides access to features of the context that deal with change tracking of entities. - - An object used to access features that deal with change tracking. - - - - Provides access to configuration options for the context. - - An object used to access configuration options. - - - - Initializes a new instance of the class. - - The connection used by the context for which the transactions will be recorded. - - - - - - - Gets or sets a that can be used to read and write instances. - - - - - A transaction handler that allows to gracefully recover from connection failures - during transaction commit by storing transaction tracing information in the database. - It needs to be registered by using . - - - This transaction handler uses to store the transaction information - the schema used can be configured by creating a class derived from - that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. - - - - - Initializes a new instance of the class using the default . - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes a new instance of the class. - - The transaction context factory. - - One of the Initialize methods needs to be called before this instance can be used. - - - - - - - - - - - - - - - - - Stores the tracking information for the new transaction to the database in the same transaction. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - If there was an exception thrown checks the database for this transaction and rethrows it if not found. - Otherwise marks the commit as succeeded and queues the transaction information to be deleted. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was rolled back. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was disposed. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - - - - Asynchronously removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - A task that represents the asynchronous operation. - - - - Asynchronously removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - The cancellation token. - A task that represents the asynchronous operation. - - - - Adds the specified transaction to the list of transactions that can be removed from the database - - The transaction to be removed from the database. - - - - Removes the transactions marked for deletion. - - - - - Asynchronously removes the transactions marked for deletion. - - A task that represents the asynchronous operation. - - - - Asynchronously removes the transactions marked for deletion. - - The cancellation token. - A task that represents the asynchronous operation. - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - The cancellation token. - A task that represents the asynchronous operation. - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the transaction context. - - - The transaction context. - - - - - Gets the number of transactions to be executed on the context before the transaction log will be cleaned. - The default value is 20. - - - - - An implementation of this interface is used to initialize the underlying database when - an instance of a derived class is used for the first time. - This initialization can conditionally create the database and/or seed it with data. - The strategy used is set using the static InitializationStrategy property of the - class. - The following implementations are provided: , - , . - - The type of the context. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - Rrepresents a transaction - - - - - - - - - - - A unique id assigned to a transaction object. - - - - - The local time when the transaction was started. - - - - - Helper class that is used to configure a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new parameter definition to pass Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The numeric precision of the parameter. - The numeric scale of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the parameter supports Unicode content. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Represents altering an existing stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - A migration operation that affects stored procedures. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents an operation to modify a database schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MigrationOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" - }'. - - - - - Gets additional arguments that may be processed by providers. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure. - - - The name of the stored procedure. - - - - - Gets the body of the stored procedure expressed in SQL. - - - The body of the stored procedure expressed in SQL. - - - - - Gets the parameters of the stored procedure. - - - The parameters of the stored procedure. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Represents changes made to custom annotations on a table. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterTableOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table on which annotations have changed. - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets the name of the table on which annotations have changed. - - - - - Gets the columns to be included in the table for which annotations have changed. - - - - - Gets the custom annotations that have changed on the table. - - - - - Gets an operation that is the inverse of this one such that annotations will be changed back to how - they were before this operation was applied. - - - - - - - - Represents renaming an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the index belongs to. - Name of the index to be renamed. - New name for the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the index belongs to. - - - - - Gets the name of the index to be renamed. - - - - - Gets the new name for the index. - - - - - Gets an operation that reverts the rename. - - - - - - - - Used when scripting an update database operation to store the operations that would have been performed against the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Adds a migration to this update database operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The id of the migration. - The individual operations applied by the migration. - - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Gets the migrations applied during the update database operation. - - - The migrations applied during the update database operation. - - - - - Gets a value indicating if any of the operations may result in data loss. - - - - - Represents a migration to be applied to the database. - - - - - Gets the id of the migration. - - - The id of the migration. - - - - - Gets the individual operations applied by this migration. - - - The individual operations applied by this migration. - - - - - Represents moving a stored procedure to a new schema in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to move. - The new schema for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to move. - - - The name of the stored procedure to move. - - - - - Gets the new schema for the stored procedure. - - - The new schema for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents renaming a stored procedure in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to rename. - The new name for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to rename. - - - The name of the stored procedure to rename. - - - - - Gets the new name for the stored procedure. - - - The new name for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents information about a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents information about a property of an entity. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the PropertyModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this property model. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets the data type for this property model. - - - - - Gets additional details about the data type of this property model. - This includes details such as maximum length, nullability etc. - - - - - Gets or sets the name of the property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a provider specific data type to use for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the maximum length for this property model. - Only valid for array data types. - - - - - Gets or sets the precision for this property model. - Only valid for decimal data types. - - - - - Gets or sets the scale for this property model. - Only valid for decimal data types. - - - - - Gets or sets a constant value to use as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a SQL expression used as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if this property model is fixed length. - Only valid for array data types. - - - - - Gets or sets a value indicating if this property model supports Unicode characters. - Only valid for textual data types. - - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets or sets a value indicating whether this instance is out parameter. - - - true if this instance is out parameter; otherwise, false. - - - - - Drops a stored procedure from the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to drop. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to drop. - - - The name of the stored procedure to drop. - - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model. - - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type. - - The common type of the entity types that this convention applies to. - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type and a - captured value. - - The common type of the entity types that this convention applies to. - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model and a captured value. - - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The name of the property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Configures a property that is defined on this type. - - The name of the property being configured. - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The property being configured. - A configuration object that can be used to configure the property. - - - - Configures the primary key property for this entity type. - - The name of the property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property for this entity type. - - The property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The names of the properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured or if any - property does not exist. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - A type inherited by the entity type. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - - The same instance so that multiple calls can be chained. - - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Identifies conventions that can be added to or removed from a instance. - - - Note that implementations of this interface must be immutable. - - - - - A general purpose class for Code First conventions that read attributes from .NET properties - and generate column annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - A convention that doesn't override configuration. - - - - - The derived class can use the default constructor to apply a set rule of that change the model configuration. - - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model that derive from or implement the specified type. - - The type of the entities that this convention will apply to. - A configuration object for the convention. - This method does not add new types to the model. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Constructs a convention that will create column annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each column. - - - - A general purpose class for Code First conventions that read attributes from .NET types - and generate table annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - Constructs a convention that will create table annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each table. - - - - A convention for discovering attributes on properties and generating - column annotations in the model. - - - - - Constructs a new instance of the convention. - - - - - Base class for conventions that process CLR attributes found on primitive properties in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The configuration for the property that has the attribute. - The attribute. - - - - Base class for conventions that process CLR attributes found on properties of types in the model. - - - Note that the derived convention will be applied for any non-static property on the mapped type that has - the specified attribute, even if it wasn't included in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The member info for the property that has the attribute. - The configuration for the class that contains the property. - The attribute. - - - - Base class for conventions that process CLR attributes found in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a class that has an attribute of type TAttribute applied. - - The configuration for the class that contains the property. - The attribute. - - - - Used to configure a property in a mapping fragment. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the database column used to store the property, in a mapping fragment. - - The name of the column. - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Convention to introduce indexes for foreign keys. - - - - - A convention that operates on the database section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - - - - A convention that operates on the conceptual section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - Useful extension methods for use with Entity Framework LINQ queries. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - The type of entity being queried. - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - The path expression must be composed of simple property access expressions together with calls to Select for - composing additional includes after including a collection proprty. Examples of possible include paths are: - To include a single reference: query.Include(e => e.Level1Reference) - To include a single collection: query.Include(e => e.Level1Collection) - To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) - To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) - To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) - This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. - If the source IQueryable does not have a matching method, then this method does nothing. - The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. - When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other - instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the - query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. - - The type of entity being queried. - The type of navigation property being included. - The source IQueryable on which to call Include. - A lambda expression representing the path to include. - - A new IQueryable<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The element type. - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - The type of the elements of . - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - - - Asynchronously enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - A task that represents the asynchronous operation. - - - - - Asynchronously enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to enumerate. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to enumerate. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to enumerate. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to enumerate. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to create a from. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to create a from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create a from. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create a list from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates an array from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create an array from. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates an array from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create an array from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Asynchronously returns the first element of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A task that represents the asynchronous operation. - The task result contains the first element in . - - - is null. - - - doesn't implement . - - The source sequence is empty. - - - - Asynchronously returns the first element of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in . - - - - is - null - . - - - - doesn't implement - - . - - The source sequence is empty. - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the first element in that passes the test in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in that passes the test in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - - - Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty; otherwise, the first element in . - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty; otherwise, the first element in . - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty or if no element passes the test specified by ; otherwise, the first - element in that passes the test specified by . - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty or if no element passes the test specified by ; otherwise, the first - element in that passes the test specified by . - - - - or - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - The source sequence is empty. - - - - Asynchronously returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - The source sequence is empty. - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the the single element of. - - A function to test an element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence, or default () - if the sequence contains no elements. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence, or default () - if the sequence contains no elements. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - , or default ( ) if no such element is found. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - , or default ( ) if no such element is found. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - The object to locate in the sequence. - - A task that represents the asynchronous operation. - The task result contains true if the input sequence contains the specified value; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - The object to locate in the sequence. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the input sequence contains the specified value; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to check for being empty. - - - A task that represents the asynchronous operation. - The task result contains true if the source sequence contains any elements; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to check for being empty. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the source sequence contains any elements; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether any element of a sequence satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether any element of a sequence satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether all the elements of a sequence satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether all the elements of a sequence satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in a sequence - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in a sequence - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the minimum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the minimum of. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the minimum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the minimum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the minimum of. - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the minimum of. - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the maximum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the maximum of. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the maximum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the maximum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the maximum of. - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the maximum of. - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Bypasses a specified number of elements in a sequence and then returns the remaining elements. - - The type of the elements of source. - A sequence to return elements from. - An expression that evaluates to the number of elements to skip. - A sequence that contains elements that occur after the specified index in the - input sequence. - - - - Returns a specified number of contiguous elements from the start of a sequence. - - The type of the elements of source. - The sequence to return elements from. - An expression that evaluates to the number of elements - to return. - A sequence that contains the specified number of elements from the - start of the input sequence. - - - - Controls the transaction creation behavior while executing a database command or query. - - - - - If no transaction is present then a new transaction will be used for the operation. - - - - - If an existing transaction is present then use it, otherwise execute the command or query without a transaction. - - - - - Specifies a structural type mapping. - - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents the base item class for all the metadata - - - Represents the base item class for all the metadata - - - - - Adds or updates an annotation with the specified name and value. - - - If an annotation with the given name already exists then the value of that annotation - is updated to the given value. If the given value is null then the annotation will be - removed. - - The name of the annotation property. - The value of the annotation property. - - - - Removes an annotation with the specified name. - - The name of the annotation property. - true if an annotation was removed; otherwise, false. - - - - Returns a conceptual model built-in type that matches one of the - - values. - - - An object that represents the built-in type in the EDM. - - - One of the values. - - - - Returns the list of the general facet descriptions for a specified type. - - A object that represents the list of the general facet descriptions for a specified type. - - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - Gets the list of properties of the current type. - - A collection of type that contains the list of properties of the current type. - - - - Gets or sets the documentation associated with this type. - - A object that represents the documentation on this type. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this attribute has been replaced by the starting with EF6. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. - - - - - Initializes a new instance of the class. - - The namespace of the mapped-to function. - The name of the mapped-to function. - - - The namespace of the mapped-to function. - The namespace of the mapped-to function. - - - The name of the mapped-to function. - The name of the mapped-to function. - - - - Creates a new DbFunctionAttribute instance. - - The namespace name of the EDM function represented by the attributed method. - The function name of the EDM function represented by the attributed method. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that these functions have been moved to the class starting with EF6. - The functions are retained here only to help in the migration of older EF apps to EF6. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Options for query execution. - - - - - Creates a new instance of . - - Merge option to use for entity results. - - - - Creates a new instance of . - - Merge option to use for entity results. - Whether the query is streaming or buffering. - - - Determines whether the specified objects are equal. - true if the two objects are equal; otherwise, false. - The left object to compare. - The right object to compare. - - - - Determines whether the specified objects are not equal. - - The left object to compare. - The right object to compare. - true if the two objects are not equal; otherwise, false. - - - - - - - - - - Merge option to use for entity results. - - - - - Whether the query is streaming or buffering. - - - - - DataRecord interface supporting structured types and rich metadata information. - - - - - Gets a object with the specified index. - - - A object. - - The index of the row. - - - - Returns nested readers as objects. - - - Nested readers as objects. - - The ordinal of the column. - - - - Gets for this - - . - - - A object. - - - - - DataRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new object for a specific type with an enumerable collection of data fields. - - - The metadata for the type represented by this object, supplied by - - . - - - An enumerable collection of objects that represent column information. - - - - - Gets for this - - object. - - - A object. - - - - - Gets type info for this object as a object. - - - A value. - - - - - A prepared command definition, can be cached and reused to avoid - repreparing a command. - - - - - Initializes a new instance of the class using the supplied - - . - - - The supplied . - - method used to clone the - - - - Initializes a new instance of the class. - - - - - Creates and returns a object that can be executed. - - The command for database. - - - - Metadata Interface for all CLR types types - - - - - Value to pass to GetInformation to get the StoreSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaMapping - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 - - - - - Value to pass to GetInformation to get the StoreSchemaMappingVersion3 - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 - - - - - Name of the MaxLength Facet - - - - - Name of the Unicode Facet - - - - - Name of the FixedLength Facet - - - - - Name of the Precision Facet - - - - - Name of the Scale Facet - - - - - Name of the Nullable Facet - - - - - Name of the DefaultValue Facet - - - - - Name of the Collation Facet - - - - - Name of the SRID Facet - - - - - Name of the IsStrict Facet - - - - When overridden in a derived class, returns the set of primitive types supported by the data source. - The set of types supported by the data source. - - - When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. - A collection of EDM functions. - - - Returns the FacetDescription objects for a particular type. - The FacetDescription objects for the specified EDM type. - The EDM type to return the facet description for. - - - When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. - - The instance that describes an EDM type and a set of facets for that type. - - The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. - - - When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. - The TypeUsage instance that describes a storage type and a set of facets for that type. - The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. - - - When overridden in a derived class, this method returns provider-specific information. - The XmlReader object that represents the mapping to the underlying data store catalog. - The type of the information to return. - - - Gets the provider-specific information. - The provider-specific information. - The type of the information to return. - - - Indicates if the provider supports escaping strings to be used as patterns in a Like expression. - True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. - If the provider supports escaping, the character that would be used as the escape character. - - - Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. - The argument with the wildcards and the escape character escaped. - The argument to be escaped. - - - - Returns a boolean that specifies whether the provider can handle expression trees - containing instances of DbInExpression. - The default implementation returns false for backwards compatibility. Derived classes can override this method. - - - false - - - - Gets the namespace used by this provider manifest. - The namespace used by this provider manifest. - - - - The factory for building command definitions; use the type of this object - as the argument to the IServiceProvider.GetService method on the provider - factory; - - - - - Constructs an EF provider that will use the obtained from - the app domain Singleton for resolving EF dependencies such - as the instance to use. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object given a command tree. - - command tree for the statement - an executable command definition object - - This method simply delegates to the provider's implementation of CreateDbCommandDefinition. - - - - Creates command definition from specified manifest and command tree. - The created command definition. - The manifest. - The command tree. - - - Creates a command definition object for the specified provider manifest and command tree. - An executable command definition object. - Provider manifest previously retrieved from the store provider. - Command tree for the statement. - - - - Create the default DbCommandDefinition object based on the prototype command - This method is intended for provider writers to build a default command definition - from a command. - Note: This will clone the prototype - - the prototype command - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - DbCommand can cause deadlocks. So here allow sub-classes to override. - - the object to clone - a clone of the - - - Returns provider manifest token given a connection. - The provider manifest token. - Connection to provider. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - Returns the provider manifest by using the specified version information. - The provider manifest by using the specified version information. - The token information associated with the provider manifest. - - - When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. - A DbProviderManifest object that represents the provider manifest. - The token information associated with the provider manifest. - - - - Gets the that will be used to execute methods that use the specified connection. - - The database connection - - A new instance of - - - - - Gets the that will be used to execute methods that use the specified connection. - This overload should be used by the derived classes for compatability with wrapping providers. - - The database connection - The provider invariant name - - A new instance of - - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - Gets the spatial services for the . - The spatial services. - Information about the database that the spatial services will be used for. - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The token information associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - Returns providers given a connection. - - The instanced based on the specified connection. - - Connection to provider. - - - Retrieves the DbProviderFactory based on the specified DbConnection. - The retrieved DbProviderFactory. - The connection to use. - - - - Return an XML reader which represents the CSDL description - - The name of the CSDL description. - An XmlReader that represents the CSDL description - - - Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - The provider manifest token identifying the target version. - The structure of the database. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Creates a database indicated by connection and creates schema objects - (tables, primary keys, foreign keys) based on the contents of storeItemCollection. - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - - Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, - or returns the given string if it does not start with |DataDirectory|. - - The path to expand. - The expanded path. - - - - Adds an that will be used to resolve additional default provider - services when a derived type is registered as an EF provider either using an entry in the application's - config file or through code-based registration in . - - The resolver to add. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - - Use this method to set, add, or change other provider-related services. Note that this method - will only be called for such services if they are not already explicitly configured in some - other way by the application. This allows providers to set default services while the - application is still able to override and explicitly configure each service if required. - See and for more details. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - An instance of the given type, or null if the service could not be resolved. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - All registered services that satisfy the given type and key, or an empty enumeration if there are none. - - - - A specialization of the ProviderManifest that accepts an XmlReader - - - - - Initializes a new instance of the class. - - - An object that provides access to the XML data in the provider manifest file. - - - - Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. - - A collection of type that contains the list of facet descriptions for the specified EDM type. - - - An for which the facet descriptions are to be retrieved. - - - - Returns the list of primitive types supported by the storage provider. - - A collection of type that contains the list of primitive types supported by the storage provider. - - - - Returns the list of provider-supported functions. - - A collection of type that contains the list of provider-supported functions. - - - - Gets the namespace name supported by this provider manifest. - The namespace name supported by this provider manifest. - - - Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. - The best mapped equivalent EDM type for a specified storage type name. - - - Gets the best mapped equivalent storage primitive type for a specified storage type name. - The best mapped equivalent storage primitive type for a specified storage type name. - - - - Class for representing a collection of items. - Most of the implementation for actual maintenance of the collection is - done by MetadataCollection - - - - - Class representing a read-only wrapper around MetadataCollection - - The type of items in this collection - - - Retrieves an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - - - Determines whether the collection contains an item with the specified identity. - true if the collection contains the item to be searched for; otherwise, false. The default is false. - The identity of the item. - - - Retrieves an item from this collection by using the specified identity. - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. - - - Returns an enumerator that can iterate through this collection. - - A that can be used to iterate through this - - . - - - - Returns the index of the specified value in this collection. - The index of the specified value in this collection. - A value to seek. - - - Gets a value indicating whether this collection is read-only. - true if this collection is read-only; otherwise, false. - - - Gets an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - - - - The enumerator for MetadataCollection - - - - Disposes of this enumerator. - - - - Moves to the next member in the collection of type - - . - - - true if the enumerator is moved in the collection of type - - ; otherwise, false. - - - - - Positions the enumerator before the first position in the collection of type - - . - - - - Gets the member at the current position. - The member at the current position. - - - - Gets the member at the current position - - - - - Returns a strongly typed object by using the specified identity. - - The item that is specified by the identity. - The identity of the item. - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. - - The item that is specified by the identity. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The type returned by the method. - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all the items of the specified type. - - The type returned by the method. - - - - Returns an object by using the specified type name and the namespace name in this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - Returns all the overloads of the functions by using the specified name from this item collection. - A collection of type ReadOnlyCollection that contains all the functions that have the specified name. - A dictionary of functions. - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first one. - The name of the entity container. - - - - Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - Gets the data model associated with this item collection. - The data model associated with this item collection. - - - - EntityRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. - - - The of the entity represented by the - - described by this - - object. - - - An enumerable collection of objects that represent column information. - - The key for the entity. - The entity set to which the entity belongs. - - - - Gets the for the entity. - - The key for the entity. - - - - Public Entity SQL Parser class. - - - - Parse the specified query with the specified parameters. - - The containing - - and information describing inline function definitions if any. - - The EntitySQL query to be parsed. - The optional query parameters. - - - - Parse a specific query with a specific set variables and produce a - - . - - - The containing - - and information describing inline function definitions if any. - - The query to be parsed. - The optional query variables. - - - - Entity SQL query inline function definition, returned as a part of . - - - - Function name. - - - Function body and parameters. - - - Start position of the function definition in the eSQL query text. - - - End position of the function definition in the eSQL query text. - - - - Entity SQL Parser result information. - - - - A command tree produced during parsing. - - - - List of objects describing query inline function definitions. - - - - - Compares objects using reference equality. - - - - - Gets the default instance. - - - - - Wraps access to the transaction object on the underlying store connection and ensures that the - Entity Framework executes commands on the database within the context of that transaction. - An instance of this class is retrieved by calling BeginTransaction() on the - - object. - - - - - Commits the underlying store transaction - - - - - Rolls back the underlying store transaction - - - - - Cleans up this transaction object and ensures the Entity Framework - is no longer using that transaction. - - - - - Releases the resources used by this transaction object - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Gets the database (store) transaction that is underlying this context transaction. - - - - - A service for obtaining the correct from a given - . - - - On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the - default implementation of this service uses some heuristics to find the matching - provider. If these fail then a new implementation of this service can be registered - on to provide an appropriate resolution. - - - - - Returns the for the given connection. - - The connection. - The provider factory for the connection. - - - - Explicitly implemented by to prevent certain members from showing up - in the IntelliSense of scaffolded migrations. - - - - - Adds a custom to the migration. - Custom operation implementors are encouraged to create extension methods on - that provide a fluent-style API for adding new operations. - - The operation to add. - - - - A default implementation of that uses the - underlying provider to get the manifest token. - Note that to avoid multiple queries, this implementation using caching based on the actual type of - instance, the property, - and the property. - - - - - A service for getting a provider manifest token given a connection. - The class is used by default and makes use of the - underlying provider to get the token which often involves opening the connection. - A different implementation can be used instead by adding an - to that may use any information in the connection to return - the token. For example, if the connection is known to point to a SQL Server 2008 database then - "2008" can be returned without opening the connection. - - - - - Returns the manifest token to use for the given connection. - - The connection for which a manifest token is required. - The manifest token to use. - - - - - - - A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. - - - - - Executes the specified operation. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Executes the specified asynchronous operation. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - - - - Executes the specified asynchronous operation and returns the result. - - - The result type of the returned by . - - - A function that returns a started task of type . - - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - - - - Indicates whether this might retry the execution after a failure. - - - - - Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses - exponentially increasing delays between retries. - - - A new instance will be created each time an operation is executed. - The following formula is used to calculate the delay after retryCount number of attempts: - min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) - The retryCount starts at 0. - The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - A delegate representing an executable operation that doesn't return any results. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - The type of result expected from the executable operation. - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified asynchronous operation while it satisfies the current retry policy. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repeatedly executes the specified asynchronous operation while it satisfies the current retry policy. - - - The result type of the returned by . - - - A function that returns a started task of type . - - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Determines whether the operation should be retried and the delay before the next attempt. - - The exception thrown during the last execution attempt. - - Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; - null otherwise - - - - - Recursively gets InnerException from as long as it's an - , or - and passes it to - - The type of the unwrapped exception. - The exception to be unwrapped. - A delegate that will be called with the unwrapped exception. - - The result from . - - - - - Determines whether the specified exception represents a transient failure that can be compensated by a retry. - - The exception object to be verified. - - true if the specified exception is considered as transient, otherwise false. - - - - - Returns true to indicate that might retry the execution after a failure. - - - - - A key used for resolving . It consists of the ADO.NET provider invariant name - and the database server name as specified in the connection string. - - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A string that will be matched against the server name in the connection string. - - - - - - - - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - - - A string that will be matched against the server name in the connection string. - - - - - Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. - This interface allows you to have a single context type that can be used with different models in the same AppDomain, - or multiple context types that use the same model. - - - - Gets the cached key associated with the provider. - The cached key associated with the provider. - - - - Used by and when resolving - a provider invariant name from a . - - - - Gets the name of the provider. - The name of the provider. - - - - Represents a custom pluralization term to be used by the - - - - - Create a new instance - - A non null or empty string representing the singular. - A non null or empty string representing the plural. - - - - Get the singular. - - - - - Get the plural. - - - - - Default pluralization service implementation to be used by Entity Framework. This pluralization - service is based on English locale. - - - - - Pluralization services to be used by the EF runtime implement this interface. - By default the is used, but the pluralization service to use - can be set in a class derived from . - - - - - Pluralize a word using the service. - - The word to pluralize. - The pluralized word - - - - Singularize a word using the service. - - The word to singularize. - The singularized word. - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - A collection of user dictionary entries to be used by this service.These inputs - can customize the service according the user needs. - - - - Returns the plural form of the specified word. - The plural form of the input parameter. - The word to be made plural. - - - Returns the singular form of the specified word. - The singular form of the input parameter. - The word to be made singular. - - - - The exception that is thrown when the action failed again after being retried the configured number of times. - - - - - Provider exception - Used by the entity client. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the class with no error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The exception that is the cause of the current exception. - - - - An that doesn't retry operations if they fail. - - - - - Executes the specified operation once. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation once and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Executes the specified asynchronous operation once, without retrying on failure. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully. - - - - - Executes the specified asynchronous operation once, without retrying on failure. - - - The result type of the returned by . - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully. - - - - - Returns false to indicate that will not retry the execution after a failure. - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Gets an enumerator that can be used to asynchronously enumerate the sequence. - - Enumerator for asynchronous enumeration over the sequence. - - - - Asynchronous version of the interface that allows elements of the enumerable sequence to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - The type of objects to enumerate. - - - - Gets an enumerator that can be used to asynchronously enumerate the sequence. - - Enumerator for asynchronous enumeration over the sequence. - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a generic version of this class. - - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a generic version of this class. - - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the query. - - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the query. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking - and AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the results of the query will not be tracked by the associated - . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a non-generic version of this class. - - The type of entities returned by the query. - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a non-generic version of this class. - - The type of elements returned by the query. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to be executed. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to be executed. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates an array from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates an array from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the query. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the query. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Asynchronously returns the first element of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result. - - The query result is empty. - - - - Asynchronously returns the first element of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result. - - The query result is empty. - - - - Asynchronously returns the first element of the query that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the first element in the query result that satisfies a specified condition. - - - - is - null - . - - The query result is empty. - - - - Asynchronously returns the first element of the query that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result that satisfies a specified condition. - - - - is - null - . - - The query result is empty. - - - - Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty; - otherwise, the first element in the query result. - - - - - Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty; - otherwise, the first element in the query result. - - - - - Asynchronously returns the first element of the query that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty - or if no element passes the test specified by ; otherwise, the first element - in the query result that passes the test specified by . - - - - is - null - . - - - - - Asynchronously returns the first element of the query that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty - or if no element passes the test specified by ; otherwise, the first element - in the query result that passes the test specified by . - - - - is - null - . - - - - - Asynchronously returns the only element of the query, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result. - - The query result has more than one element. - The query result is empty. - - - - Asynchronously returns the only element of the query, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result. - - The query result has more than one element. - The query result is empty. - - - - Asynchronously returns the only element of the query that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - . - - - - is - null - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of the query that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - . - - - - is - null - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result, or default () - if the sequence contains no elements. - - The query result has more than one element. - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result, or default () - if the sequence contains no elements. - - The query result has more than one element. - - - - Asynchronously returns the only element of the query that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - , or default ( ) if no such element is found. - - - - is - null - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of the query that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - , or default ( ) if no such element is found. - - - - is - null - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously determines whether the query contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The object to locate in the query result. - - A task that represents the asynchronous operation. - The task result contains true if the query result contains the specified value; otherwise, false. - - - - - Asynchronously determines whether the query contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The object to locate in the query result. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains the specified value; otherwise, false. - - - - - Asynchronously determines whether the query contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains any elements; otherwise, false. - - - - - Asynchronously determines whether the query contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains any elements; otherwise, false. - - - - - Asynchronously determines whether any element of the query satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. - - - - - Asynchronously determines whether any element of the query satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. - - - - - Asynchronously determines whether all the elements of the query satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. - - - - is - null - . - - - - - Asynchronously determines whether all the elements of the query satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. - - - - is - null - . - - - - - Asynchronously returns the number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns the number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns the number of elements in the query that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the number of elements in the query that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in the query - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in the query - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the minimum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the query result. - - - - - Asynchronously returns the minimum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the query result. - - - - - Asynchronously returns the maximum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the query result. - - - - - Asynchronously returns the maximum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the query result. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking and - AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Advances the enumerator to the next element in the sequence, returning the result asynchronously. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sequence. - - - - - Gets the current element in the iteration. - - - - - Defines methods to create and asynchronously execute queries that are described by an - object. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Asynchronously executes the query represented by a specified expression tree. - - An expression tree that represents a LINQ query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the value that results from executing the specified query. - - - - - Asynchronously executes the strongly-typed query represented by a specified expression tree. - - The type of the value that results from executing the query. - An expression tree that represents a LINQ query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the value that results from executing the specified query. - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - The type of objects to enumerate. - - - - Gets the current element in the iteration. - - - - - Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. - - - - Determines whether the current cached model key is equal to the specified cached model key. - true if the current cached model key is equal to the specified cached model key; otherwise, false. - The cached model key to compare to the current cached model key. - - - Returns the hash function for this cached model key. - The hash function for this cached model key. - - - - Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. - - - - - Represents errors that occur inside the Code First Migrations pipeline. - - - - - Initializes a new instance of the MigrationsException class. - - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the MigrationsException class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the MigrationsPendingException class. - - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - A migration operation to add a new stored procedure to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the stored procedure. - - - - - Allows configuration to be performed for a lightweight convention based on - the properties in a model. - - - - - Filters the properties that this convention applies to based on a predicate. - - A function to test each property for a condition. - - A instance so that multiple calls can be chained. - - - - - Filters the properties that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each property. If the value is null, the - property will be filtered out. - - - A instance so that multiple calls can be chained. - - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the properties of entity types in a model and a captured value. - - The type of the captured value. - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to modify a relationship. - - The type of the entity that the relationship is being configured from. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Creates a convention that configures stored procedures to be used to delete entities in the database. - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to insert entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a convention that configures stored procedures to be used to update entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - - Performs configuration of a stored procedure uses to modify an entity in the database. - - - - - Sets the name of the stored procedure. - - Name of the procedure. - The same configuration instance so that multiple calls can be chained. - - - - Sets the name of the stored procedure. - - Name of the procedure. - Name of the schema. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - Configures stored procedure used to insert relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to delete entities. - - The type of the entity that the stored procedure can be used to delete. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to insert entities. - - The type of the entity that the stored procedure can be used to insert. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to update entities. - - The type of the entity that the stored procedure can be used to update. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify entities. - - The type of the entity that the stored procedure can be used to modify. - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via lightweight conventions. - - - - - Configures the name of the database column used to store the property. - - The name of the column. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - - The same instance so that multiple calls can be chained. - - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be used as an optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures how values for the property are generated by the database. - - The pattern used to generate values for the property in the database. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to support Unicode string content. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to be variable length. - Properties are variable length by default. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to allow the maximum length supported by the database provider. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures this property to be part of the entity type's primary key. - - - The same instance so that - multiple calls can be chained. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the for this property. - - - - - An implementation of that does nothing. Using this - initializer disables database initialization for the given context type. Passing an instance - of this class to is equivalent to passing null. - When is being used to resolve initializers an instance of - this class must be used to disable initialization. - - The type of the context. - - - - - - - FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. - - - - - Initializes a new object with the specified ordinal value and field type. - - An integer specified the location of the metadata. - The field type. - - - - Gets the type of field for this object. - - - The type of field for this object. - - - - - Gets the ordinal for this object. - - An integer representing the ordinal value. - - - - Class representing a parameter collection used in EntityCommand - - - - - Adds the specified object to the . - - - The index of the new object. - - - An . - - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Removes all the objects from the - - . - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified one-dimensional - - starting at the specified destination index. - - - The one-dimensional that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the at which copying starts. - - - - - Returns an enumerator that iterates through the - - . - - - An for the - - . - - - - - - - - - - - Gets the location of the specified with the specified name. - - - The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the - - . - - - The case-sensitive name of the to find. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts an into the - - at the specified index. - - The zero-based index at which value should be inserted. - - An to be inserted in the - - . - - - - Removes the specified parameter from the collection. - - A object to remove from the collection. - - - - - Removes the from the - - at the specified index. - - - The zero-based index of the object to remove. - - - - - Removes the from the - - at the specified parameter name. - - - The name of the to remove. - - - - - - - - - - - Adds the specified object to the - - . - - - A new object. - - - The to add to the collection. - - - The specified in the value parameter is already added to this or another - - . - - - The parameter passed was not a . - - The value parameter is null. - - - - Adds a value to the end of the . - - - A object. - - The name of the parameter. - The value to be added. - - - - Adds a to the - - given the parameter name and the data type. - - - A new object. - - The name of the parameter. - - One of the values. - - - - - Adds a to the - - with the parameter name, the data type, and the column length. - - - A new object. - - The name of the parameter. - - One of the values. - - The column length. - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified - - starting at the specified destination index. - - - The that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the - - at which copying starts. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts a object into the - - at the specified index. - - The zero-based index at which value should be inserted. - - A object to be inserted in the - - . - - - - - Removes the specified from the collection. - - - A object to remove from the collection. - - - The parameter is not a . - - The parameter does not exist in the collection. - - - - Gets an Integer that contains the number of elements in the - - . - - - The number of elements in the as an Integer. - - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true if the has a fixed size; otherwise false. - - - - - Gets a value that indicates whether the - - is read-only. - - - Returns true if the is read only; otherwise false. - - - - - Gets a value that indicates whether the - - is synchronized. - - - Returns true if the is synchronized; otherwise false. - - - - - Gets an object that can be used to synchronize access to the - - . - - - An object that can be used to synchronize access to the - - . - - - - - Gets the at the specified index. - - - The at the specified index. - - The zero-based index of the parameter to retrieve. - The specified index does not exist. - - - - Gets the with the specified name. - - - The with the specified name. - - The name of the parameter to retrieve. - The specified name does not exist. - - - - Class representing a command for the conceptual layer - - - - - Initializes a new instance of the class using the specified values. - - - - - Initializes a new instance of the class with the specified statement. - - The text of the command. - - - - Constructs the EntityCommand object with the given eSQL statement and the connection object to use - - The eSQL command text to execute - The connection object - Resolver used to resolve DbProviderServices - - - - Initializes a new instance of the class with the specified statement and connection. - - The text of the command. - A connection to the data source. - - - - Initializes a new instance of the class with the specified statement, connection and transaction. - - The text of the command. - A connection to the data source. - The transaction in which the command executes. - - - - Cancels the execution of an . - - - - - Creates a new instance of an object. - - - A new instance of an object. - - - - - Create and return a new parameter object representing a parameter in the eSQL statement - - The parameter object. - - - Executes the command and returns a data reader. - - The that contains the results. - - - - - Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an - - out of the produced result set using the specified - - . - - - The that contains the results. - - - One of the values. - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - The behavior to use when executing the command - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - The behavior to use when executing the command - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - A DbDataReader object - - - - Asynchronously executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - The token to monitor for cancellation requests - - A task that represents the asynchronous operation. - The task result contains a DbDataReader object. - - - - Executes the current command. - The number of rows affected. - - - - Asynchronously executes the command and discard any results returned from the command - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. - The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. - - - Compiles the entity-level command and creates a prepared version of the command. - - - Compiles the entity-level command and returns the store command text. - The store command text. - - - - Gets or sets the used by the - - . - - The connection used by the entity command. - - - - The connection object used for executing the command - - - - Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. - The Entity SQL statement that specifies a command or stored procedure to execute. - - - Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. - The command tree to execute. - - - Gets or sets the amount of time to wait before timing out. - The time in seconds to wait for the command to execute. - - - - Gets or sets a value that indicates how the - - property is to be interpreted. - - - One of the enumeration values. - - - - Gets the parameters of the Entity SQL statement or stored procedure. - The parameters of the Entity SQL statement or stored procedure. - - - - The collection of parameters for this command - - - - - Gets or sets the transaction within which the executes. - - - The transaction within which the executes. - - - - - The transaction that this command executes in - - - - Gets or sets how command results are applied to rows being updated. - - One of the values. - - - - Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. - true if the command object should be visible in a Windows Form Designer control; otherwise, false. - - - Gets or sets a value that indicates whether the query plan caching is enabled. - true if the query plan caching is enabled; otherwise, false. - - - - Class representing a connection for the conceptual layer. An entity connection may only - be initialized once (by opening the connection). It is subsequently not possible to change - the connection string, attach a new store connection, or change the store connection string. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, based on the connection string. - - The provider-specific connection string. - An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. - - - - Initializes a new instance of the class with a specified - and - . - - - A to be associated with this - . - - - The underlying data source connection for this object. - - The workspace or connection parameter is null. - The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. - The connection is not from an ADO.NET Entity Framework-compatible provider. - - - - Constructs the EntityConnection from Metadata loaded in memory - - Workspace containing metadata information. - Store connection. - If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. - - - - Returns the associated with this - - . - - - The associated with this - - . - - The inline connection string contains an invalid Metadata keyword value. - - - Establishes a connection to the data source by calling the underlying data provider's Open method. - An error occurs when you open the connection, or the name of the underlying data provider is not known. - The inline connection string contains an invalid Metadata keyword value. - - - - Asynchronously establishes a connection to the data store by calling the Open method on the underlying data provider - - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a new instance of an , with the - - set to this - - . - - - An object. - - The name of the underlying data provider is not known. - - - - Create a new command object that uses this connection object - - The command object. - - - Closes the connection to the database. - An error occurred when closing the connection. - - - Not supported. - Not supported. - When the method is called. - - - Begins a transaction by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - Begins a transaction with the specified isolation level by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - The isolation level of the transaction. - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - - Begins a database transaction - - The isolation level of the transaction - An object representing the new transaction - - - - Enlists this in the specified transaction. - - The transaction object to enlist into. - - The state of the is not - - . - - - - - Cleans up this connection object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets or sets the connection string. - - The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. - - An attempt was made to set the property after the - - ’s was initialized. The - - is initialized either when the instance is constructed through the overload that takes a - - as a parameter, or when the - - instance has been opened. - - An invalid connection string keyword has been provided or a required connection string keyword has not been provided. - - - Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. - The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. - The value set is less than 0. - - - Gets the name of the current database, or the database that will be used after a connection is opened. - The value of the Database property of the underlying data provider. - The underlying data provider is not known. - - - - Gets the state of the EntityConnection, which is set up to track the state of the underlying - database connection that is wrapped by this EntityConnection. - - - - Gets the name or network address of the data source to connect to. - The name of the data source. The default value is an empty string. - The underlying data provider is not known. - - - Gets a string that contains the version of the data source to which the client is connected. - The version of the data source that is contained in the provider connection string. - The connection is closed. - - - - Gets the provider factory associated with EntityConnection - - - - - Provides access to the underlying data source connection that is used by the - - object. - - - The for the data source connection. - - - - - Gets the current transaction that this connection is enlisted in. May be null. - - - - - Class representing a connection string builder for the entity client provider - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class using the supplied connection string. - - A provider-specific connection string to the underlying data source. - - - - Clears the contents of the instance. - - - - - Determines whether the contains a specific key. - - - Returns true if the contains an element that has the specified key; otherwise, false. - - - The key to locate in the . - - - - - Retrieves a value corresponding to the supplied key from this - - . - - Returns true if keyword was found in the connection string; otherwise, false. - The key of the item to retrieve. - The value corresponding to keyword. - keyword contains a null value (Nothing in Visual Basic). - - - - Removes the entry with the specified key from the - - instance. - - Returns true if the key existed in the connection string and was removed; false if the key did not exist. - - The key of the keyword/value pair to be removed from the connection string in this - - . - - keyword is null (Nothing in Visual Basic) - - - Gets or sets the name of a section as defined in a configuration file. - The name of a section in a configuration file. - - - Gets or sets the name of the underlying .NET Framework data provider in the connection string. - The invariant name of the underlying .NET Framework data provider. - - - Gets or sets the metadata locations in the connection string. - Gets or sets the metadata locations in the connection string. - - - Gets or sets the inner, provider-specific connection string. - The inner, provider-specific connection string. - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true in every case, because the - - supplies a fixed-size collection of keyword/value pairs. - - - - - Gets an that contains the keys in the - - . - - - An that contains the keys in the - - . - - - - Gets or sets the value associated with the specified key. In C#, this property is the indexer. - The value associated with the specified key. - The key of the item to get or set. - keyword is a null reference (Nothing in Visual Basic). - Tried to add a key that does not exist in the available keys. - Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). - - - - A data reader class for the entity client provider - - - - - Closes the object. - - - - - Releases the resources consumed by this and calls - - . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the value of the specified column as a Boolean. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a byte. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of bytes read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the value of the specified column as a single character. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of characters read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the name of the data type of the specified column. - The name of the data type. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - - Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. - - A data reader. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a double-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the data type of the specified column. - The data type of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a single-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a globally-unique identifier (GUID). - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 16-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 32-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 64-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the name of the column, given the zero-based column ordinal. - The name of the specified column. - The zero-based column ordinal. - - - Gets the column ordinal given the name of the column. - The zero-based column ordinal. - The name of the column. - The name specified is not a valid column name. - - - Returns the provider-specific field type of the specified column. - - The object that describes the data type of the specified column. - - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Gets all provider-specific attribute columns in the collection for the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - - Returns a that describes the column metadata of the - - . - - - A that describes the column metadata. - - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Populates an array of objects with the column values of the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - Gets a value that indicates whether the column contains nonexistent or missing values. - - true if the specified column is equivalent to ; otherwise, false. - - The zero-based column ordinal. - - - Advances the reader to the next result when reading the results of a batch of statements. - true if there are more result sets; otherwise, false. - - - - Asynchronously moves the reader to the next result set when reading a batch of statements - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if there are more result sets; false otherwise. - - - - Advances the reader to the next record in a result set. - true if there are more rows; otherwise, false. - - - - Asynchronously moves the reader to the next row of the current result set - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if there are more rows; false otherwise. - - - - - Returns an that can be used to iterate through the rows in the data reader. - - - An that can be used to iterate through the rows in the data reader. - - - - - Returns a nested . - - The nested data record. - The number of the DbDataRecord to return. - - - - Returns nested readers as objects. - - - The nested readers as objects. - - The ordinal of the column. - - - Gets a value indicating the depth of nesting for the current row. - The depth of nesting for the current row. - - - Gets the number of columns in the current row. - The number of columns in the current row. - - - - Gets a value that indicates whether this contains one or more rows. - - - true if the contains one or more rows; otherwise, false. - - - - - Gets a value indicating whether the is closed. - - - true if the is closed; otherwise, false. - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The name of the column. - - - - Gets the number of fields in the that are not hidden. - - The number of fields that are not hidden. - - - - Gets for this - - . - - The information of a data record. - - - - Class representing a parameter used in EntityCommand - - - - - Initializes a new instance of the class using the default values. - - - - - Initializes a new instance of the class using the specified parameter name and data type. - - The name of the parameter. - - One of the values. - - - - - Initializes a new instance of the class using the specified parameter name, data type and size. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - The name of the source column. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - One of the values. - - true to indicate that the parameter accepts null values; otherwise, false. - The number of digits used to represent the value. - The number of decimal places to which value is resolved. - The name of the source column. - - One of the values. - - The value of the parameter. - - - - Resets the type associated with the . - - - - Returns a string representation of the parameter. - A string representation of the parameter. - - - Gets or sets the name of the entity parameter. - The name of the entity parameter. - - - - Gets or sets the of the parameter. - - - One of the values. - - - - Gets or sets the type of the parameter, expressed as an EdmType. - The type of the parameter, expressed as an EdmType. - - - - Gets or sets the number of digits used to represent the - - property. - - The number of digits used to represent the value. - - - - Gets or sets the number of decimal places to which - - is resolved. - - The number of decimal places to which value is resolved. - - - Gets or sets the value of the parameter. - The value of the parameter. - - - Gets or sets the direction of the parameter. - - One of the values. - - - - Gets or sets a value that indicates whether the parameter accepts null values. - true if null values are accepted; otherwise, false. - - - Gets or sets the maximum size of the data within the column. - The maximum size of the data within the column. - - - - Gets or sets the name of the source column mapped to the and used for loading or returning the - - . - - The name of the source column mapped to the dataset and used for loading or returning the value. - - - Gets or sets a value that indicates whether source column is nullable. - true if source column is nullable; otherwise, false. - - - - Gets or sets the to use when loading the value. - - - One of the values. - - - - - Class representing a provider factory for the entity client provider - - - - - A singleton object for the entity client provider factory object. - This remains a public field (not property) because DbProviderFactory expects a field. - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - This method is currently not supported. - - - - Returns the requested class. - - - A new instance of . The supported types are - - , - - , and - - . Returns null (or Nothing in Visual Basic) for every other type. - - - The to return. - - - - - Class representing a transaction for the conceptual layer - - - - Commits the underlying transaction. - - - Rolls back the underlying transaction. - - - - Cleans up this transaction object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets for this - - . - - - An to the underlying data source. - - - - - The connection object owning this transaction object - - - - - Gets the isolation level of this . - - - An enumeration value that represents the isolation level of the underlying transaction. - - - - - Gets the DbTransaction for the underlying provider transaction. - - - - - Represents a failure while trying to prepare or execute a CommandCompilation - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents a failure while trying to prepare or execute a CommandExecution - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - An identifier for an entity. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with an entity set name and a generic - - collection. - - - A that is the entity set name qualified by the entity container name. - - - A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the - - . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. - - - - - Initializes a new instance of the class with an entity set name and an - - collection of - - objects. - - - A that is the entity set name qualified by the entity container name. - - - An collection of - - objects with which to initialize the key. - - - - - Initializes a new instance of the class with an entity set name and specific entity key pair. - - - A that is the entity set name qualified by the entity container name. - - - A that is the name of the key. - - - An that is the key value. - - - - Gets the entity set for this entity key from the given metadata workspace. - - The for the entity key. - - The metadata workspace that contains the entity. - The entity set could not be located in the specified metadata workspace. - - - Returns a value that indicates whether this instance is equal to a specified object. - true if this instance and obj have equal values; otherwise, false. - - An to compare with this instance. - - - - - Returns a value that indicates whether this instance is equal to a specified - - . - - true if this instance and other have equal values; otherwise, false. - - An object to compare with this instance. - - - - - Serves as a hash function for the current object. - - is suitable for hashing algorithms and data structures such as a hash table. - - - A hash code for the current . - - - - - Compares two objects. - - true if the key1 and key2 values are equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Compares two objects. - - true if the key1 and key2 values are not equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream and provides an additional caller-defined context. - - - - Gets a singleton EntityKey by which a read-only entity is identified. - - - - - Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. - - - - Gets or sets the name of the entity set. - - A value that is the name of the entity set for the entity to which the - - belongs. - - - - Gets or sets the name of the entity container. - - A value that is the name of the entity container for the entity to which the - - belongs. - - - - - Gets or sets the key values associated with this . - - - A of key values for this - - . - - - - - Gets a value that indicates whether the is temporary. - - - true if the is temporary; otherwise, false. - - - - - Information about a key that is part of an EntityKey. - A key member contains the key name and value. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified entity key pair. - - The name of the key. - The key value. - - - Returns a string representation of the entity key. - A string representation of the entity key. - - - Gets or sets the name of the entity key. - The key name. - - - Gets or sets the value of the entity key. - The key value. - - - - Kind of collection (applied to Properties) - - - - - Property is not a Collection - - - - - Collection has Bag semantics( unordered and duplicates ok) - - - - - Collection has List semantics - (Order is deterministic and duplicates ok) - - - - - The concurrency mode for properties. - - - - - Default concurrency mode: the property is never validated - at write time - - - - - Fixed concurrency mode: the property is always validated at - write time - - - - - The pattern for Server Generated Properties. - - - - - Not a Server Generated Property. This is the default. - - - - - A value is generated on INSERT, and remains unchanged on update. - - - - - A value is generated on both INSERT and UPDATE. - - - - - Represents an eSQL Query compilation exception; - The class of exceptional conditions that may cause this exception to be raised are mainly: - 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; - 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information - not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. - For more information, see eSQL Language Spec. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - Gets a description of the error. - A string that describes the error. - - - Gets the approximate context where the error occurred, if available. - A string that describes the approximate context where the error occurred, if available. - - - Gets the approximate line number where the error occurred. - An integer that describes the line number where the error occurred. - - - Gets the approximate column number where the error occurred. - An integer that describes the column number where the error occurred. - - - - Thrown to indicate that a command tree is invalid. - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - Mapping exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Class for representing a collection of mapping items in Edm space. - - - - - Base class for the type created at design time to store the generated views. - - - - Returns the key/value pair at the specified index, which contains the view and its key. - The key/value pair at index , which contains the view and its key. - The index of the view. - - - - Gets or sets the name of . - - The container name. - - - - Gets or sets in storage schema. - - Container name. - - - Hash value. - Hash value. - - - Hash value of views. - Hash value. - - - Gets or sets view count. - View count. - - - - Attribute to mark the assemblies that contain the generated views type. - - - - - Initializes a new instance of the class. - - The view type. - - - Gets the T:System.Type of the view. - The T:System.Type of the view. - - - - Represents a complex type mapping for a function import result. - - - - - Specifies a function import structural type mapping. - - - - - Gets the property mappings for the result type of a function import. - - - - - Initializes a new FunctionImportComplexTypeMapping instance. - - The return type. - The property mappings for the result type of a function import. - - - - Ges the return type. - - - - - Represents a function import entity type mapping. - - - - - Initializes a new FunctionImportEntityTypeMapping instance. - - The entity types at the base of - the type hierarchies to be mapped. - The entity types to be mapped. - The property mappings for the result types of a function import. - The mapping conditions. - - - - Gets the entity types being mapped. - - - - - Gets the entity types at the base of the hierarchies being mapped. - - - - - Gets the mapping conditions. - - - - - Represents a mapping condition for a function import result. - - - - - - - - Gets the name of the column used to evaluate the condition. - - - - - Represents a mapping condition for the result of a function import - evaluated by checking null or not null. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. - - The name of the column used to evaluate the condition. - Flag that indicates whether a null or not null check is performed. - - - - Gets a flag that indicates whether a null or not null check is performed. - - - - - Represents a mapping condition for the result of a function import, - evaluated by comparison with a specified value. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionValue instance. - - The name of the column used to evaluate the condition. - The value to compare with. - - - - Gets the value used for comparison. - - - - - Represents a mapping from a model function import to a store composable or non-composable function. - - - - - Gets model function (or source of the mapping) - - - - - Gets store function (or target of the mapping) - - - - - Represents a mapping from a model function import to a store composable function. - - - - - Initializes a new FunctionImportMappingComposable instance. - - The model function import. - The store composable function. - The result mapping for the function import. - The parent container mapping. - - - - Gets the result mapping for the function import. - - - - - Represents a mapping from a model function import to a store non-composable function. - - - - - Initializes a new FunctionImportMappingNonComposable instance. - - The model function import. - The store non-composable function. - The function import result mappings. - The parent container mapping. - - - - Gets the function import result mappings. - - - - - Base class for mapping a property of a function import return type. - - - - - Maps a function import return type property to a table column. - - - - - Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. - - The mapped property name. - The mapped column name. - - - - Gets the mapped property name. - - - - - Gets the mapped column name. - - - - - Represents the base item class for all the mapping metadata - - - - - Represents the base item class for all the metadata - - - - - Describes modification function mappings for an association set. - - - - - Initalizes a new AssociationSetModificationFunctionMapping instance. - - An association set. - A delete function mapping. - An insert function mapping. - - - - - - - Gets the association set. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Describes modification function mappings for an entity type within an entity set. - - - - - Initializes a new EntityTypeModificationFunctionMapping instance. - - An entity type. - A delete function mapping. - An insert function mapping. - An updated function mapping. - - - - - - - Gets the entity type. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Gets hte update function mapping. - - - - - Describes the location of a member within an entity or association type structure. - - - - - Initializes a new ModificationFunctionMemberPath instance. - - Gets the members in the path from the leaf (the member being bound) - to the root of the structure. - Gets the association set to which we are navigating - via this member. If the value is null, this is not a navigation member path. - - - - - - - Gets the members in the path from the leaf (the member being bound) - to the Root of the structure. - - - - - Gets the association set to which we are navigating via this member. If the value - is null, this is not a navigation member path. - - - - - Binds a modification function parameter to a member of the entity or association being modified. - - - - - Initializes a new ModificationFunctionParameterBinding instance. - - The parameter taking the value. - The path to the entity or association member defining the value. - A flag indicating whether the current or original member value is being bound. - - - - - - - Gets the parameter taking the value. - - - - - Gets the path to the entity or association member defining the value. - - - - - Gets a flag indicating whether the current or original - member value is being bound. - - - - - Defines a binding from a named result set column to a member taking the value. - - - - - Initializes a new ModificationFunctionResultBinding instance. - - The name of the column to bind from the function result set. - The property to be set on the entity. - - - - - - - Gets the name of the column to bind from the function result set. - - - - - Gets the property to be set on the entity. - - - - - Represents the Mapping metadata for an AssociationSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the AssociationSetMapping elements in the - above example. And it is possible to access the AssociationTypeMap underneath it. - There will be only one TypeMap under AssociationSetMap. - - - - - Represents the Mapping metadata for an Extent in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for all the extent map elements in the - above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - - - Gets the parent container mapping. - - - - - Gets or sets the query view associated with this mapping. - - - - - Initializes a new AssociationSetMapping instance. - - The association set to be mapped. - The store entity set to be mapped. - The parent container mapping. - - - - Adds a property mapping condition. - - The condition to add. - - - - Removes a property mapping condition. - - The property mapping condition to remove. - - - - Gets the association set that is mapped. - - - - - Gets the contained association type mapping. - - - - - Gets or sets the corresponding function mapping. Can be null. - - - - - Gets the store entity set that is mapped. - - - - - Gets or sets the source end property mapping. - - - - - Gets or sets the target end property mapping. - - - - - Gets the property mapping conditions. - - - - - Represents the Mapping metadata for an association type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all association Type map elements in the - above example. Users can access the table mapping fragments under the - association type mapping through this class. - - - - - Represents the Mapping metadata for a type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all the Type map elements in the - above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. - The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. - - - - - Creates an AssociationTypeMapping instance. - - The AssociationSetMapping that - the contains this AssociationTypeMapping. - - - - Gets the AssociationSetMapping that contains this AssociationTypeMapping. - - - - - Gets the association type being mapped. - - - - - Gets the single mapping fragment. - - - - - Mapping metadata for Complex properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the complex property map elements in the - above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based - on the type of the ComplexProperty in case of inheritance. - - - - - Construct a new Complex Property mapping object - - The MemberMetadata object that represents this Complex member - - - - Adds a type mapping corresponding to a nested complex type. - - The complex type mapping to be added. - - - - Removes a type mapping corresponding to a nested complex type. - - The complex type mapping to be removed. - - - - Gets a read only collections of type mappings corresponding to the - nested complex types. - - - - - Mapping metadata for Complex Types. - - - - - Creates a ComplexTypeMapping instance. - - The ComplexType being mapped. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the ComplexType being mapped. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Mapping metadata for End property of an association. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the end property map elements in the - above example. EndPropertyMaps provide mapping for each end of the association. - - - - - Creates an association end property mapping. - - An AssociationEndMember that specifies - the association end to be mapped. - - - - Adds a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be added. - - - - Removes a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be removed. - - - - Gets an AssociationEndMember that specifies the mapped association end. - - - - - Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children - of this association end property mapping. - - - - - Represents the Mapping metadata for the EntityContainer map in CS space. - Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. - - - For Example if conceptually you could represent the CS MSL file as following - ---Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --AssociationSetMapping - The type represents the metadata for EntityContainerMapping element in the above example. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - We currently assume that an Entity Container on the C side - is mapped to a single Entity Container in the S - space. - - - - - Initializes a new EntityContainerMapping instance. - - The conceptual entity container to be mapped. - The store entity container to be mapped. - The parent mapping item collection. - Flag indicating whether to generate update views. - - - - Adds an entity set mapping. - - The entity set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds an association set mapping. - - The association set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds a function import mapping. - - The function import mapping to add. - - - - Removes a function import mapping. - - The function import mapping to remove. - - - - Gets the parent mapping item collection. - - - - - Gets the type kind for this item - - - - - Gets the conceptual entity container. - - - - - Gets the store entity container. - - - - - Gets the entity set mappings. - - - - - Gets the association set mappings. - - - - - Gets the function import mappings. - - - - - Gets a flag that indicates whether to generate the update views or not. - - - - - Represents the Mapping metadata for an EnitytSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the EntitySetMapping elements in the - above example. And it is possible to access the EntityTypeMaps underneath it. - - - - - Initialiazes a new EntitySetMapping instance. - - The entity set to be mapped. - The parent container mapping. - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Adds a function mapping. - - The function mapping to add. - - - - Removes a function mapping. - - The function mapping to remove. - - - - Gets the entity set that is mapped. - - - - - Gets the contained entity type mappings. - - - - - Gets the corresponding function mappings. - - - - - Mapping metadata for Entity type. - If an EntitySet represents entities of more than one type, than we will have - more than one EntityTypeMapping for an EntitySet( For ex : if - PersonSet Entity extent represents entities of types Person and Customer, - than we will have two EntityType Mappings under mapping for PersonSet). - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all entity Type map elements in the - above example. Users can access the table mapping fragments under the - entity type mapping through this class. - - - - - Creates an EntityTypeMapping instance. - - The EntitySetMapping that contains this EntityTypeMapping. - - - - Adds an entity type to the mapping. - - The EntityType to be added. - - - - Removes an entity type from the mapping. - - The EntityType to be removed. - - - - Adds an entity type hierarchy to the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be added. - - - - Removes an entity type hierarchy from the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be removed. - - - - Adds a mapping fragment. - - The mapping fragment to be added. - - - - Removes a mapping fragment. - - The mapping fragment to be removed. - - - - Gets the EntitySetMapping that contains this EntityTypeMapping. - - - - - Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. - - - - - Gets a flag that indicates whether this is a type hierarchy mapping. - - - - - Gets a read-only collection of mapping fragments. - - - - - Gets the mapped entity types. - - - - - Gets the mapped base types for a hierarchy mapping. - - - - - Represents the metadata for mapping fragment. - A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) - Each MappingFragment provides mapping for those properties of a type that map to a single table. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the mapping fragment elements in the - above example. Users can access all the top level constructs of - MappingFragment element like EntityKey map, Property Maps, Discriminator - property through this mapping fragment class. - - - - - Creates a MappingFragment instance. - - The EntitySet corresponding to the table of view being mapped. - The TypeMapping that contains this MappingFragment. - Flag that indicates whether to include 'DISTINCT' when generating queries. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the EntitySet corresponding to the table or view being mapped. - - - - - Gets the TypeMapping that contains this MappingFragment. - - - - - Gets a flag that indicates whether to include 'DISTINCT' when generating queries. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents a collection of items in Storage Mapping (CS Mapping) space. - - - - Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. - The that this mapping is to use. - The that this mapping is to use. - The file paths that this mapping is to use. - - - Initializes a new instance of the class using the specified , and XML readers. - The that this mapping is to use. - The that this mapping is to use. - The XML readers that this mapping is to use. - - - - Computes a hash value for the container mapping specified by the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A string that specifies the computed hash value. - - - - Computes a hash value for the single container mapping in the collection. - - A string that specifies the computed hash value. - - - - Creates a dictionary of (extent, generated view) for a container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Creates a dictionary of (extent, generated view) for the single container mapping - in the collection. - - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Factory method that creates a . - - - The edm metadata collection to map. Must not be null. - - - The store metadata collection to map. Must not be null. - - - MSL artifacts to load. Must not be null. - - - Paths to MSL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - - Gets or sets a for creating instances - that are used to retrieve pre-generated mapping views. - - - - Gets the version of this represents. - The version of this represents. - - - - Describes modification function binding for change processing of entities or associations. - - - - - Initializes a new ModificationFunctionMapping instance. - - The entity or association set. - The entity or association type. - The metadata of function to which we should bind. - Bindings for function parameters. - The output parameter producing number of rows affected. - Bindings for the results of function evaluation - - - - - - - Gets output parameter producing number of rows affected. May be null. - - - - - Gets Metadata of function to which we should bind. - - - - - Gets bindings for function parameters. - - - - - Gets bindings for the results of function evaluation. - - - - - Mapping metadata for scalar properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the scalar property map elements in the - above example. - - - - - Creates a mapping between a simple property and a column. - - The property to be mapped. - The column to be mapped. - - - - Gets an EdmProperty that specifies the mapped column. - - - - - metadata exception class - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - DataSpace - - - - - OSpace indicates the item in the clr space - - - - - CSpace indicates the item in the CSpace - edm primitive types + - types defined in csdl - - - - - SSpace indicates the item in the SSpace - - - - - Mapping between OSpace and CSpace - - - - - Mapping between CSpace and SSpace - - - - - This class encapsulates the error information for a generic EDM error. - - - - Gets the error message. - The error message. - - - - Class for representing a collection of items in Edm space. - - - - - Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - - Initializes a new instance of the class. - The entity data model. - - - - Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. - - The paths where the conceptual schema definition language (CSDL) files exist. - - - - Returns a collection of the objects. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - - - - Returns a collection of the objects with the specified conceptual model version. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - The conceptual model version. - - - - Factory method that creates an . - - - CSDL artifacts to load. Must not be null. - - - Paths to CSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the conceptual model version for this collection. - The conceptual model version for this collection. - - - - This class encapsulates the error information for a schema error that was encountered. - - - - - Constructs a EdmSchemaError object. - - The explanation of the error. - The code associated with this error. - The severity of the error. - - - Returns the error message. - The error message. - - - Gets the error code. - The error code. - - - Gets the severity level of the error. - - One of the values. The default is - - . - - - - Gets the line number where the error occurred. - The line number where the error occurred. - - - Gets the column where the error occurred. - The column where the error occurred. - - - Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. - The location of the schema that contains the error. - - - Gets the name of the schema that contains the error. - The name of the schema that contains the error. - - - Gets a string representation of the stack trace at the time the error occurred. - A string representation of the stack trace at the time the error occurred. - - - - Defines the different severities of errors that can occur when validating an Entity Framework model. - - - - - A warning that does not prevent the model from being used. - - - - - An error that prevents the model from being used. - - - - - Represents a end of a Association Type - - - - - Initializes a new instance of the RelationshipEndMember class - - - - - Represents the edm member class - - - - Returns the name of this member. - The name of this member. - - - - Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database - column for this property. In the conceptual model, this should align with the corresponding property from the entity class - and should not be changed. - - The name of this member. - - - Gets the type on which this member is declared. - - A object that represents the type on which this member is declared. - - - - - Gets the instance of the class that contains both the type of the member and facets for the type. - - - A object that contains both the type of the member and facets for the type. - - - - - Tells whether this member is marked as a Computed member in the EDM definition - - - - - Tells whether this member's Store generated pattern is marked as Identity in the EDM definition - - - - Access the EntityType of the EndMember in an association. - The EntityType of the EndMember in an association. - - - Gets the operational behavior of this relationship end member. - - One of the values. The default is - - . - - - - Gets the multiplicity of this relationship end member. - - One of the values. - - - - - Creates a read-only AssociationEndMember instance. - - The name of the association end member. - The reference type for the end. - The multiplicity of the end. - Flag that indicates the delete behavior of the end. - Metadata properties to be associated with the instance. - The newly created AssociationEndMember instance. - The specified name is null or empty. - The specified reference type is null. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Class for representing an Association set - - - - - Class for representing a relationship set - - - - - Class for representing a entity set - - - - Returns the name of the current entity or relationship set. - The name of the current entity or relationship set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets escaped provider specific SQL describing this entity set. - - - - - Gets or sets the name of the current entity or relationship set. - If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. - To change the table name of a store space use the Table property. - - The name of the current entity or relationship set. - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - Gets the entity container of the current entity or relationship set. - - An object that represents the entity container of the current entity or relationship set. - - Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database table name for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database schema for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets the relationship type of this . - - - An object that represents the relationship type of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Creates a read-only AssociationSet instance from the specified parameters. - - The name of the association set. - The association type of the elements in the association set. - The entity set for the source association set end. - The entity set for the target association set end. - Metadata properties to be associated with the instance. - The newly created AssociationSet instance. - The specified name is null or empty. - The specified association type is null. - - The entity type of one of the ends of the specified - association type does not match the entity type of the corresponding entity set end. - - - - - Gets the association related to this . - - - An object that represents the association related to this - - . - - - - - Gets the ends of this . - - - A collection of type that contains the ends of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents built-in type kind for this - - . - - - - - Class representing a AssociationSet End - - - - - Returns the name of the End role for this . - - - The name of the End role for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the parent association set of this . - - - An object that represents the parent association set of this - - . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the End member that this object corresponds to. - - - An object that represents the End member that this - - object corresponds to. - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the name of the End for this . - - - The name of the End for this . - - - - - Gets the name of the End role for this . - - - The name of the End role for this . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - Gets the entity set referenced by this End role. - - An object that represents the entity set referred by this End role. - - - - - Describes an association/relationship between two entities in the conceptual model or a foreign key relationship - between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. - If a foreign key is defined the property will be true and the property will contain details of the foreign keys - - - - - Represents the Relationship type - - - - - Represents the Entity Type - - - - - Represents the Structural Type - - - - - Base EdmType class for all the model types - - - - Returns the full name of this type. - The full name of this type. - - - - Returns an instance of the whose element type is this type. - - - The object whose element type is this type. - - - - Gets the name of this type. - The name of this type. - - - Gets the namespace of this type. - The namespace of this type. - - - Gets a value indicating whether this type is abstract or not. - true if this type is abstract; otherwise, false. - Thrown if the setter is called on instance that is in ReadOnly state - - - Gets the base type of this type. - The base type of this type. - Thrown if the setter is called on instance that is in ReadOnly state - Thrown if the value passed in for setter will create a loop in the inheritance chain - - - Gets the full name of this type. - The full name of this type. - - - - Adds a member to this type - - The member to add - - - Removes a member from this type. - The member to remove. - - - Gets the list of members on this type. - - A collection of type that contains a set of members on this type. - - - - - Adds the specified property to the list of keys for the current entity. - - The property to add. - if member argument is null - Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type - If the EntityType instance is in ReadOnly state - - - Removes the specified key member from the collection. - The key member to remove. - - - Gets the list of all the key members for the current entity or relationship type. - - A object that represents the list of key members for the current entity or relationship type. - - - - Gets the list of all the key properties for this entity type. - The list of all the key properties for this entity type. - - - Gets the list of ends for this relationship type. - - A collection of type that contains the list of Ends for this relationship type. - - - - - Creates a read-only AssociationType instance from the specified parameters. - - The name of the association type. - The namespace of the association type. - Flag that indicates a foreign key (FK) relationship. - The data space for the association type. - The source association end member. - The target association end member. - A referential constraint. - Metadata properties to be associated with the instance. - The newly created AssociationType instance. - The specified name is null or empty. - The specified namespace is null or empty. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of ends for this . - - - A collection of type that contains the list of ends for this - - . - - - - Gets or sets the referential constraint. - The referential constraint. - - - - Gets the list of constraints for this . - - - A collection of type that contains the list of constraints for this - - . - - - - Gets the Boolean property value that specifies whether the column is a foreign key. - A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. - - - - Represents the structure of an . In the conceptual-model this represents the shape and structure - of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. - - - - - Returns a object that references this - - . - - - A object that references this - - . - - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - Adds the specified navigation property to the members of this type. - The navigation property is added regardless of the read-only flag. - - The navigation property to be added. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the declared navigation properties associated with the entity type. - The declared navigation properties associated with the entity type. - - - - Gets the navigation properties of this . - - - A collection of type that contains the list of navigation properties on this - - . - - - - Gets the list of declared properties for the entity type. - The declared properties for the entity type. - - - Gets the collection of declared members for the entity type. - The collection of declared members for the entity type. - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Represents an enumeration type. - - - - - Class representing a simple type - - - - - Creates a read-only EnumType instance. - - The name of the enumeration type. - The namespace of the enumeration type. - The underlying type of the enumeration type. - Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. - The members of the enumeration type. - Metadata properties to be associated with the enumeration type. - The newly created EnumType instance. - underlyingType is null. - - name is null or empty. - -or- - namespaceName is null or empty. - -or- - underlyingType is not a supported underlying type. - -or- - The specified members do not have unique names. - -or- - The value of a specified member is not in the range of the underlying type. - - - - Returns the kind of the type - - - Gets a collection of enumeration members for this enumeration type. - - - Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) - - - Gets the underlying type for this enumeration type. - - - - Specifies the kinds of item attributes in the conceptual model. - - - - - An enumeration member indicating that an item attribute is System - - - - - An enumeration member indicating that an item attribute is Extended. - - - - - List of all the built in types - - - - - Association Type Kind - - - - - AssociationSetEnd Kind - - - - - AssociationSet Kind - - - - - Association Type Kind - - - - - EntitySetBase Kind - - - - - Entity Type Base Kind - - - - - Collection Type Kind - - - - - Collection Kind - - - - - Complex Type Kind - - - - - Documentation Kind - - - - - DeleteAction Type Kind - - - - - Edm Type Kind - - - - - Entity Container Kind - - - - - Entity Set Kind - - - - - Entity Type Kind - - - - - Enumeration Type Kind - - - - - Enum Member Kind - - - - - Facet Kind - - - - - EdmFunction Kind - - - - - Function Parameter Kind - - - - - Global Item Type Kind - - - - - Metadata Property Kind - - - - - Navigation Property Kind - - - - - Metadata Item Type Kind - - - - - EdmMember Type Kind - - - - - Parameter Mode Kind - - - - - Primitive Type Kind - - - - - Primitive Type Kind Kind - - - - - EdmProperty Type Kind - - - - - ProviderManifest Type Kind - - - - - Referential Constraint Type Kind - - - - - Ref Type Kind - - - - - RelationshipEnd Type Kind - - - - - Relationship Multiplicity Type Kind - - - - - Relationship Set Type Kind - - - - - Relationship Type - - - - - Row Type Kind - - - - - Simple Type Kind - - - - - Structural Type Kind - - - - - Type Information Kind - - - - - Represents the Edm Collection Type - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - The instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - - - Represents the Edm Complex Type. This can be used to configure complex types - from a conceptual-space model-based convention. Complex types are not supported in the store model. - - - - - Creates a new instance of the type. - - The name of the complex type. - The namespace of the complex type. - The dataspace to which the complex type belongs to. - Members of the complex type. - Metadata properties to be associated with the instance. - Thrown if either name, namespace or members argument is null. - - A new instance a the type. - - - The newly created will be read only. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Class representing the Documentation associated with an item - - - - - Initializes a new Documentation instance. - - A summary string. - A long description string. - - - - Returns the summary for this . - - - The summary for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the summary for this . - - - The summary for this . - - - - - Gets the long description for this . - - - The long description for this . - - - - - Gets a value indicating whether this object contains only a null or an empty - - and a - - . - - - true if this object contains only a null or an empty - - and a - - ; otherwise, false. - - - - - Class for representing a function - - - - - Adds a parameter to this function. - - The parameter to be added. - - - - The factory method for constructing the object. - - The name of the function. - The namespace of the function. - The namespace the function belongs to. - Additional function attributes and properties. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - One of the enumeration values of the enumeration. - - - - Returns the full name (namespace plus name) of this type. - The full name of the type. - - - - Gets the parameters of this . - - - A collection of type that contains the parameters of this - - . - - - - - Gets the return parameter of this . - - - A object that represents the return parameter of this - - . - - - - - Gets the return parameters of this . - - - A collection of type that represents the return parameters of this - - . - - - - Gets the store function name attribute of this function. - - - Gets the parameter type semantics attribute of this function. - - - Gets the aggregate attribute of this function. - - - - Gets a value indicating whether built in attribute is present on this function. - - - true if the attribute is present; otherwise, false. - - - - - Gets a value indicating whether this instance is from the provider manifest. - - - true if this instance is from the provider manifest; otherwise, false. - - - - - Gets a value indicating whether the is a niladic function (a function that accepts no arguments). - - - true if the function is niladic; otherwise, false. - - - - Gets whether this instance is mapped to a function or to a stored procedure. - true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. - - - Gets a query in the language that is used by the database management system or storage model. - - A string value in the syntax used by the database management system or storage model that contains the query or update statement of the - - . - - - - Gets or sets the schema associated with the function. - The schema associated with the function. - - - - In conceptual-space, EdmProperty represents a property on an Entity. - In store-space, EdmProperty represents a column in a table. - - - - Creates a new primitive property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new enum property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new complex property. - The newly created property. - The name of the property. - The type of the property. - - - - Creates a new instance of EdmProperty type. - - Name of the property. - - Property - - A new instance of EdmProperty type - - - Sets the metadata properties. - The metadata properties to be set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a value indicating whether this can have a null value. - - - Nullability in the conceptual model and store model is a simple indication of whether or not - the property is considered nullable. Nullability in the object model is more complex. - When using convention based mapping (as usually happens with POCO entities), a property in the - object model is considered nullable if and only if the underlying CLR type is nullable and - the property is not part of the primary key. - When using attribute based mapping (usually used with entities that derive from the EntityObject - base class), a property is considered nullable if the IsNullable flag is set to true in the - attribute. This flag can - be set to true even if the underlying type is not nullable, and can be set to false even if the - underlying type is nullable. The latter case happens as part of default code generation when - a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. - In such a case, the Entity Framework treats the property as non-nullable even though the CLR would - allow null to be set. - There is no good reason to set a non-nullable CLR type as nullable in the object model and this - should not be done even though the attribute allows it. - - - true if this can have a null value; otherwise, false. - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets the type name of the property. - The type name of the property. - - - - Gets the default value for this . - - - The default value for this . - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets whether the property is a collection type property. - true if the property is a collection type property; otherwise, false. - - - Gets whether this property is a complex type property. - true if this property is a complex type property; otherwise, false. - - - Gets whether this property is a primitive type. - true if this property is a primitive type; otherwise, false. - - - Gets whether this property is an enumeration type property. - true if this property is an enumeration type property; otherwise, false. - - - Gets whether this property is an underlying primitive type. - true if this property is an underlying primitive type; otherwise, false. - - - Gets the complex type information for this property. - The complex type information for this property. - - - Gets the primitive type information for this property. - The primitive type information for this property. - - - Gets the enumeration type information for this property. - The enumeration type information for this property. - - - Gets the underlying primitive type information for this property. - The underlying primitive type information for this property. - - - Gets or sets the concurrency mode for the property. - The concurrency mode for the property. - - - Gets or sets the database generation method for the database column associated with this property - The store generated pattern for the property. - - - Gets or sets the kind of collection for this model. - The kind of collection for this model. - - - Gets whether the maximum length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the maximum length of the property. - The maximum length of the property. - - - Gets or sets whether this property uses the maximum length supported by the provider. - true if this property uses the maximum length supported by the provider; otherwise, false. - - - Gets whether the fixed length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether the length of this property is fixed. - true if the length of this property is fixed; otherwise, false. - - - Gets whether the Unicode facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether this property is a Unicode property. - true if this property is a Unicode property; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the precision of this property. - The precision of this property. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the scale of this property. - The scale of this property. - - - - Class for representing an entity container - - - - - Returns an object by using the specified name for the entity set. - - - An object that represents the entity set that has the specified name. - - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified name for the entity set. - - true if there is an entity set that matches the search criteria; otherwise, false. - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains an object. If there is no entity set, this output parameter contains null. - - - - - Returns a object by using the specified name for the relationship set. - - - An object that represents the relationship set that has the specified name. - - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns a object by using the specified name for the relationship set. - - true if there is a relationship set that matches the search criteria; otherwise, false. - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains a object. - - - - - Returns the name of this . - - - The name of this . - - - - Removes a specific entity set from the container. - The entity set to remove. - - - - Adds a function import to the container. - - The function import to add. - - - - The factory method for constructing the EntityContainer object. - - The name of the entity container to be created. - DataSpace in which this entity container belongs to. - Entity sets that will be included in the new container. Can be null. - Functions that will be included in the new container. Can be null. - Metadata properties to be associated with the instance. - The EntityContainer object. - Thrown if the name argument is null or empty string. - The newly created EntityContainer will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets a list of entity sets and association sets that this - - includes. - - - A object that contains a list of entity sets and association sets that this - - includes. - - - - Gets the association sets for this entity container. - The association sets for this entity container . - - - Gets the entity sets for this entity container. - The entity sets for this entity container . - - - - Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. - - - A that contains - - elements. - - - - - Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can - query and persist entities. In the store-model it represents a table. - From a store-space model-convention it can be used to configure - table name with property and table schema with property. - - - - - The factory method for constructing the EntitySet object. - - The name of the EntitySet. - The db schema. Can be null. - The db table. Can be null. - - The provider specific query that should be used to retrieve data for this EntitySet. Can be null. - - The entity type of the entities that this entity set type contains. - - Metadata properties that will be added to the newly created EntitySet. Can be null. - - The EntitySet object. - Thrown if the name argument is null or empty string. - The newly created EntitySet will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - - - - Represents an enumeration member. - - - - Overriding System.Object.ToString to provide better String representation for this type. - The name of this enumeration member. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - Gets the kind of this type. - - - Gets the name of this enumeration member. - - - Gets the value of this enumeration member. - - - - Class for representing a Facet object - This object is Immutable (not just set to readonly) and - some parts of the system are depending on that behavior - - - - - Returns the name of this . - - - The name of this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the description of this . - - - The object that represents the description of this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the type of this . - - - The object that represents the type of this - - . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the Facet instance is in ReadOnly state - - - Gets a value indicating whether the value of the facet is unbounded. - true if the value of the facet is unbounded; otherwise, false. - - - - Class for representing a FacetDescription object - - - - Returns the name of this facet. - The name of this facet. - - - Gets the name of this facet. - The name of this facet. - - - Gets the type of this facet. - - An object that represents the type of this facet. - - - - Gets the minimum value for this facet. - The minimum value for this facet. - - - Gets the maximum value for this facet. - The maximum value for this facet. - - - Gets the default value of a facet with this facet description. - The default value of a facet with this facet description. - - - Gets a value indicating whether the value of this facet is a constant. - true if this facet is a constant; otherwise, false. - - - Gets a value indicating whether this facet is a required facet. - true if this facet is a required facet; otherwise, false. - - - - Class representing a function parameter - - - - - Returns the name of this . - - - The name of this . - - - - - The factory method for constructing the object. - - The name of the parameter. - The EdmType of the parameter. - - The of the parameter. - - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the mode of this . - - - One of the values. - - Thrown if the FunctionParameter instance is in ReadOnly state - - - - Gets the name of this . - - - The name of this . - - - - - Gets the instance of the class that contains both the type of the parameter and facets for the type. - - - A object that contains both the type of the parameter and facets for the type. - - - - Gets the type name of this parameter. - The type name of this parameter. - - - Gets whether the max length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the maximum length of the parameter. - The maximum length of the parameter. - - - Gets whether the parameter uses the maximum length supported by the database provider. - true if parameter uses the maximum length supported by the database provider; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the precision value of the parameter. - The precision value of the parameter. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the scale value of the parameter. - The scale value of the parameter. - - - - Gets the on which this parameter is declared. - - - A object that represents the function on which this parameter is declared. - - - - - Class representing a metadata attribute for an item - - - - - The factory method for constructing the MetadataProperty object. - - The name of the metadata property. - The type usage of the metadata property. - The value of the metadata property. - The MetadataProperty object. - - Thrown is null. - - The newly created MetadataProperty will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the instance of the class that contains both the type of this - - and facets for the type. - - - A object that contains both the type of this - - and facets for the type. - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the value of this . - - - The value of this . - - - - - Gets a boolean that indicates whether the metadata property is an annotation. - - - - - Represent the edm navigation property class - - - - - Where the given navigation property is on the dependent end of a referential constraint, - returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order - of the principal end key properties. - - A collection of the foreign key properties. - - - - Creates a NavigationProperty instance from the specified parameters. - - The name of the navigation property. - Specifies the navigation property type and its facets. - The relationship type for the navigation. - The source end member in the navigation. - The target end member in the navigation. - The metadata properties of the navigation property. - The newly created NavigationProperty instance. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the relationship type that this navigation property operates on. - The relationship type that this navigation property operates on. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "to" relationship end member of this navigation. - The "to" relationship end member of this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "from" relationship end member in this navigation. - The "from" relationship end member in this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - - Represents the list of possible actions for delete operation - - - - - no action - - - - - Cascade to other ends - - - - - The enumeration defining the mode of a parameter - - - - - In parameter - - - - - Out parameter - - - - - Both in and out parameter - - - - - Return Parameter - - - - - Class representing a primitive type - - - - - Returns the equivalent of this - - . - - - For example if this instance is nvarchar and it's - base type is Edm String then the return type is Edm String. - If the type is actually already a model type then the - return type is "this". - - - An object that is an equivalent of this - - . - - - - Returns the list of primitive types. - - A collection of type that contains the list of primitive types. - - - - - Returns the equivalent of a - - . - - - An object that is an equivalent of a specified - - . - - - A value of type . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a enumeration value that indicates a primitive type of this - - . - - - A enumeration value that indicates a primitive type of this - - . - - - - - Gets the list of facet descriptions for this . - - - A collection of type that contains the list of facet descriptions for this - - . - - - - - Returns an equivalent common language runtime (CLR) type of this - - . Note that the - - property always returns a non-nullable type value. - - - A object that represents an equivalent common language runtime (CLR) type of this - - . - - - - - Primitive Types as defined by EDM - - - - - Binary Type Kind - - - - - Boolean Type Kind - - - - - Byte Type Kind - - - - - DateTime Type Kind - - - - - Decimal Type Kind - - - - - Double Type Kind - - - - - Guid Type Kind - - - - - Single Type Kind - - - - - SByte Type Kind - - - - - Int16 Type Kind - - - - - Int32 Type Kind - - - - - Int64 Type Kind - - - - - String Type Kind - - - - - Time Type Kind - - - - - DateTimeOffset Type Kind - - - - - Geometry Type Kind - - - - - Geography Type Kind - - - - - Geometric point type kind - - - - - Geometric linestring type kind - - - - - Geometric polygon type kind - - - - - Geometric multi-point type kind - - - - - Geometric multi-linestring type kind - - - - - Geometric multi-polygon type kind - - - - - Geometric collection type kind - - - - - Geographic point type kind - - - - - Geographic linestring type kind - - - - - Geographic polygon type kind - - - - - Geographic multi-point type kind - - - - - Geographic multi-linestring type kind - - - - - Geographic multi-polygon type kind - - - - - Geographic collection type kind - - - - - This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. - - - - - Constructs a new constraint on the relationship - - role from which the relationship originates - role to which the relationship is linked/targeted to - properties on entity type of to role which take part in the constraint - properties on entity type of from role which take part in the constraint - Argument Null exception if any of the arguments is null - - - - Returns the combination of the names of the - - and the - - . - - - The combination of the names of the - - and the - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the "from role" that takes part in this - - . - - - A object that represents the "from role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the "to role" that takes part in this . - - - A object that represents the "to role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the list of properties for the "from role" on which this - - is defined. - - - A collection of type that contains the list of properties for "from role" on which this - - is defined. - - - - - Gets the list of properties for the "to role" on which this - - is defined. - - - A collection of type that contains the list of properties for the "to role" on which this - - is defined. - - - - - Class representing a ref type - - - - - - - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type referenced by this . - - - An object that represents the entity type referenced by this - - . - - - - - Represents the multiplicity information about the end of a relationship type - - - - - Lower Bound is Zero and Upper Bound is One - - - - - Both lower bound and upper bound is one - - - - - Lower bound is zero and upper bound is null - - - - - Represents the Edm Row Type - - - - - The factory method for constructing the object. - - Properties of the row type object. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the object. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties on this . - - - A collection of type that contains the list of properties on this - - . - - - - Gets a collection of the properties defined by the current type. - A collection of the properties defined by the current type. - - - - Class representing a type information for an item - - - - - Factory method for creating a TypeUsage with specified EdmType and facets - - EdmType for which to create a type usage - facets to be copied into the new TypeUsage - new TypeUsage instance - - - - Creates a object with the specified conceptual model type. - - - A object with the default facet values for the specified - - . - - - A for which the - - object is created. - - - - - Creates a object to describe a string type by using the specified facet values. - - - A object describing a string type by using the specified facet values. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false. - - - - Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. - - - A object describing a string type by using the specified facet values and unbounded MaxLength. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - The maximum length of the binary type. - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - The simple type that defines the units of measurement of the offset. - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object to describe a decimal type by using the specified facet values. - - - A object describing a decimal type by using the specified facet values. - - - A for which the - - object is created. - - - The precision of the decimal type as type . - - - The scale of the decimal type as type . - - - - - Creates a object to describe a decimal type with unbounded precision and scale facet values. - - - A object describing a decimal type with unbounded precision and scale facet values. - - - A for which the - - object is created. - - - - - Checks whether this is a subtype of the specified - - . - - - true if this is a subtype of the specified - - ; otherwise, false. - - - The object to be checked. - - - - - Returns the full name of the type described by this . - - - The full name of the type described by this as string. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the type information described by this . - - - An object that represents the type information described by this - - . - - - - - Gets the list of facets for the type that is described by this - - . - - - A collection of type that contains the list of facets for the type that is described by this - - . - - - - - Returns a Model type usage for a provider type - - Model (CSpace) type usage - - - - Do not perform any extension check - - - - - Check the extension against a specific value - - - - - Check the extension against the set of acceptable extensions - - - - - Runtime Metadata Workspace - - - - - Initializes a new instance of the class. - - - - - Constructs a with loaders for all item collections () - needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space - loaders. The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - Delegate to return the o-space item collection. - - - - Constructs a with loaders for all item collections () - that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. - The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - - - - Initializes a new instance of the class using the specified paths and assemblies. - - The paths to workspace metadata. - The names of assemblies used to construct workspace. - - - - Creates an configured to use the - - data space. - - The created parser object. - - - - Creates a new bound to this metadata workspace based on the specified query expression. - - - A new with the specified expression as it's - - property. - - - A that defines the query. - - - If - - is null - - - If - - contains metadata that cannot be resolved in this metadata workspace - - - If - - is not structurally valid because it contains unresolvable variable references - - - - - Gets items. - - - The items. - - - The from which to retrieve items. - - - - Registers the item collection with each associated data model. - The output parameter collection that needs to be filled up. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The delegate for logging the load messages. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - The conceptual model in which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - true to perform the case-insensitive search; otherwise, false. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns the list of primitive types in the specified data model. - - A collection of type that contains all the primitive types in the specified data model. - - The data model for which you need the list of primitive types. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Tests the retrieval of . - - true if the retrieval was successful; otherwise, false. - - The from which to attempt retrieval of - - . - - When this method returns, contains the item collection. This parameter is passed uninitialized. - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true on success, false on failure. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - Clears all the metadata cache entries. - - - Gets original value members from an entity set and entity type. - The original value members from an entity set and entity type. - The entity set from which to retrieve original values. - The entity type of which to retrieve original values. - - - - Returns members of a given / - - for which original values are needed when modifying an entity. - - - The s for which original value is required. - - - An belonging to the C-Space. - - - An that participates in the given - - . - - true if entities may be updated partially; otherwise, false. - - - - The Max EDM version thats going to be supported by the runtime. - - - - - Class for representing a collection of items for the object layer. - Most of the implementation for actual maintenance of the collection is - done by ItemCollection - - - - - Initializes a new instance of the class. - - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - The delegate to which log messages are sent. - - - Loads metadata from the specified assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - - - Returns a collection of primitive type objects. - A collection of primitive type objects. - - - - Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. - - The CLR type of the OSpace argument. - - A that represents the object space type. - - - - - Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. - - true if there is a type that matches the search criteria; otherwise, false. - - A that represents the object space type. - - The CLR type. - - - The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. - The CLR type of the OSpace argument. - The OSpace type to look up. - - - Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. - true on success, false on failure - The OSpace enum type to look up - The CLR enum type of the OSpace argument - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all items of the specified type. - - The type returned by the method. - - - - The enumeration defining the type semantics used to resolve function overloads. - These flags are defined in the provider manifest per function definition. - - - - - Allow Implicit Conversion between given and formal argument types (default). - - - - - Allow Type Promotion between given and formal argument types. - - - - - Use strict Equivalence only. - - - - - Class for representing a collection of items in Store space. - - - - - Initializes a new instance of the class using the specified XMLReader. - - The XMLReader used to create metadata. - - - Initializes a new instances of the class. - The model of the . - - - - Initializes a new instance of the class using the specified file paths. - - The file paths used to create metadata. - - - - Returns a collection of the objects. - - - A object that represents the collection of the - - objects. - - - - - Factory method that creates a . - - - SSDL artifacts to load. Must not be null. - - - Paths to SSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - Custom resolver. Currently used to resolve DbProviderServices implementation. If null - the default resolver will be used. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the provider factory of the StoreItemCollection. - The provider factory of the StoreItemCollection. - - - Gets the provider manifest of the StoreItemCollection. - The provider manifest of the StoreItemCollection. - - - Gets the manifest token of the StoreItemCollection. - The manifest token of the StoreItemCollection. - - - Gets the invariant name of the StoreItemCollection. - The invariant name of the StoreItemCollection. - - - Gets the version of the store schema for this collection. - The version of the store schema for this collection. - - - - This exception is thrown when a requested object is not found in the store. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of class that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Caches an ELinq query - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - - The values currently assigned to the properties of an entity. - - - - - Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. - - - - Retrieves the field value as a Boolean. - The field value as a Boolean. - The ordinal of the field. - - - Retrieves the field value as a byte. - The field value as a byte. - The ordinal of the field. - - - Retrieves the field value as a byte array. - The number of bytes copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of bytes to copy. - - - Retrieves the field value as a char. - The field value as a char. - The ordinal of the field. - - - Retrieves the field value as a char array. - The number of characters copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of characters to copy. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as a - - - The field value as a . - - The ordinal of the field. - - - Retrieves the name of the field data type. - The name of the field data type. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Retrieves the field value as a decimal. - The field value as a decimal. - The ordinal of the field. - - - Retrieves the field value as a double. - The field value as a double. - The ordinal of the field. - - - Retrieves the type of a field. - The field type. - The ordinal of the field. - - - Retrieves the field value as a float. - The field value as a float. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - Retrieves the name of a field. - The name of the field. - The ordinal of the field. - - - Retrieves the ordinal of a field by using the name of the field. - The ordinal of the field. - The name of the field. - - - Retrieves the field value as a string. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Populates an array of objects with the field values of the current record. - The number of field values returned. - An array of objects to store the field values. - - - - Returns whether the specified field is set to . - - - true if the field is set to ; otherwise false. - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets field values in a record. - The number of the fields that were set. - The values of the field. - - - - Sets a field to the value. - - The ordinal of the field. - - - - Retrieves a field value as a . - - - A field value as a . - - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Gets the number of fields in the record. - An integer value that is the field count. - - - Returns a value that has the given field ordinal. - The value that has the given field ordinal. - The ordinal of the field. - - - Gets a value that has the given field name. - The field value. - The name of the field. - - - Gets data record information. - - A object. - - - - - This is the interface that represent the minimum interface required - to be an entity in ADO.NET. - - - - - This class contains the common methods need for an date object. - - - - - Public constant name used for change tracking - Providing this definition allows users to use this constant instead of - hard-coding the string. This helps to ensure the property name is correct - and allows faster comparisons in places where we are looking for this specific string. - Users can still use the case-sensitive string directly instead of the constant, - it will just be slightly slower on comparison. - Including the dash (-) character around the name ensures that this will not conflict with - a real data property, because -EntityKey- is not a valid identifier name - - - - - Raises the event. - - The name of the changed property. - - - - Raises the event. - - The name of the property changing. - - - Returns the minimum date time value supported by the data source. - - A value that is the minimum date time that is supported by the data source. - - - - Raises an event that is used to report that a property change is pending. - The name of the changing property. - - - Raises an event that is used to report that a property change has occurred. - The name for the changed property. - - - Returns a complex type for the specified property. - - Unlike most of the other helper methods in this class, this one is not static - because it references the SetValidValue for complex objects, which is also not static - because it needs a reference to this. - - A complex type object for the property. - A complex object that inherits from complex object. - The name of the complex property that is the complex object. - Indicates whether the type supports null values. - Indicates whether the type is initialized. - The type of the complex object being requested. - - - Determines whether the specified byte arrays contain identical values. - true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. - The first byte array value to compare. - The second byte array to compare. - - - Returns a copy of the current byte value. - - A copy of the current value. - - The current byte array value. - - - - Makes sure the value being set for a property is valid. - - - The value being validated. - - The value passed into the property setter. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - If value is null for a non nullable value. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - The value being set. - Indicates whether the property is nullable. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - A that is set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value that is set. - - The value that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - The name of the property that is being validated. - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - Name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - The name of the property that is being validated. - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - The name of the property that is being validated. - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - - - Validates that the property is not null, and throws if it is. - The validated property. - The string value to be checked. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The string value is null for a non-nullable string. - - - Validates that the property is not null, and throws if it is. - - The validated value. - - The string value to be checked. - Flag indicating if this property is allowed to be null. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - Name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Sets a complex object for the specified property. - A complex type that derives from complex object. - The original complex object for the property, if any. - The complex object is being set. - The complex property that is being set to the complex object. - The type of the object being replaced. - - - Verifies that a complex object is not null. - The complex object being validated. - The complex object that is being validated. - The complex property on the parent object that is associated with complexObject . - The type of the complex object being verified. - - - - Notification that a property has been changed. - - - The PropertyChanged event can indicate all properties on the - object have changed by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangedEventArgs. - - - - - Notification that a property is about to be changed. - - - The PropertyChanging event can indicate all properties on the - object are changing by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangingEventArgs. - - - - Notifies the change tracker that a property change is pending on a complex object. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property of a complex object has changed. - The name of the changed property. - property is null. - - - - Attribute for complex properties - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Base attribute for properties mapped to store elements. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - attribute for complex types - - - - - Base attribute for schematized types - - - - The name of the type in the conceptual schema that maps to the class to which this attribute is applied. - - A that is the name. - - - - The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. - - A that is the namespace name. - - - - - Attribute identifying the Edm base class - - - - - Attribute indicating an enum type. - - - - - Attribute identifying the Ends defined for a RelationshipSet - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Initializes a new instance of the - - class. - - The namespace name of the relationship property. - The name of the relationship. The relationship name is not namespace qualified. - The role name at the other end of the relationship. - - - The namespace name of the navigation property. - - A that is the namespace name. - - - - Gets the unqualified relationship name. - The relationship name. - - - Gets the role name at the other end of the relationship. - The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). - - - - Defines a relationship between two entity types based on an association in the conceptual model. - - - - - Creates an instance of the class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - - - - Initializes a new instance of the - - class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - A value that indicates whether the relationship is based on the foreign key value. - - - The namespace for the relationship. - - A that is the namespace for the relationship. - - - - Name of the relationship. - - A that is the name of a relationship that is defined by this - - . - - - - Name of the role at one end of the relationship. - - A that is the name of the role. - - - - Multiplicity at one end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at one end of the relationship. - - A that is the type of the object at this end of the association. - - - - Name of the role at the other end of the relationship. - - A that is the name of the role. - - - - Multiplicity at the other end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at the other end of the relationship. - - A that is the type of the object t the other end of the association. - - - - Gets a Boolean value that indicates whether the relationship is based on the foreign key value. - true if the relationship is based on the foreign key value; otherwise false. - - - - Attribute for scalar properties in an IEntity. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - Gets or sets the value that indicates whether the property can have a null value. - The value that indicates whether the property can have a null value. - - - Gets or sets the value that indicates whether the property is part of the entity key. - The value that indicates whether the property is part of the entity key. - - - - Attribute for static types - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a unique value for each model referenced by the assembly. - - - Setting this parameter to a unique value for each model file in a Visual Basic - assembly will prevent the following error: - "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." - - A string that is a unique GUID value for the model in the assembly. - - - - Collection of entities modeling a particular EDM construct - which can either be all entities of a particular type or - entities participating in a particular relationship. - - The type of entities in this collection. - - - - Base class for EntityCollection and EntityReference - - - - - Represents one end of a relationship. - - - - Loads the related object or objects into this related end with the default merge option. - - - Asynchronously loads the related object or objects into this related end with the default merge option. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - Loads the related object or objects into the related end with the specified merge option. - - The to use when merging objects into an existing - . - - - - Asynchronously loads the related object or objects into the related end with the specified merge option. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when merging objects into an existing - . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - Adds an object to the related end. - - An object to add to the collection. entity must implement - - . - - - - Adds an object to the related end. - An object to add to the collection. - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed, false if entity was not part of the - - . - - - The object to remove from the collection. entity must implement - - . - - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed; false if entity was not part of the - - . - - An object to remove from the collection. - - - Defines a relationship between two attached objects. - - The object being attached. entity must implement - - . - - - - Defines a relationship between two attached objects. - The object being attached. - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Gets or sets a value indicating whether the entity (for an or all entities - in the collection (for an have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded - and wants to prevent any other entities from being loaded automatically. - Note that explicit loading using will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities - are now loaded. - - - True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. - - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this is participating. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - The role name at the source end of the relationship. - - - Gets the role name at the target end of the relationship. - The role name at the target end of the relationship. - - - Returns a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Loads the related object or objects into the related end with the default merge option. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Asynchronously loads the related object or objects into the related end with the default merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Loads an object or objects from the related end with the specified merge option. - - - The to use when merging objects into an existing - . - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Asynchronously loads an object or objects from the related end with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when merging objects into an existing - . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Attaches an entity to the related end. This method works in exactly the same way as Attach(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Attaches an entity to the related end. If the related end is already filled - or partially filled, this merges the existing entities with the given entity. The given - entity is not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. - Deleted elements are allowed only when the state manager is already tracking the relationship - instance. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Adds an entity to the related end. This method works in exactly the same way as Add(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to add to the related end - - - - Adds an entity to the related end. If the owner is - attached to a cache then the all the connected ends are - added to the object cache and their corresponding relationships - are also added to the ObjectStateManager. The RelatedEnd of the - relationship is also fixed. - - Entity instance to add to the related end - - - - Removes an entity from the related end. This method works in exactly the same way as Remove(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Removes an entity from the related end. If owner is - attached to a cache, marks relationship for deletion and if - the relationship is composition also marks the entity for deletion. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - Occurs when a change is made to a related end. - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this participates. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - - A that is the role name. - - - - Gets the role name at the target end of the relationship. - - A that is the role name. - - - - Gets a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - - - - Initializes a new instance of the class. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Loads related objects into the collection, using the specified merge option. - - Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same - - . - - - - - - - Defines relationships between an object and a collection of related objects in an object context. - - Loads related entities into the local collection. If the collection is already filled - or partially filled, merges existing entities with the given entities. The given - entities are not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. We allow - deleted elements only when the state manager is already tracking the relationship - instance. - - Collection of objects in the object context that are related to the source object. - entities collection is null. - - The source object or an object in the entities collection is null or is not in an - - or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - - Defines a relationship between two attached objects in an object context. - The object being attached. - When the entity is null. - - When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an - - or state. - - - - Adds an object to the collection. - - An object to add to the collection. entity must implement - - . - - entity is null. - - - Removes an object from the collection and marks the relationship for deletion. - true if item was successfully removed; otherwise, false. - The object to remove from the collection. - entity object is null. - The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. - - - Returns an enumerator that is used to iterate through the objects in the collection. - - An that iterates through the set of values cached by - - . - - - - - Returns an enumerator that is used to iterate through the set of values cached by - - . - - - An that iterates through the set of values cached by - - . - - - - Removes all entities from the collection. - - - Determines whether a specific object exists in the collection. - - true if the object is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies all the contents of the collection to an array, starting at the specified index of the target array. - The array to copy to. - The zero-based index in the array at which copying begins. - - - Used internally to serialize entity objects. - The streaming context. - - - Used internally to deserialize entity objects. - The streaming context. - - - Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. - - An that represents the entity collection. - - - When the object is in an state - or when the object is in a - state with a - other than - . - - - - Gets the number of objects that are contained in the collection. - - The number of elements that are contained in the - - . - - - - - Gets a value that indicates whether the - - is read-only. - - Always returns false. - - - - IListSource.ContainsListCollection implementation. Always returns false. - This means that the IList we return is the one which contains our actual data, - it is not a list of collections. - - - - - This is the class is the basis for all perscribed EntityObject classes. - - - - - Interface that defines an entity containing a key. - - - - - Gets or sets the for instances of entity types that implement this interface. - - - If an object is being managed by a change tracker, it is expected that - IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be - used to report changes on EntityKey. This allows the change tracker to validate the - EntityKey's new value and to verify if the change tracker is in a state where it can - allow updates to the EntityKey. - - - The for instances of entity types that implement this interface. - - - - - Minimum interface that a data class must implement in order to be managed by a change tracker. - - - - - Gets or sets the used to report changes. - - - The used to report changes. - - - - - Interface that a data class must implement if exposes relationships - - - - Returns the relationship manager that manages relationships for an instance of an entity type. - - Classes that expose relationships must implement this property - by constructing and setting RelationshipManager in their constructor. - The implementation of this property should use the static method RelationshipManager.Create - to create a new RelationshipManager when needed. Once created, it is expected that this - object will be stored on the entity and will be provided through this property. - - - The for this entity. - - - - - Used by the ObjectStateManager to attach or detach this EntityObject to the cache. - - Reference to the ObjectStateEntry that contains this entity - - - Notifies the change tracker that a property change is pending. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property has changed. - The name of the changed property. - property is null. - - - Gets the entity state of the object. - - The of this object. - - - - Gets or sets the key for this object. - - The for this object. - - - - - Returns the container for the lazily created relationship - navigation property objects, collections and refs. - - - - - This interface is implemented by a change tracker and is used by data classes to report changes - - - - Notifies the change tracker of a pending change to a property of an entity type. - The name of the property that is changing. - - - Notifies the change tracker that a property of an entity type has changed. - The name of the property that has changed. - - - Notifies the change tracker of a pending change to a complex property. - The name of the top-level entity property that is changing. - The complex type that contains the property that is changing. - The name of the property that is changing on complex type. - - - Notifies the change tracker that a property of a complex type has changed. - The name of the complex property of the entity type that has changed. - The complex type that contains the property that changed. - The name of the property that changed on complex type. - - - Gets current state of a tracked object. - - An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. - - - - - Models a relationship end with multiplicity 1. - - - - Returns the key for the related object. - - Returns the EntityKey of the target entity associated with this EntityReference. - Is non-null in the following scenarios: - (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the - same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting - the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. - (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation - occurs that would set it to null, as described below. - (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. - (d) Entity graph was created using a NoTracking query with full span - Is null in the following scenarios: - (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the - same RelationshipName and source role. - (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key - is one of the special keys - (c) Entities are detached and the relationship was explicitly created by the user. - - - An that is the key of the related object. - - - - - Models a relationship end with multiplicity 1. - - The type of the entity being referenced. - - - - Creates a new instance of . - - - The default constructor is required for some serialization scenarios. It should not be used to - create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager - class instead. - - - - - Loads the related object for this with the specified merge option. - - - Specifies how the object should be returned if it already exists in the - - . - - - The source of the is null - or a query returned more than one related end - or a query returned zero related ends, and one related end was expected. - - - - - - - Creates a many-to-one or one-to-one relationship between two objects in the object context. - The object being attached. - When the entity is null. - When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - Creates an equivalent object query that returns the related object. - - An that returns the related object. - - - When the object is in an state - or when the object is in a - state with a - other than . - - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - - Gets or sets the related object returned by this - - . - - - The object returned by this . - - - - - Identifies the kind of a relationship - - - - - The relationship is an Association - - - - - Container for the lazily created relationship navigation - property objects (collections and refs). - - - - - Creates a new object. - - - Used by data classes that support relationships. If the change tracker - requests the RelationshipManager property and the data class does not - already have a reference to one of these objects, it calls this method - to create one, then saves a reference to that object. On subsequent accesses - to that property, the data class should return the saved reference. - The reason for using a factory method instead of a public constructor is to - emphasize that this is not something you would normally call outside of a data class. - By requiring that these objects are created via this method, developers should - give more thought to the operation, and will generally only use it when - they explicitly need to get an object of this type. It helps define the intended usage. - - - The requested . - - Reference to the entity that is calling this method. - - - - Returns either an or - - of the correct type for the specified target role in a relationship. - - - representing the - - or - - that was retrieved. - - Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. - Target role to use to retrieve the other end of relationshipName . - relationshipName or targetRoleName is null. - The source type does not match the type of the owner. - targetRoleName is invalid or unable to find the relationship type in the metadata. - - - - Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, - if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W - - The relationship name. - The role name of the related end. - - The to initialize. - - - The type of the being initialized. - - - When the provided - is already initialized.-or-When the relationship manager is already attached to an - - or when the relationship manager already contains a relationship with this name and target role. - - - - - Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, - or if the relationship manager is already attached to a ObjectContext. - - The relationship name. - The target role name. - An existing EntityCollection. - Type of the entity represented by targetRoleName - - - - Gets an of related objects with the specified relationship name and target role name. - - - The of related objects. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - - Gets the for a related object by using the specified combination of relationship name and target role name. - - - The of a related object. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - Returns an enumeration of all the related ends managed by the relationship manager. - - An of objects that implement - - . An empty enumeration is returned when the relationships have not yet been populated. - - - - - Called by Object Services to prepare an for binary serialization with a serialized relationship. - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - - Represents either a entity, entity stub or relationship - - - - - Gets the updatable version of original values of the object associated with this - - . - - The updatable original values of object data. - - - Accepts the current values as original values. - - - Marks an entity as deleted. - - - - Returns the names of an object’s properties that have changed since the last time - - was called. - - - An collection of names as string. - - - - Sets the state of the object or relationship to modify. - If State is not Modified or Unchanged - - - Marks the specified property as modified. - The name of the property. - If State is not Modified or Unchanged - - - Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. - The name of the property to change. - - - Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. - - Note that this property always returns the same result as the modified state of the property for change tracking - proxies and entities that derive from the EntityObject base class. This is because original values are not tracked - for these entity types and hence there is no way to know if the current value is really different from the - original value. - - true if the property has changed; otherwise, false. - The name of the property. - - - - Changes state of the entry to the specified value. - - - The value to set for the - - property of the entry. - - - - Sets the current values of the entry to match the property values of a supplied object. - The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. - - - Sets the original values of the entry to match the property values of a supplied object. - The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. - - - - Used to report that a scalar entity property is about to change - The current value of the specified property is cached when this method is called. - - The name of the entity property that is changing - - - - Used to report that a scalar entity property has been changed - The property value that was cached during EntityMemberChanging is now - added to OriginalValues - - The name of the entity property that has changing - - - - Used to report that a complex property is about to change - The current value of the specified property is cached when this method is called. - - The name of the top-level entity property that is changing - The complex object that contains the property that is changing - The name of the property that is changing on complexObject - - - - Used to report that a complex property has been changed - The property value that was cached during EntityMemberChanging is now added to OriginalValues - - The name of the top-level entity property that has changed - The complex object that contains the property that changed - The name of the property that changed on complexObject - - - - Gets the for the - - . - - - The for the - - . - - - - - Gets the for the object or relationship. - - - The for the object or relationship. - - - - - Gets the state of the . - - - The state of the . - - - - Gets the entity object. - The entity object. - - - Gets the entity key. - The entity key. - - - - Gets a value that indicates whether the represents a relationship. - - - true if the represents a relationship; otherwise, false. - - - - Gets the read-only version of original values of the object or relationship. - The read-only version of original values of the relationship set entry or entity. - - - - Gets the current property values of the object or relationship associated with this - - . - - - A that contains the current values of the object or relationship associated with this - - . - - - - - Gets the instance for the object represented by entry. - - - The object. - - The entry is a stub or represents a relationship - - - - Returns the EntityState from the ObjectStateEntry - - - - - Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. - - Type of entities returned from the queryable. - - - Notifies the set that an object that represents a new entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The new object to add to the set. - - - Notifies the set that an object that represents an existing entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to add to the set. - - - Notifies the set that an object that represents an existing entity must be deleted from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to delete from the set. - - - Notifies the set that an object that represents an existing entity must be detached from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The object to detach from the set. - - - - The different ways that new objects loaded from the database can be merged with existing objects already in memory. - - - - - Will only append new (top level-unique) rows. This is the default behavior. - - - - - Same behavior as LoadOption.OverwriteChanges. - - - - - Same behavior as LoadOption.PreserveChanges. - - - - - Will not modify cache. - - - - - ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, - serving as a gateway for Create, Read, Update, and Delete operations. - - - - - Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the - - object. - - - An that contains references to the model and to the data source connection. - - The connection is null. - The connection is invalid or the metadata workspace is invalid. - - - - Creates an ObjectContext with the given connection and metadata workspace. - - connection to the store - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - Initializes a new instance of the class with the given connection string and default entity container name. - - The connection string, which also provides access to the metadata information. - The connectionString is null. - The connectionString is invalid or the metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection string and entity container name. - - The connection string, which also provides access to the metadata information. - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connectionString is null. - The connectionString , defaultContainerName , or metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection and entity container name. - - - An that contains references to the model and to the data source connection. - - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connection is null. - The connection , defaultContainerName , or metadata workspace is not valid. - - - Accepts all changes made to objects in the object context. - - - Adds an object to the object context. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to add. - - The entity parameter is null or the entitySetName does not qualify. - - - Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The value to use when you load the related objects. - - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - - The value to use when you load the related objects. - - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Applies property changes from a detached object to an object already attached to the object context. - The name of the entity set to which the object belongs. - The detached object that has property updates to apply to the original object. - When entitySetName is null or an empty string or when changed is null. - - When the from entitySetName does not match the - - of the object - - or when the entity is in a state other than - - or - - or the original object is not attached to the context. - - When the type of the changed object is not the same type as the original object. - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - The entity type of the object. - entitySetName or current is null. - - The from entitySetName does not match the - - of the object - - or the object is not in the - - or it is in a - - state or the entity key of the supplied object is invalid. - - entitySetName is an empty string. - - - - Copies the scalar values from the supplied object into set of original values for the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has original values to apply to the object. The entity key of originalEntity must match the - - property of an entry in the - - . - - The type of the entity object. - entitySetName or original is null. - - The from entitySetName does not match the - - of the object - - or an - - for the object cannot be found in the - - or the object is in an - - or a - - state or the entity key of the supplied object is invalid or has property changes. - - entitySetName is an empty string. - - - Attaches an object or object graph to the object context in a specific entity set. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to attach. - - The entity is null. - - Invalid entity set or the object has a temporary key or the object has an - - and the - - does not match with the entity set passed in as an argument of the method or the object does not have an - - and no entity set is provided or any object from the object graph has a temporary - - or any object from the object graph has an invalid - - (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. - - - - Attaches an object or object graph to the object context when the object has an entity key. - The object to attach. - The entity is null. - Invalid entity key. - - - Creates the entity key for a specific object, or returns the entity key if it already exists. - - The of the object. - - The fully qualified name of the entity set to which the entity object belongs. - The object for which the entity key is being retrieved. - When either parameter is null. - When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. - When the entity key cannot be constructed successfully based on the supplied parameters. - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. - - - The new instance. - - - Entity type of the requested . - - - The property is not set on the - - or the specified type belongs to more than one entity set. - - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. - - - The new instance. - - - Name of the entity set for the returned . The string must be qualified by the default container name if the - - property is not set on the - - . - - - Entity type of the requested . - - - The from entitySetName does not match the - - of the object - - or the - - property is not set on the - - and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. - - - - - Creates an in the current object context by using the specified query string. - - - An of the specified type. - - The query string to be executed. - Parameters to pass to the query. - - The entity type of the returned . - - The queryString or parameters parameter is null. - - - Marks an object for deletion. - - An object that specifies the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - The entity is null. - - The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). - - - - - Finalizes an instance of the class. - - - - Releases the resources used by the object context. - - - - Releases the resources used by the object context. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns an object that has the specified entity key. - - An that is an instance of an entity type. - - The key of the object to be found. - The key parameter is null. - - The object is not found in either the or the data source. - - - - Updates a collection of objects in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Updates an object in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Asynchronously updates a collection of objects in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - - A task that represents the asynchronous operation. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Asynchronously updates a collection of objects in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Asynchronously updates an object in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - - A task that represents the asynchronous operation. - - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Asynchronously updates an object in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Persists all updates to the database and resets change tracking in the object context. - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after - - finishes. If false, you must call the - method after . - - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - A value that determines the behavior of the operation. - - - The number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and optionally resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that determines the behavior of the operation. - - - A task that represents the asynchronous operation. - The task result contains the number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and optionally resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that determines the behavior of the operation. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of objects in an , - , - or state when - was called. - - An optimistic concurrency violation has occurred while saving changes. - - - - Ensures that changes are synchronized with changes in all objects that are tracked by the - - . - - - - Returns an object that has the specified entity key. - true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. - The key of the object to be found. - When this method returns, contains the object. - Incompatible metadata for key . - key is null. - - - - Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - The to use when executing the query. - - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given function on the default container. - - Element type for function results. - - Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. - - The options for executing this function. - - The parameter values to use for the function. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - An object representing the result of executing this function. - If function is null or empty - - If function is invalid (syntax, - does not exist, refers to a function with return type incompatible with T) - - - - Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. - The number of rows affected. - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. - - An enumeration of objects that represent custom data classes that map to the conceptual model. - - - - Returns all the existing proxy types. - - An of all the existing proxy types. - - - - Returns the entity type of the POCO entity associated with a proxy object of a specified type. - - The of the associated POCO entity. - - - The of the proxy object. - - - - Creates and returns an instance of the requested type . - An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. - Type of object to be returned. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - - A to observe while waiting for the task to complete. - - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - - A to observe while waiting for the task to complete. - - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior of - DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - - The to use when executing the query. The default is - . - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Translates a that contains rows of entity data to objects of the requested entity type. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - When reader is null. - - - - Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - The entity set of the TResult type. - - The to use when translated objects are added to the object context. The default is - - . - - When reader is null. - - When the supplied mergeOption is not a valid value. - - When the supplied entitySetName is not a valid entity set for the TResult type. - - - - Creates the database by using the current data source connection and the metadata in the - - . - - - - Deletes the database that is specified as the database in the current data source connection. - - - - Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work - is done by the DbProviderServices implementation for the current store connection. - - true if the database exists; otherwise, false. - - - - Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the - - . The - - loads metadata from store schema definition language (SSDL) files. - - - A DDL script that creates schema objects for the metadata in the - - . - - - - Gets the connection used by the object context. - - A object that is the connection. - - - When the instance has been disposed. - - - - Gets or sets the default container name. - - A that is the default container name. - - - - Gets the metadata workspace used by the object context. - - The object associated with this - - . - - - - Gets the object state manager used by the object context to track object changes. - - The used by this - - . - - - - Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. - - An value that is the timeout value, in seconds. - - The timeout value is less than 0. - - - Gets the LINQ query provider associated with this object context. - - The instance used by this object context. - - - - - Gets the instance that contains options that affect the behavior of the - - . - - - The instance that contains options that affect the behavior of the - - . - - - - - Returns itself. ObjectContext implements to provide a common - interface for and ObjectContext both of which will return the underlying - ObjectContext. - - - - - Gets the transaction handler in use by this context. May be null if no transaction have been started. - - - The transaction handler. - - - - - Returns the being used for this context. - - - - Occurs when changes are saved to the data source. - - - Occurs when a new entity object is created from data in the data source as part of a query or load operation. - - - - Defines options that affect the behavior of the ObjectContext. - - - - Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. - true if lazy loading is enabled; otherwise, false. - - - Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. - true if proxies are created; otherwise, false. The default value is true. - - - Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. - true if the legacy PreserveChanges behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. - - If this flag is set to false then setting the Value property of the for an - FK relationship to null when it is already null will have no effect. When this flag is set to true, then - setting the value to null will always cause the FK to be nulled and the relationship to be deleted - even if the value is currently null. The default value is false when using ObjectContext and true - when using DbContext. - - true if the consistent NullReference behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. - - This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. - If this flag is set, then any equality comparison between two operands, both of which are potentially - nullable, will be rewritten to show C# null comparison semantics. As an example: - (operand1 = operand2) will be rewritten as - (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) - The default value is false when using . - - true if the C# NullComparison behavior should be used; otherwise, false. - - - - EventArgs for the ObjectMaterialized event. - - - - Gets the entity object that was created. - The entity object that was created. - - - - Delegate for the ObjectMaterialized event. - - The ObjectContext responsable for materializing the object. - EventArgs containing a reference to the materialized object. - - - - This class represents a query parameter at the object layer, which consists - of a Name, a Type and a Value. - - - - - Initializes a new instance of the class with the specified name and type. - - The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The common language runtime (CLR) type of the parameter. - If the value of either argument is null. - If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - - Initializes a new instance of the class with the specified name and value. - - The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The initial value (and inherently, the type) of the parameter. - If the value of either argument is null. - If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - Gets the parameter name, which can only be set through a constructor. - The parameter name, which can only be set through a constructor. - - - Gets the parameter type. - - The of the parameter. - - - - Gets or sets the parameter value. - The parameter value. - - - - This class represents a collection of query parameters at the object layer. - - - - - Adds the specified to the collection. - - The parameter to add to the collection. - The parameter argument is null. - - The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a - - . - - The type of the parameter is not valid. - - - - Deletes all instances from the collection. - - - - - Checks for the existence of a specified in the collection by reference. - - Returns true if the parameter object was found in the collection; otherwise, false. - - The to find in the collection. - - The parameter argument is null. - - - - Determines whether an with the specified name is in the collection. - - Returns true if a parameter with the specified name was found in the collection; otherwise, false. - The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - The name parameter is null. - - - Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. - The array into which to copy the parameters. - The index in the array at which to start copying the parameters. - - - - Removes an instance of an from the collection by reference if it exists in the collection. - - Returns true if the parameter object was found and removed from the collection; otherwise, false. - An object to remove from the collection. - The parameter argument is null. - - - - These methods return enumerator instances, which allow the collection to - be iterated through and traversed. - - An object that can be used to iterate through the collection. - - - Returns an untyped enumerator over the collection. - - An instance. - - - - Gets the number of parameters currently in the collection. - - The number of objects that are currently in the collection. - - - - - This collection is read-write - parameters may be added, removed - and [somewhat] modified at will (value only) - provided that the - implementation the collection belongs to has not locked its parameters - because it's command definition has been prepared. - - - - Provides an indexer that allows callers to retrieve parameters by name. - - The instance. - - The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - No parameter with the specified name is found in the collection. - - - - This class implements untyped queries at the object-layer. - - - - Returns the commands to execute against the data source. - A string that represents the commands that the query executes against the data source. - - - Returns information about the result type of the query. - - A value that contains information about the result type of the query. - - - - Executes the untyped object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the untyped object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A task that represents the asynchronous operation. - The task result contains an an - that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the untyped object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an an - that contains a collection of entity objects returned by the query. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Returns an enumerator that iterates through a collection. - - An that can be used to iterate through the collection. - - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Returns the command text for the query. - A string value. - - - Gets the object context associated with this object query. - - The associated with this - - instance. - - - - Gets or sets how objects returned from a query are added to the object context. - - The query . - - - - - Whether the query is streaming or buffering - - - - Gets the parameter collection for this object query. - - The parameter collection for this . - - - - Gets or sets a value that indicates whether the query plan should be cached. - A value that indicates whether the query plan should be cached. - - - - Gets the result element type for this query instance. - - - - - Gets the expression describing this query. For queries built using - LINQ builder patterns, returns a full LINQ expression tree; otherwise, - returns a constant expression wrapping this query. Note that the - default expression is not cached. This allows us to differentiate - between LINQ and Entity-SQL queries. - - - - - Gets the associated with this query instance. - - - - - ObjectQuery implements strongly-typed queries at the object-layer. - Queries are specified using Entity-SQL strings and may be created by calling - the Entity-SQL-based query builder methods declared by ObjectQuery. - - The result type of this ObjectQuery - - - - Creates a new instance using the specified Entity SQL command as the initial query. - - The Entity SQL query. - - The on which to execute the query. - - - - - Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. - - The Entity SQL query. - - The on which to execute the query. - - - Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same - - . - - - - Executes the object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A task that represents the asynchronous operation. - The task result contains an - that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an - that contains a collection of entity objects returned by the query. - - - - Specifies the related objects to include in the query results. - - A new with the defined query path. - - Dot-separated list of related objects to return in the query results. - path is null. - path is empty. - - - Limits the query to unique results. - - A new instance that is equivalent to the original instance with SELECT DISTINCT applied. - - - - - This query-builder method creates a new query whose results are all of - the results of this query, except those that are also part of the other - query specified. - - A query representing the results to exclude. - a new ObjectQuery instance. - If the query parameter is null. - - - Groups the query results by the specified criteria. - - A new instance of type - - that is equivalent to the original instance with GROUP BY applied. - - The key columns by which to group the results. - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - The query parameter is null or an empty string - or the projection parameter is null or an empty string. - - - - This query-builder method creates a new query whose results are those that - are both in this query and the other query specified. - - A query representing the results to intersect with. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to only results of a specific type. - - A new instance that is equivalent to the original instance with OFTYPE applied. - - - The type of the returned when the query is executed with the applied filter. - - The type specified is not valid. - - - Orders the query results by the specified criteria. - - A new instance that is equivalent to the original instance with ORDER BY applied. - - The key columns by which to order the results. - Zero or more parameters that are used in this method. - The keys or parameters parameter is null. - The key is an empty string. - - - Limits the query results to only the properties that are defined in the specified projection. - - A new instance of type - - that is equivalent to the original instance with SELECT applied. - - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - projection is null or parameters is null. - The projection is an empty string. - - - Limits the query results to only the property specified in the projection. - - A new instance of a type compatible with the specific projection. The returned - - is equivalent to the original instance with SELECT VALUE applied. - - The projection list. - An optional set of query parameters that should be in scope when parsing. - - The type of the returned by the - - method. - - projection is null or parameters is null. - The projection is an empty string. - - - Orders the query results by the specified criteria and skips a specified number of results. - - A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. - - The key columns by which to order the results. - The number of results to skip. This must be either a constant or a parameter reference. - An optional set of query parameters that should be in scope when parsing. - Any argument is null. - keys is an empty string or count is an empty string. - - - Limits the query results to a specified number of items. - - A new instance that is equivalent to the original instance with TOP applied. - - The number of items in the results as a string. - An optional set of query parameters that should be in scope when parsing. - count is null. - count is an empty string. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - without duplicates (i.e., results are unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - including any duplicates (i.e., results are not necessarily unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to results that match specified filtering criteria. - - A new instance that is equivalent to the original instance with WHERE applied. - - The filter predicate. - Zero or more parameters that are used in this method. - predicate is null or parameters is null. - The predicate is an empty string. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Gets or sets the name of this object query. - - A string value that is the name of this . - - The value specified on set is not valid. - - - - This class implements IEnumerable and IDisposable. Instance of this class - is returned from ObjectQuery.Execute method. - - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Returns the results in a format useful for data binding. - - An of entity objects. - - - - Performs tasks associated with freeing, releasing, or resetting resources. - - - Releases the resources used by the object result. - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the next result set of a stored procedure. - An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. - The type of the element. - - - - IListSource.ContainsListCollection implementation. Always returns false. - - - - - When overridden in a derived class, gets the type of the generic - - . - - - The type of the generic . - - - - - This class represents the result of the method. - - The type of the result. - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the type of the . - - - A that is the type of the . - - - - - Represents a typed entity set that is used to perform create, read, update, and delete operations. - - The type of the entity. - - - Adds an object to the object context in the current entity set. - The object to add. - - - Attaches an object or object graph to the object context in the current entity set. - The object to attach. - - - Marks an object for deletion. - - An object that represents the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - - - - Sets the property of an - - to match the property values of a supplied object. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the - - property of an entry in the - - . - - - - Creates a new entity type object. - The new entity type object, or an instance of a proxy type that corresponds to the entity type. - - - Creates an instance of the specified type. - An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . - Type of object to be returned. - - - - Gets the metadata of the entity set represented by this instance. - - - An object. - - - - - The original values of the properties of an entity when it was retrieved from the database. - - - - - Maintains object state and identity management for entity type instances and relationship instances. - - - - - Initializes a new instance of the class. - - - The , which supplies mapping and metadata information. - - - - - Returns a collection of objects for objects or relationships with the given state. - - - A collection of objects in the given - - . - - - An used to filter the returned - - objects. - - - When state is . - - - - - Changes state of the for a specific object to the specified entityState . - - - The for the supplied entity . - - The object for which the state must be changed. - The new state of the object. - When entity is null. - - When the object is not detached and does not have an entry in the state manager - or when you try to change the state to - from any other - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - When source or target is null. - - When trying to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - A LINQ expression that selects the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - The entity type of the source object. - When source , target , or selector is null. - selector is malformed or cannot return a navigation property. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a - state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the relationship. - The role name at the target end of the relationship. - - The requested of the specified relationship. - - When source or target is null. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an - state - or when state is not a valid value. - - - - - Returns an for the object or relationship entry with the specified key. - - - The corresponding for the given - - . - - - The . - - When key is null. - When the specified key cannot be found in the state manager. - - No entity with the specified exists in the - - . - - - - - Returns an for the specified object. - - - The corresponding for the given - - . - - - The to which the retrieved - - belongs. - - - No entity for the specified exists in the - - . - - - - - Tries to retrieve the corresponding for the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given object; otherwise, false. - - - The to which the retrieved - - belongs. - - - When this method returns, contains the for the given - - This parameter is passed uninitialized. - - - - - Tries to retrieve the corresponding for the object or relationship with the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given - - ; otherwise, false. - - - The given . - - - When this method returns, contains an for the given - - This parameter is passed uninitialized. - - A null (Nothing in Visual Basic) value is provided for key . - - - - Returns the that is used by the specified object. - - - The for the specified object. - - - The object for which to return the . - - - The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager - - - - - Returns the that is used by the specified object. - - - true if a instance was returned for the supplied entity ; otherwise false. - - - The object for which to return the . - - - When this method returns, contains the - - for the entity . - - - - - Gets the associated with this state manager. - - - The associated with this - - . - - - - Occurs when entities are added to or removed from the state manager. - - - - A DataContractResolver that knows how to resolve proxy types created for persistent - ignorant classes to their base types. This is used with the DataContractSerializer. - - - - During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. - Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. - The xsi:type information to map. - The namespace of the xsi:type. - The declared type. - - An instance of . - - - - During serialization, maps actual types to xsi:type information. - true if the type was resolved; otherwise, false. - The actual type of the persistence-ignorant object. - The declared type. - - An instance of . - - When this method returns, contains a list of xsi:type declarations. - When this method returns, contains a list of namespaces used. - - - - Defines the different ways to handle modified properties when refreshing in-memory data from the database. - - - - - For unmodified client objects, same behavior as StoreWins. For modified client - objects, Refresh original values with store value, keeping all values on client - object. The next time an update happens, all the client change units will be - considered modified and require updating. - - - - - Discard all changes on the client and refresh values with store values. - Client original values is updated to match the store. - - - - - Flags used to modify behavior of ObjectContext.SaveChanges() - - - - - Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. - - - - - After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. - - - - - Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. - - - - - This exception is thrown when a update operation violates the concurrency constraint. - - - - - Exception during save changes to store - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The collection of objects. - - - - - Initializes a new instance of with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Gets the objects for this - - . - - - A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The enumerable collection of objects. - - - - - Property constraint exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of the class with default message. - - - - - Initializes a new instance of the class with supplied message. - - A localized error message. - - - - Initializes a new instance of the class with supplied message and inner exception. - - A localized error message. - The inner exception. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - The inner exception. - - - Gets the name of the property that violated the constraint. - The name of the property that violated the constraint. - - - - This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that this class was called EntityFunctions in some previous versions of Entity Framework. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Describes the state of an entity. - - - - - The entity is not being tracked by the context. - An entity is in this state immediately after it has been created with the new operator - or with one of the Create methods. - - - - - The entity is being tracked by the context and exists in the database, and its property - values have not changed from the values in the database. - - - - - The entity is being tracked by the context but does not yet exist in the database. - - - - - The entity is being tracked by the context and exists in the database, but has been marked - for deletion from the database the next time SaveChanges is called. - - - - - The entity is being tracked by the context and exists in the database, and some or all of its - property values have been modified. - - - - - Represents information about a database connection. - - - - - Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. - - The name of the connection string in the application configuration. - - - - Creates a new instance of DbConnectionInfo based on a connection string. - - The connection string to use for the connection. - The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Instances of this class are used to create DbConnection objects for - SQL Server LocalDb based on a given database name or connection string. - - - An instance of this class can be set on the class or in the - app.config/web.config for the application to cause all DbContexts created with no - connection information or just a database name to use SQL Server LocalDb by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Implementations of this interface are used to create DbConnection objects for - a type of database server based on a given database name. - An Instance is set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use a certain type of database server by default. - Two implementations of this interface are provided: - is used to create connections to Microsoft SQL Server, including EXPRESS editions. - is used to create connections to Microsoft SQL - Server Compact Editions. - Other implementations for other database servers can be added as needed. - Note that implementations should be thread safe or immutable since they may - be accessed by multiple threads at the same time. - - - - - Creates a connection based on the given database name or connection string. - - The database name or connection string. - An initialized DbConnection. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. - - - - Creates a connection for SQL Server LocalDb based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog', - 'Data Source', and 'AttachDbFilename'. - The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the - database name when CreateConnection is called. - The 'Data Source' will be set based on the LocalDbVersion argument. - The default is 'Integrated Security=True;'. - - - - - An implementation of that will use Code First Migrations - to update the database to the latest version. - - The type of the context. - The type of the migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use - the connection information from a context constructed using the default constructor - or registered factory if applicable - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - Also allows specifying migrations configuration to use during initialization. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - Migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will - use a specific connection string from the configuration file to connect to - the database to perform the migration. - - The name of the connection string to use for migration. - - - - - - - Helper class that is used to configure a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new column definition to store Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - Value indicating whether or not this column should be configured as a timestamp. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The numeric precision of the column. - The numeric scale of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Value indicating whether or not the database will generate values for this column during insert. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the column supports Unicode content. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Helper class that is used to further configure a table being created from a CreateTable call on - - . - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The type that represents the table's columns. - - - - Initializes a new instance of the TableBuilder class. - - The table creation operation to be further configured. - The migration the table is created in. - - - - Specifies a primary key for the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The name of the primary key. If null is supplied, a default name will be generated. - A value indicating whether or not this is a clustered primary key. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies an index to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - The name of the index. - A value indicating whether or not this is a unique index. - A value indicating whether or not this is a clustered index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies a foreign key constraint to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table that the foreign key constraint targets. - A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - A value indicating whether or not cascade delete should be configured on the foreign key constraint. - The name of this foreign key constraint. If no name is supplied, a default name will be calculated. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Base class for code-based migrations. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Operations to be performed during the upgrade process. - - - - - Operations to be performed during the downgrade process. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - The parameters in this create stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The parameters in this alter stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing stored procedure with the specified name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - Custom annotations that exist on the table to be created. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to handle changes in the annotations defined on tables. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The column this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The columns this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The name of the foreign key constraint in the database. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. - Schema name is optional, if no schema is specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. - Schema name is optional, if no schema is specified then dbo is assumed. - - The columns this foreign key references. - - Additional arguments that may be processed by providers. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a table to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is - assumed. - - The schema the table is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a stored procedure to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be moved. Schema name is optional, if no schema is specified - then dbo is assumed. - - The schema the stored procedure is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a table. To change the schema of a table use MoveTable. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The new name for the table. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified - then dbo is assumed. - - - The new name for the stored procedure. Schema name is optional, if no schema is specified then - dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the column to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the column to be renamed. - The new name for the column. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to add a column to an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to add the column to. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be added. - - An action that specifies the column to be added. i.e. c => c.Int(nullable: false, - defaultValue: 3) - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter the definition of an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table the column exists in. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be changed. - - An action that specifies the new definition for the column. i.e. c => c.String(nullable: - false, defaultValue: "none") - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The primary key column. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key based on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The primary key columns. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that does not have the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the primary key to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that was created with the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on a single column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the columns to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the index to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column(s) the index targets. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename an index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the index to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the index to be renamed. - The new name for the index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL command or set of SQL commands. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL resource file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The manifest resource name of the SQL resource file to be executed. - - The assembly containing the resource file. The calling assembly is assumed if not provided. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - - - - - - - - - - - - - - - - - - - Configuration relating to the use of migrations for a given model. - You will typically create a configuration class that derives - from rather than - using this class. - - - - - The default directory that migrations are stored in. - - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Adds a new SQL generator to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - The SQL generator to be used. - - - - Gets the SQL generator that is set to be used with a given database provider. - - Name of the database provider to get the SQL generator for. - The SQL generator that is set for the database provider. - - - - Adds a new factory for creating instances to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - - A factory for creating instances for a given and - representing the default schema. - - - - - Gets the history context factory that is set to be used with a given database provider. - - Name of the database provider to get thefactory for. - The history context factory that is set for the database provider. - - - - Gets or sets a value indicating if automatic migrations can be used when migrating the database. - - - - - Gets or sets the string used to distinguish migrations belonging to this configuration - from migrations belonging to other configurations using the same database. - This property enables migrations from multiple different models to be applied to applied to a single database. - - - - - Gets or sets a value indicating if data loss is acceptable during automatic migration. - If set to false an exception will be thrown if data loss may occur as part of an automatic migration. - - - - - Gets or sets the derived DbContext representing the model to be migrated. - - - - - Gets or sets the namespace used for code-based migrations. - - - - - Gets or sets the sub-directory that code-based migrations are stored in. - Note that this property must be set to a relative path for a sub-directory under the - Visual Studio project root; it cannot be set to an absolute path. - - - - - Gets or sets the code generator to be used when scaffolding migrations. - - - - - Gets or sets the assembly containing code-based migrations. - - - - - Gets or sets a value to override the connection of the database to be migrated. - - - - - Gets or sets the timeout value used for the individual commands within a - migration. A null value indicates that the default value of the underlying - provider will be used. - - - - - Configuration relating to the use of migrations for a given model. - - The context representing the model that this configuration applies to. - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Runs after upgrading to the latest migration to allow seed data to be updated. - - - Note that the database may already contain seed data when this method runs. This means that - implementations of this method must check whether or not seed data is present and/or up-to-date - and then only make changes if necessary and in a non-destructive way. The - - can be used to help with this, but for seeding large amounts of data it may be necessary to do less - granular checks if performance is an issue. - If the database - initializer is being used, then this method will be called each time that the initializer runs. - If one of the , , - or initializers is being used, then this method will not be - called and the Seed method defined in the initializer should be used instead. - - Context to be used for updating seed data. - - - - - - - - - - - - - - - - - - - DbMigrator is used to apply existing migrations to a database. - DbMigrator can be used to upgrade and downgrade to any given migration. - To scaffold migrations based on changes to your model use - - - - - Base class for decorators that wrap the core - - - - - Initializes a new instance of the MigratorBase class. - - The migrator that this decorator is wrapping. - - - - Gets a list of the pending migrations that have not been applied to the database. - - List of migration Ids - - - - Updates the target database to the latest migration. - - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets a list of the migrations that are defined in the assembly. - - List of migration Ids - - - - Gets a list of the migrations that have been applied to the database. - - List of migration Ids - - - - Gets the configuration being used for the migrations process. - - - - - Migration Id representing the state of the database before any migrations are applied. - - - - - Initializes a new instance of the DbMigrator class. - - Configuration to be used for the migration process. - - - - Gets all migrations that are defined in the configured migrations assembly. - - The list of migrations. - - - - Gets all migrations that have been applied to the target database. - - The list of migrations. - - - - Gets all migrations that are defined in the assembly but haven't been applied to the target database. - - The list of migrations. - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets the configuration that is being used for the migration process. - - - - - A set of extension methods for - - - - - Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation - from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Adds or updates entities by a custom identification expression when SaveChanges is called. - Equivalent to an "upsert" operation from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Generates C# code for a code-based migration. - - - - - Base class for providers that generate code for code-based migrations. - - - - - Generates the code that should be added to the users project. - - Unique identifier of the migration. - Operations to be performed by the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Gets the namespaces that must be output as "using" or "Imports" directives to handle - the code generated by the given operations. - - The operations for which code is going to be generated. - An ordered list of namespace names. - - - - Gets the default namespaces that must be output as "using" or "Imports" directives for - any code generated. - - A value indicating if this class is being generated for a code-behind file. - An ordered list of namespace names. - - - - Gets the instances that are being used. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to specify the definition for a . - The parameter definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Scaffolds code-based migrations to apply pending model changes to the database. - - - - - Initializes a new instance of the MigrationScaffolder class. - - Configuration to be used for scaffolding. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - The scaffolded migration. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The scaffolded migration. - - - - Gets or sets the namespace used in the migration's generated code. - By default, this is the same as MigrationsNamespace on the migrations - configuration object passed into the constructor. For VB.NET projects, this - will need to be updated to take into account the project's root namespace. - - - - - Represents a code-based migration that has been scaffolded and is ready to be written to a file. - - - - - Gets or sets the unique identifier for this migration. - Typically used for the file name of the generated code. - - - - - Gets or sets the scaffolded migration code that the user can edit. - - - - - Gets or sets the scaffolded migration code that should be stored in a code behind file. - - - - - Gets or sets the programming language used for this migration. - Typically used for the file extension of the generated code. - - - - - Gets or sets the subdirectory in the user's project that this migration should be saved in. - - - - - Gets a dictionary of string resources to add to the migration resource file. - - - - - Gets or sets whether the migration was re-scaffolded. - - - - - Helper class that is used by design time tools to run migrations related - commands that need to interact with an application that is being edited - in Visual Studio. - Because the application is being edited the assemblies need to - be loaded in a separate AppDomain to ensure the latest version - is always loaded. - The App/Web.config file from the startup project is also copied - to ensure that any configuration is applied. - - - - - Initializes a new instance of the ToolingFacade class. - - The name of the assembly that contains the migrations configuration to be used. - The name of the assembly that contains the DbContext to be used. - The namespace qualified name of migrations configuration to be used. - The working directory containing the compiled assemblies. - The path of the config file from the startup project. - The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. - The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. - - - - Releases all unmanaged resources used by the facade. - - - - - Gets the fully qualified name of all types deriving from . - - All context types found. - - - - Gets the fully qualified name of a type deriving from . - - The name of the context type. If null, the single context type found in the assembly will be returned. - The context type found. - - - - Gets a list of all migrations that have been applied to the database. - - Ids of applied migrations. - - - - Gets a list of all migrations that have not been applied to the database. - - Ids of pending migrations. - - - - Updates the database to the specified migration. - - The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. - Value indicating if data loss during automatic migration is acceptable. - - - - Generates a SQL script to migrate between two migrations. - - The migration to update from. If null is supplied, a script to update the current database will be produced. - The migration to update to. If null is supplied, a script to update to the latest migration will be produced. - Value indicating if data loss during automatic migration is acceptable. - The generated SQL script. - - - - Scaffolds a code-based migration to apply any pending model changes. - - The name for the generated migration. - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - The scaffolded migration. - - - - - - - Releases all resources used by the facade. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Gets or sets an action to be run to log information. - - - - - Gets or sets an action to be run to log warnings. - - - - - Gets or sets an action to be run to log verbose information. - - - - - Base class for loggers that can be used for the migrations process. - - - - - Logs an informational message. - - The message to be logged. - - - - Logs a warning that the user should be made aware of. - - The message to be logged. - - - - Logs some additional information that should only be presented to the user if they request verbose output. - - The message to be logged. - - - - Generates VB.Net code for a code-based migration. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The parameter model definition to generate code for. - Text writer to add the generated code to. - true to include the column name in the definition; otherwise, false. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Contains extension methods for the class. - - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - - The type of the result produced by the associated . - - The task to be awaited on. - An object used to await this task. - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - The task to be awaited on. - An object used to await this task. - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - - The type of the result produced by the associated . - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The result of the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - To customize the definition of the migrations history table you can derive from - this class and override OnModelCreating. Derived instances can either be registered - on a per migrations configuration basis using , - or globally using . - - - - - The default name used for the migrations history table. - - - - - Initializes a new instance of the HistoryContext class. - If you are creating a derived history context you will generally expose a constructor - that accepts these same parameters and passes them to this base constructor. - - - An existing connection to use for the new context. - - - The default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Applies the default configuration for the migrations history table. If you override - this method it is recommended that you call this base implementation before applying your - custom configuration. - - The builder that defines the model for the context being created. - - - - Gets the key used to locate a model that was previously built for this context. This is used - to avoid processing OnModelCreating and calculating the model every time a new context instance is created. - By default this property returns the default schema. - In most cases you will not need to override this property. However, if your implementation of OnModelCreating - contains conditional logic that results in a different model being built for the same database provider and - default schema you should override this property and calculate an appropriate key. - - - - - Gets the default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Gets or sets a that can be used to read and write instances. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - - - - - Gets or sets the Id of the migration this row represents. - - - - - Gets or sets a key representing to which context the row applies. - - - - - Gets or sets the state of the model after this migration was applied. - - - - - Gets or sets the version of Entity Framework that created this entry. - - - - - Represents an error that occurs when an automatic migration would result in data loss. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides additional metadata about a code-based migration. - - - - - Gets the unique identifier for the migration. - - - - - Gets the state of the model before this migration is run. - - - - - Gets the state of the model after this migration is run. - - - - - Decorator to provide logging during migrations operations.. - - - - - Initializes a new instance of the MigratorLoggingDecorator class. - - The migrator that this decorator is wrapping. - The logger to write messages to. - - - - Decorator to produce a SQL script instead of applying changes to the database. - Using this decorator to wrap will prevent - from applying any changes to the target database. - - - - - Initializes a new instance of the MigratorScriptingDecorator class. - - The migrator that this decorator is wrapping. - - - - Produces a script to update the database. - - - The migration to update from. If null is supplied, a script to update the - current database will be produced. - - - The migration to update to. If null is supplied, - a script to update to the latest migration will be produced. - - The generated SQL script. - - - - Represents a column being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be added to. - Details of the column being added. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be added to. - - - - - Gets the details of the column being added. - - - - - Gets an operation that represents dropping the added column. - - - - - - - - Represents a foreign key constraint being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Base class for changes that affect foreign key constraints. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that the foreign key constraint targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the name of the table that the foreign key columns exist in. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - The names of the foreign key column(s). - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this foreign key constraint. - - - - - Gets or sets the name of this foreign key constraint. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddForeignKeyOperation class. - The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to create an index on the foreign key column(s). - - An operation to add the index. - - - - The names of the column(s) that the foreign key constraint should target. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. - - - - - Gets an operation to drop the foreign key constraint. - - - - - - - - Represents adding a primary key to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class to represent operations affecting primary keys. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Returns the default name for the primary key. - - The target table name. - The default primary key name. - - - - Initializes a new instance of the PrimaryKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that contains the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the column(s) that make up the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this primary key. - - - - - Gets or sets the name of this primary key. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - - - - Initializes a new instance of the AddPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the primary key. - - - - - Gets or sets whether this is a clustered primary key. - - - - - Represents altering an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - An operation to revert this alteration of the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table that the column belongs to. - - - - - Gets the new definition for the column. - - - - - Gets an operation that represents reverting the alteration. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents information about a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Determines if this column is a narrower data type than another column. - Used to determine if altering the supplied column definition to this definition will result in data loss. - - The column to compare to. - Details of the database provider being used. - True if this column is of a narrower data type. - - - - Gets the CLR type corresponding to the database type of this column. - - - - - Gets the default value for the CLR type corresponding to the database type of this column. - - - - - Gets or sets a value indicating if this column can store null values. - - - - - Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. - - - - - Gets or sets a value indicating if this property model should be configured as a timestamp. - - - - - Gets or sets the custom annotations that have changed on the column. - - - - - Represents creating a database index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class for operations affecting indexes. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a default index name based on the supplied column names. - - The column names used to create a default index name. - A default index name. - - - - Initializes a new instance of the IndexOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets or sets the table the index belongs to. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the columns that are indexed. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this index. - - - - - Gets or sets the name of this index. - If no name is supplied, a default name will be calculated. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateIndexOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets a value indicating if this is a unique index. - - - - - Gets an operation to drop this index. - - - - - - - - Gets or sets whether this is a clustered index. - - - - - Represents creating a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Custom annotations that exist on the table to be created. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be created. - - - - - Gets the columns to be included in the new table. - - - - - Gets or sets the primary key for the new table. - - - - - Gets custom annotations that exist on the table to be created. - - - - - Gets an operation to drop the table. - - - - - - - - Represents a column being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be dropped from. - - - - - Gets the name of the column to be dropped. - - - - - Gets custom annotations that exist on the column that is being dropped. - - - - - Gets an operation that represents reverting dropping the column. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents a foreign key constraint being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropForeignKeyOperation class. - The PrincipalTable, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc.. - - The operation that represents reverting dropping the foreign key constraint. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the associated index on the foreign key column(s). - - An operation to drop the index. - - - - Gets an operation that represents reverting dropping the foreign key constraint. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The operation that represents reverting dropping the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that represents reverting dropping the index. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping a primary key from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to add the primary key. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents dropping an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be dropped. - - - - - Gets custom annotations that exist on the table that is being dropped. - - - - - Gets custom annotations that exist on columns of the table that is being dropped. - - - - - Gets an operation that represents reverting dropping the table. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Operation representing DML changes to the migrations history table. - The migrations history table is used to store a log of the migrations that have been applied to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the HistoryOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A sequence of command trees representing the operations being applied to the history table. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - A sequence of commands representing the operations being applied to the history table. - - - - - - - - Represents moving a table from one schema to another. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MoveTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be moved. - Name of the schema to move the table to. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be moved. - - - - - Gets the name of the schema to move the table to. - - - - - Gets an operation that moves the table back to its original schema. - - - - - - - - Used when altering the migrations history table so that data can be moved to the new table. - - - The context key for the model. - - - - - Gets a value that indicates whether this is a system table. - - - true if the table is a system table; otherwise, false. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents renaming an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the column belongs to. - Name of the column to be renamed. - New name for the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column belongs to. - - - - - Gets the name of the column to be renamed. - - - - - Gets the new name for the column. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents renaming an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be renamed. - New name for the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be renamed. - - - - - Gets the new name for the table. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents a provider specific SQL statement to be executed directly against the target database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the SqlOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the SQL to be executed. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - - - - Common base class for providers that convert provider agnostic migration - operations into database provider specific SQL commands. - - - - - Converts a set of migration operations into database provider specific SQL. - - The operations to be converted. - Token representing the version of the database being targeted. - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Builds the store type usage for the specified using the facets from the specified . - - Name of the store type. - The target property. - A store-specific TypeUsage - - - - Gets or sets the provider manifest. - - - The provider manifest. - - - - - Represents a migration operation that has been translated into a SQL statement. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the SQL to be executed to perform this migration operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - Gets or sets the batch terminator for the database provider. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The batch terminator for the database provider. - - - - - Extension methods for . - - - - - Returns an implementation that stays in sync with the given - . - - The element type. - The collection that the binding list will stay in sync with. - The binding list. - - - - Represents data in a geodetic (round earth) coordinate system. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( - - ). - - A byte array that contains a well known binary representation of the geography value. - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified well known text value. - - - A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geography value. - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known text value. - The multi polygon value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. - A string containing the well known text representation of this DbGeography value. - - - Generates the well known binary representation of this DbGeography value. - The well-known binary representation of this DbGeography value. - - - Generates the Geography Markup Language (GML) representation of this DbGeography value. - A string containing the GML representation of this DbGeography value. - - - Determines whether this DbGeography is spatially equal to the specified DbGeography argument. - true if other is spatially equal to this geography value; otherwise false. - The geography value that should be compared with this geography value for equality. - - - Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. - true if other is disjoint from this geography value; otherwise false. - The geography value that should be compared with this geography value for disjointness. - - - Determines whether this DbGeography value spatially intersects the specified DbGeography argument. - true if other intersects this geography value; otherwise false. - The geography value that should be compared with this geography value for intersection. - - - Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. - A geography object that represents the union of all points - The distance. - - - Computes the distance between the closest points in this DbGeography value and another DbGeography value. - A double value that specifies the distance between the two closest points in this geography value and other. - The geography value for which the distance from this value should be computed. - - - Computes the intersection of this DbGeography value and another DbGeography value. - A new DbGeography value representing the intersection between this geography value and other. - The geography value for which the intersection with this value should be computed. - - - Computes the union of this DbGeography value and another DbGeography value. - A new DbGeography value representing the union between this geography value and other. - The geography value for which the union with this value should be computed. - - - Computes the difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the difference between this geography value and other. - The geography value for which the difference with this value should be computed. - - - Computes the symmetric difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the symmetric difference between this geography value and other. - The geography value for which the symmetric difference with this value should be computed. - - - Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns a string representation of the geography value. - A string representation of the geography value. - - - Gets the default coordinate system id (SRID) for geography values (WGS 84) - The default coordinate system id (SRID) for geography values (WGS 84) - - - Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. - A representation of this DbGeography value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeography value. - A data contract serializable well known representation of this DbGeography value. - - - Gets the identifier associated with the coordinate system. - The identifier associated with the coordinate system. - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of the given value. - - - - Gets the spatial type name of the DBGeography. - The spatial type name of the DBGeography. - - - Gets a nullable Boolean value indicating whether this DbGeography value is empty. - True if this DbGeography value is empty; otherwise, false. - - - Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> - The number of elements in this DbGeography value. - - - Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Latitude coordinate of this DbGeography value. - - - Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Longitude coordinate of this DbGeography value. - - - Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeography value. - - - Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The M (Measure) coordinate of this DbGeography value. - - - Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. - A nullable double value that indicates the length of this DbGeography value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. - True if this DbGeography value is closed; otherwise, false. - - - Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeography value. - - - Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeography value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - Represents geometric shapes. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( - - ). - - A byte array that contains a well known binary representation of the geometry value. - wellKnownBinary - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownBinary - coordinateSystemId - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownBinary - coordinateSystemId - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownBinary - coordinateSystemId - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownBinary - coordinateSystemId - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multipoint value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownBinary - coordinateSystemId - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - geometryMarkup - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryMarkup - coordinateSystemId - - - - Creates a new value based on the specified well known text value. - - - A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geometry value. - wellKnownText - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownText - coordinateSystemId - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownText - coordinateSystemId - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownText - coordinateSystemId - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownText - coordinateSystemId - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownText - coordinateSystemId - - - Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. - A string containing the well known text representation of this DbGeometry value. - - - Generates the well known binary representation of this DbGeometry value. - The well-known binary representation of this DbGeometry value. - - - Generates the Geography Markup Language (GML) representation of this DbGeometry value. - A string containing the GML representation of this DbGeometry value. - - - Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. - true if other is spatially equal to this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for equality. - other - - - Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. - true if other is disjoint from this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for disjointness. - other - - - Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. - true if other intersects this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for intersection. - other - - - Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. - true if other touches this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. - true if other crosses this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. - true if this geometry value is within other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. - true if this geometry value contains other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. - true if this geometry value overlaps other; otherwise false. - The geometry value that should be compared with this geometry value for overlap. - other - - - Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. - The geometry value that should be compared with this geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - othermatrix - - - Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. - A geometry object that represents the union of all points. - The distance. - - - Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. - A double value that specifies the distance between the two closest points in this geometry value and other. - The geometry value for which the distance from this value should be computed. - other - - - Computes the intersection of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the intersection between this geometry value and other. - The geometry value for which the intersection with this value should be computed. - other - - - Computes the union of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the union between this geometry value and other. - The geometry value for which the union with this value should be computed. - other - - - Computes the difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the difference between this geometry value and other. - The geometry value for which the difference with this value should be computed. - other - - - Computes the symmetric difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the symmetric difference between this geometry value and other. - The geometry value for which the symmetric difference with this value should be computed. - other - - - Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> - An interior ring from this DbGeometry value at a specific position. - The index. - - - Returns a string representation of the geometry value. - A string representation of the geometry value. - - - Gets the default coordinate system id (SRID) for geometry values. - The default coordinate system id (SRID) for geometry values. - - - Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. - A representation of this DbGeometry value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeometry value. - A data contract serializable well known representation of this DbGeometry value. - - - Gets the coordinate system identifier of the DbGeometry object. - The coordinate system identifier of the DbGeometry object. - - - Gets the boundary of the DbGeometry objects. - The boundary of the DbGeometry objects. - - - - Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. - - - The dimension of the given value. - - - - Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. - The envelope (minimum bounding box) of this DbGeometry value. - - - Gets a spatial type name representation of this DbGeometry value. - A spatial type name representation of this DbGeometry value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. - True if this DbGeometry value is empty; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is simple. - True if this DbGeometry value is simple; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is valid. - True if this DbGeometry value is valid; otherwise, false. - - - Gets the convex hull of this DbGeometry value as another DbGeometry value. - The convex hull of this DbGeometry value as another DbGeometry value. - - - Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> - The number of elements in this DbGeometry value. - - - Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The X coordinate of this DbGeometry value. - - - Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The Y coordinate of this DbGeometry value. - - - Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeometry value. - - - Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> - The Measure (M coordinate) of this DbGeometry value. - - - Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. - The length of this DbGeometry value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. - True if this DbGeometry value is closed; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. - True if this DbGeometry value is a ring; otherwise, false. - - - Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeometry value. - - - Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeometry value. - - - Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. - The DbGeometry value that represents the centroid of this DbGeometry value. - - - Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. - A point on the surface of this DbGeometry value. - - - Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. - The DbGeometry value that represents the exterior ring of this DbGeometry value. - - - Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> - The number of interior rings in this DbGeometry value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeography at the specified column value - The ordinal of the column that contains the geography value - - - - Asynchronously reads an instance of from the column at the specified column ordinal. - - - Providers should override with an appropriate implementation. - The default implementation invokes the synchronous method and returns - a completed task, blocking the calling thread. - - The ordinal of the column that contains the geography value. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the instance of at the specified column value. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeometry at the specified column value - The ordinal of the data record column that contains the provider-specific geometry data - - - - Asynchronously reads an instance of from the column at the specified column ordinal. - - - Providers should override with an appropriate implementation. - The default implementation invokes the synchronous method and returns - a completed task, blocking the calling thread. - - The ordinal of the data record column that contains the provider-specific geometry data. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the instance of at the specified column value. - - - - - Returns whether the column at the specified column ordinal is of geography type - - The column ordinal. - - true if the column at the specified column ordinal is of geography type; - false otherwise. - - - - - Returns whether the column at the specified column ordinal is of geometry type - - The column ordinal. - - true if the column at the specified column ordinal is of geometry type; - false otherwise. - - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - The provider value. - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. - A new DbGeography value backed by this spatial services implementation and the specified provider value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geography value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geographyValue, as a new - - . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geographyValue, or the largest element dimension if - - is a collection. - - The geography value for which the dimension value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. - - A string containing the well-known text representation of geographyValue. - The geography value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geography value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeography value. - The geography value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geographyValue is spatially equal to otherGeography; otherwise false. - The first geography value to compare for equality. - The second geography value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geographyValue is disjoint from otherGeography; otherwise false. - The first geography value to compare for disjointness. - The second geography value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geographyValue intersects otherGeography; otherwise false. - The first geography value to compare for intersection. - The second geography value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geography value representing all points less than or equal to distance from the given - - value. - - A new DbGeography value representing all points less than or equal to distance from geographyValue. - The geography value. - A double value specifying how far from geographyValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference of two values. - - A new DbGeography value representing the difference of geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference of two values. - - - A new value representing the symmetric difference of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geography collection. - - The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geography collection. - - The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Latitude coordinate of the given value, if it represents a point. - - - The Latitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Longitude coordinate of the given value, if it represents a point. - - - The Longitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z coordinate) of the given value, if it represents a point. - - The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. - - The end point of geographyValue, if it represents a curve; otherwise null. - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geography value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. - The geography value, which need not represent a linestring or linear ring. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geography value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - A provider value. - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geometry value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geometryValue, as a new - - . - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the boundary of the given - - value. - - - The boundary of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geometryValue, or the largest element dimension if - - is a collection. - - The geometry value for which the dimension value should be retrieved. - - - - Gets the envelope (minimum bounding box) of the given value, as a geometry value. - - - The envelope of geometryValue, as a value. - - The geometry value for which the envelope value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is simple. - - - True if the given value is simple; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is valid. - - - True if the given value is valid; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value, including only X and Y coordinates for points. - - A string containing the well-known text representation of geometryValue. - The geometry value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of with elevation and measure. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geometry value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeometry value. - The geometry value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geometryValue is spatially equal to otherGeometry; otherwise false. - The first geometry value to compare for equality. - The second geometry value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geometryValue is disjoint from otherGeometry; otherwise false. - The first geometry value to compare for disjointness. - The second geometry value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geometryValue intersects otherGeometry; otherwise false. - The first geometry value to compare for intersection. - The second geometry value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially touch. - - true if geometryValue touches otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially cross. - - true if geometryValue crosses otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value is spatially within the other. - - true if geometryValue is within otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value spatially contains the other. - - true if geometryValue contains otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially overlap. - - true if geometryValue overlaps otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - - true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. - The first geometry value. - The geometry value that should be compared with the first geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - - - , - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geometry value representing all points less than or equal to distance from the given - - value. - - A new DbGeometry value representing all points less than or equal to distance from geometryValue. - The geometry value. - A double value specifying how far from geometryValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the convex hull of the given - - value. - - - The convex hull of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference between two values. - - A new DbGeometry value representing the difference between geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference between two values. - - - A new value representing the symmetric difference between geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geometry collection. - - The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geometry collection. - - The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the X coordinate of the given value, if it represents a point. - - - The X coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Y coordinate of the given value, if it represents a point. - - - The Y coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z) of the given value, if it represents a point. - - The elevation (Z) of geometryValue, if it represents a point; otherwise null. - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. - - The end point of geometryValue, if it represents a curve; otherwise null. - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. - - - True if the given value is a ring; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geometry value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. - The geometry value, which need not represent a linestring or linear ring. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. - - The centroid of geometryValue, if it represents a surface; otherwise null. - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. - - - A value that represents a point on the surface of the given DbGeometry value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. - - A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of interior rings in the given value, if it represents a polygon. - - The number of elements in geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an interior ring from the given value, if it represents a polygon. - - The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the default services for the . - - The default services. - - - - Override this property to allow the spatial provider to fail fast when native types or other - resources needed for the spatial provider to function correctly are not available. - The default value is true which means that EF will continue with the assumption - that the provider has the necessary types/resources rather than failing fast. - - - - - The same as but works in partial trust and adds explicit caching of - generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure - we indent the next line properly. - - - - - Specifies the default tab string. This field is constant. - - - - - Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. - Note that any writer passed to one of the constructors of must use this - same culture. The culture is . - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - The tab string to use for indentation. - - - - Closes the document being written to. - - - - - Flushes the stream. - - - - - Outputs the tab string once for each level of indentation according to the - - property. - - - - - Builds a string representing the current indentation level for a new line. - - - Does NOT check if tabs are currently pending, just returns a string that would be - useful in replacing embedded newline characters. - - An empty string, or a string that contains .Indent level's worth of specified tab-string. - - - - Writes the specified string to the text stream. - - The string to write. - - - - Writes the text representation of a Boolean value to the text stream. - - The Boolean value to write. - - - - Writes a character to the text stream. - - The character to write. - - - - Writes a character array to the text stream. - - The character array to write. - - - - Writes a subarray of characters to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double to the text stream. - - The double to write. - - - - Writes the text representation of a Single to the text stream. - - The single to write. - - - - Writes the text representation of an integer to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object to the text stream. - - The object to write. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the specified string to a line without tabs. - - The string to write. - - - - Writes the specified string, followed by a line terminator, to the text stream. - - The string to write. - - - - Writes a line terminator. - - - - - Writes the text representation of a Boolean, followed by a line terminator, to the text stream. - - The Boolean to write. - - - - Writes a character, followed by a line terminator, to the text stream. - - The character to write. - - - - Writes a character array, followed by a line terminator, to the text stream. - - The character array to write. - - - - Writes a subarray of characters, followed by a line terminator, to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double, followed by a line terminator, to the text stream. - - The double to write. - - - - Writes the text representation of a Single, followed by a line terminator, to the text stream. - - The single to write. - - - - Writes the text representation of an integer, followed by a line terminator, to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object, followed by a line terminator, to the text stream. - - The object to write. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the text representation of a UInt32, followed by a line terminator, to the text stream. - - A UInt32 to output. - - - - Gets the encoding for the text writer to use. - - - An that indicates the encoding for the text writer to use. - - - - - Gets or sets the new line character to use. - - The new line character to use. - - - - Gets or sets the number of spaces to indent. - - The number of spaces to indent. - - - - Gets the to use. - - - The to use. - - - - - Convention to apply column ordering specified via - - or the API. This convention throws if a duplicate configured column order - is detected. - - - - - Convention to apply column ordering specified via - - or the API. - - - - - - - - Validates the ordering configuration supplied for columns. - This base implementation is a no-op. - - The name of the table that the columns belong to. - The definition of the table. - - - - Validates the ordering configuration supplied for columns to ensure - that the same ordinal was not supplied for two columns. - - The name of the table that the columns belong to. - The definition of the table. - - - - Represents a conceptual or store model. This class can be used to access information about the shape of the model - and the way the that it has been configured. - - - - - Adds an association type to the model. - - The AssociationType instance to be added. - - - - Adds a complex type to the model. - - The ComplexType instance to be added. - - - - Adds an entity type to the model. - - The EntityType instance to be added. - - - - Adds an enumeration type to the model. - - The EnumType instance to be added. - - - - Adds a function to the model. - - The EdmFunction instance to be added. - - - - Removes an association type from the model. - - The AssociationType instance to be removed. - - - - Removes a complex type from the model. - - The ComplexType instance to be removed. - - - - Removes an entity type from the model. - - The EntityType instance to be removed. - - - - Removes an enumeration type from the model. - - The EnumType instance to be removed. - - - - Removes a function from the model. - - The EdmFunction instance to be removed. - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - - Gets the data space associated with the model, which indicates whether - it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). - - - - - Gets the association types in the model. - - - - - Gets the complex types in the model. - - - - - Gets the entity types in the model. - - - - - Gets the enum types in the model. - - - - - Gets the functions in the model. - - - - - Gets the container that stores entity and association sets, and function imports. - - - - Gets the global items associated with the model. - The global items associated with the model. - - - - An implementation of IDatabaseInitializer that will recreate and optionally re-seed the - database only if the database does not exist. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An instance of this class is obtained from an object and can be used - to manage the actual database backing a DbContext or connection. - This includes creating, deleting, and checking for the existence of a database. - Note that deletion and checking for existence of a database can be performed using just a - connection (i.e. without a full context) by using the static methods of this class. - - - - - Enables the user to pass in a database transaction created outside of the object - if you want the Entity Framework to execute commands within that external transaction. - Alternatively, pass in null to clear the framework's knowledge of that transaction. - - the external transaction - Thrown if the transaction is already completed - - Thrown if the connection associated with the object is already enlisted in a - - transaction - - - Thrown if the connection associated with the object is already participating in a transaction - - Thrown if the connection associated with the transaction does not match the Entity Framework's connection - - - - Begins a transaction on the underlying store connection - - - a object wrapping access to the underlying store's transaction object - - - - - Begins a transaction on the underlying store connection using the specified isolation level - - The database isolation level with which the underlying store transaction will be created - - a object wrapping access to the underlying store's transaction object - - - - - Sets the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Runs the the registered on this context. - If "force" is set to true, then the initializer is run regardless of whether or not it - has been run before. This can be useful if a database is deleted while an app is running - and needs to be reinitialized. - If "force" is set to false, then the initializer is only run if it has not already been - run for this context, model, and connection in this app domain. This method is typically - used when it is necessary to ensure that the database has been created and seeded - before starting some operation where doing so lazily will cause issues, such as when the - operation is part of a transaction. - - - If set to true the initializer is run even if it has already been run. - - - - - Checks whether or not the database is compatible with the the current Code First model. - - - Model compatibility currently uses the following rules. - If the context was created using either the Model First or Database First approach then the - model is assumed to be compatible with the database and this method returns true. - For Code First the model is considered compatible if the model is stored in the database - in the Migrations history table and that model has no differences from the current model as - determined by Migrations model differ. - If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, - then this is used to check for compatibility. - - - If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. - - True if the model hash in the context and the database match; false otherwise. - - - - Creates a new database on the database server for the model defined in the backing context. - Note that calling this method before the database initialization strategy has run will disable - executing that strategy. - - - - - Creates a new database on the database server for the model defined in the backing context, but only - if a database with the same name does not already exist on the server. - - True if the database did not exist and was created; false otherwise. - - - - Checks whether or not the database exists on the server. - - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - Calling this method from outside of an initializer will mark the database as having - not been initialized. This means that if an attempt is made to use the database again - after it has been deleted, then any initializer set will run again and, usually, will - try to create the database again automatically. - - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - - An existing connection to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - - An existing connection to the database. - True if the database did exist and was deleted; false otherwise. - - - - Creates a raw SQL query that will return elements of the given generic type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Creates a raw SQL query that will return elements of the given type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local or ambient transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command string. - - A to observe while waiting for the task to complete. - - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command string. - - A to observe while waiting for the task to complete. - - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the connection being used by this context. This may cause the - connection to be created if it does not already exist. - - Thrown if the context has been disposed. - - - - The connection factory to use when creating a from just - a database name or a connection string. - - - This is used when just a database name or connection string is given to or when - the no database name or connection is given to DbContext in which case the name of - the context class is passed to this factory in order to generate a DbConnection. - By default, the instance to use is read from the application's .config - file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in - the config file then is used. Setting this property in code - always overrides whatever value is found in the config file. - - - - - Gets or sets the timeout value, in seconds, for all context operations. - The default value is null, where null indicates that the default value of the underlying - provider will be used. - - - The timeout, in seconds, or null to use the provider default. - - - - - Set this property to log the SQL generated by the to the given - delegate. For example, to log to the console, set this property to . - - - The format of the log text can be changed by creating a new formatter that derives from - and setting it with . - For more low-level control over logging/interception see and - . - - - - - DbModelBuilder is used to map CLR classes to a database schema. - This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. - - - DbModelBuilder is typically used to configure a model by overriding - DbContext.OnModelCreating(DbModelBuilder) - . - You can also use DbModelBuilder independently of DbContext to build a model and then construct a - or . - The recommended approach, however, is to use OnModelCreating in as - the workflow is more intuitive and takes care of common tasks, such as caching the created model. - Types that form your model are registered with DbModelBuilder and optional configuration can be - performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder - API. - When the Build method is called a set of conventions are run to discover the initial model. - These conventions will automatically discover aspects of the model, such as primary keys, and - will also process any data annotations that were specified on your classes. Finally - any configuration that was performed using the DbModelBuilder API is applied. - Configuration done via the DbModelBuilder API takes precedence over data annotations which - in turn take precedence over the default conventions. - - - - - Initializes a new instance of the class. - The process of discovering the initial model will use the set of conventions included - in the most recent version of the Entity Framework installed on your machine. - - - Upgrading to newer versions of the Entity Framework may cause breaking changes - in your application because new conventions may cause the initial model to be - configured differently. There is an alternate constructor that allows a specific - version of conventions to be specified. - - - - - Initializes a new instance of the class that will use - a specific set of conventions to discover the initial model. - - The version of conventions to be used. - - - - Excludes a type from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The type to be excluded. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Configures the default database schema name. This default database schema name is used - for database objects that do not have an explicitly configured schema name. - - The name of the default database schema. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Excludes the specified type(s) from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The types to be excluded from the model. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Registers an entity type as part of the model and returns an object that can be used to - configure the entity. This method can be called multiple times for the same entity to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified entity type. - - - - Registers an entity type as part of the model. - - The type to be registered. - - This method is provided as a convenience to allow entity types to be registered dynamically - without the need to use MakeGenericMethod in order to call the normal generic Entity method. - This method does not allow further configuration of the entity type using the fluent APIs since - these APIs make extensive use of generic type parameters. - - - - - Registers a type as a complex type in the model and returns an object that can be used to - configure the complex type. This method can be called multiple times for the same type to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified complex type. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types - in the model that inherit from or implement the type specified by the generic argument. - This method does not register types as part of the model. - - The type of the entities or complex types that this convention will apply to. - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Creates a based on the configuration performed using this builder. - The connection is used to determine the database provider being used as this - affects the database layer of the generated model. - - Connection to use to determine provider information. - The model that was built. - - - - Creates a based on the configuration performed using this builder. - Provider information must be specified because this affects the database layer of the generated model. - For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) - - The database provider that the model will be used with. - The model that was built. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to the settings of this DbModelBuilder that deal with conventions. - - - - - Gets the for this DbModelBuilder. - The registrar allows derived entity and complex type configurations to be registered with this builder. - - - - - A value from this enumeration can be provided directly to the - class or can be used in the applied to - a class derived from . The value used defines which version of - the DbContext and DbModelBuilder conventions should be used when building a model from - code--also known as "Code First". - - - Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available - when upgrading to a new release of the Entity Framework. However, it may result in an - application behaving differently with the new release than it did with a previous release. - This can be avoided by using a specific version of the conventions, but if a version - other than the latest is set then not all the latest functionality will be available. - - - - - Indicates that the latest version of the and - conventions should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v4.1 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - when targeting .Net Framework 4 should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v6.0 - should be used. - - - - - This attribute can be applied to a class derived from to set which - version of the DbContext and conventions should be used when building - a model from code--also known as "Code First". See the - enumeration for details about DbModelBuilder versions. - - - If the attribute is missing from DbContextthen DbContext will always use the latest - version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. - - - - - Initializes a new instance of the class. - - - The conventions version to use. - - - - - Gets the conventions version. - - - The conventions version. - - - - - A non-generic version of which can be used when the type of entity - is not known at build time. - - - - - Represents a non-generic LINQ to Entities query against a DbContext. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new DbQuery<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns the equivalent generic object. - - The type of element for which the query was created. - The generic set object. - - - - Returns a representation of the underlying query. - - The query string. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Returns the equivalent generic object. - - The type of entity for which the set was created. - The generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - A DbSet represents the collection of all entities in the context, or that can be queried from the - database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. - - - Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a - one-to-one correlation between a type and a set. - - The type that defines the set. - - - - Represents a LINQ to Entities query against a DbContext. - - The type of entity to query for. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns a representation of the underlying query. - - The query string. - - - - Returns a new instance of the non-generic class for this query. - - The query. - A non-generic version. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - An represents the collection of all entities in the context, or that - can be queried from the database, of a given type. is a concrete - implementation of IDbSet. - - - was originally intended to allow creation of test doubles (mocks or - fakes) for . However, this approach has issues in that adding new members - to an interface breaks existing code that already implements the interface without the new members. - Therefore, starting with EF6, no new members will be added to this interface and it is recommended - that be used as the base class for test doubles. - - The type that defines the set. - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - - - - - - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - - - - - - - Returns the equivalent non-generic object. - - The generic set object. - The non-generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - - - - An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the - database the first time that a context is used in the app domain. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the - database only if the model has changed since the database was created. - - The type of the context. - - Whether or not the model has changed is determined by the - method. - To seed the database create a derived class and override the Seed method. - - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - Returned by the ChangeTracker method of to provide access to features of - the context that are related to change tracking of entities. - - - - - Gets objects for all the entities tracked by this context. - - The entries. - - - - Gets objects for all the entities of the given type - tracked by this context. - - The type of the entity. - The entries. - - - - Checks if the is tracking any new, deleted, or changed entities or - relationships that will be sent to the database if is called. - - - Functionally, calling this method is equivalent to checking if there are any entities or - relationships in the Added, Updated, or Deleted state. - Note that this method calls unless - has been set to false. - - - True if underlying have changes, else false. - - - - - Detects changes made to the properties and relationships of POCO entities. Note that some types of - entity (such as change tracking proxies and entities that derive from - ) - report changes automatically and a call to DetectChanges is not normally needed for these types of entities. - Also note that normally DetectChanges is called automatically by many of the methods of - and its related classes such that it is rare that this method will need to be called explicitly. - However, it may be desirable, usually for performance reasons, to turn off this automatic calling of - DetectChanges using the AutoDetectChangesEnabled flag from . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - A non-generic version of the class. - - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the name of the property. - - The property name. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the collection element. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Collection method of - and allow operations such as loading to - be performed on the an entity's collection navigation properties. - - The type of the entity to which this property belongs. - The type of the element in the collection of entities. - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Gets the name of the property. - The name of the property. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - An immutable representation of an Entity Data Model (EDM) model that can be used to create an - or can be passed to the constructor of a . - For increased performance, instances of this type should be cached and re-used to construct contexts. - - - - - Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance - of DbContext can be created instead by using the appropriate DbContext constructor. - If a derived ObjectContext is used, then it must have a public constructor with a single - EntityConnection parameter. - The connection passed is used by the ObjectContext created, but is not owned by the context. The caller - must dispose of the connection once the context has been disposed. - - The type of context to create. - An existing connection to a database for use by the context. - The context. - - - - A non-generic version of the class. - - - - - A non-generic version of the class. - - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - Setting this value to false for a modified property will revert the change by setting the - current value to the original value. If the result is that no properties of the entity are - marked as modified, then the entity will be marked as Unchanged. - Setting this value to false for properties of Added, Unchanged, or Deleted entities - is a no-op. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the complex property. - The equivalent generic object. - - - - Instances of this class are returned from the ComplexProperty method of - and allow access to the state of a complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Instances of this class are returned from the Property method of - and allow access to the state of the scalar - or complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Describes the origin of the database connection string associated with a . - - - - - The connection string was created by convention. - - - - - The connection string was read from external configuration. - - - - - The connection string was explicitly specified at runtime. - - - - - The connection string was overriden by connection information supplied to DbContextInfo. - - - - - Returned by the Configuration method of to provide access to configuration - options for the context. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets or sets a value indicating whether lazy loading of relationships exposed as - navigation properties is enabled. Lazy loading is enabled by default. - - - true if lazy loading is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether or not the framework will create instances of - dynamically generated proxy classes whenever it creates an instance of an entity type. - Note that even if proxy creation is enabled with this flag, proxy instances will only - be created for entity types that meet the requirements for being proxied. - Proxy creation is enabled by default. - - - true if proxy creation is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is false. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets or sets a value indicating whether the - method is called automatically by methods of and related classes. - The default value is true. - - - true if should be called automatically; otherwise, false. - - - - - Gets or sets a value indicating whether tracked entities should be validated automatically when - is invoked. - The default value is true. - - - - - Provides runtime information about a given type. - - - - - Creates a new instance representing a given type. - - - The type deriving from . - - - - - Creates a new instance representing a given targeting a specific database. - - - The type deriving from . - - Connection information for the database to be used. - - - - Creates a new instance representing a given type. An external list of - connection strings can be supplied and will be used during connection string resolution in place - of any connection strings specified in external configuration files. - - - It is preferable to use the constructor that accepts the entire config document instead of using this - constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config - to be found in addition to explicitly specified connection strings. - - - The type deriving from . - - A collection of connection strings. - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - - - - Creates a new instance representing a given , targeting a specific database. - An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - Connection information for the database to be used. - - - - Creates a new instance representing a given type. A - can be supplied in order to override the default determined provider used when constructing - the underlying EDM model. - - - The type deriving from . - - - A specifying the underlying ADO.NET provider to target. - - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - A can be supplied in order to override the default determined - provider used when constructing the underlying EDM model. This can be useful to prevent EF from - connecting to discover a manifest token. - - - The type deriving from . - - An object representing the config file. - - A specifying the underlying ADO.NET provider to target. - - - - - If instances of the underlying type can be created, returns - a new instance; otherwise returns null. - - - A instance. - - - - - The concrete type. - - - - - Whether or not instances of the underlying type can be created. - - - - - The connection string used by the underlying type. - - - - - The connection string name used by the underlying type. - - - - - The ADO.NET provider name of the connection used by the underlying type. - - - - - The origin of the connection string used by the underlying type. - - - - - An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. - - - - - A non-generic version of the class. - - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Returns a new instance of the generic class for the given - generic type for the tracked entity represented by this object. - Note that the type of the tracked entity must be compatible with the generic type or - an exception will be thrown. - - The type of the entity. - A generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Instances of this class provide access to information about and control of entities that - are being tracked by the . Use the Entity or Entities methods of - the context to obtain objects of this type. - - The type of the entity. - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - An expression representing the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - An expression representing the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The type of the member. - The name of the member. - An object representing the member. - - - - Returns a new instance of the non-generic class for - the tracked entity represented by this object. - - The object representing the tracked entity. - A non-generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Represents an Entity Data Model (EDM) created by the . - The Compile method can be used to go from this EDM representation to a - which is a compiled snapshot of the model suitable for caching and creation of - or instances. - - - - - Creates a for this mode which is a compiled snapshot - suitable for caching and creation of instances. - - The compiled model. - - - - Gets the provider information. - - - - - Gets the provider manifest. - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Gets the mapping model. - - - - - A collection of all the properties for an underlying entity or complex object. - - - An instance of this class can be converted to an instance of the generic class - using the Cast method. - Complex properties in the underlying entity or complex object are represented in - the property values as nested instances of this class. - - - - - Creates an object of the underlying type for this dictionary and hydrates it with property - values from this dictionary. - - The properties of this dictionary copied into a new object. - - - - Sets the values of this dictionary by reading values out of the given object. - The given object can be of any type. Any property on the object with a name that - matches a property name in the dictionary and can be read will be read. Other - properties will be ignored. This allows, for example, copying of properties from - simple Data Transfer Objects (DTOs). - - The object to read values from. - - - - Creates a new dictionary containing copies of all the properties in this dictionary. - Changes made to the new dictionary will not be reflected in this dictionary and vice versa. - - A clone of this dictionary. - - - - Sets the values of this dictionary by reading values from another dictionary. - The other dictionary must be based on the same type as this dictionary, or a type derived - from the type for this dictionary. - - The dictionary to read values from. - - - - Gets the value of the property just like using the indexed property getter but - typed to the type of the generic parameter. This is useful especially with - nested dictionaries to avoid writing expressions with lots of casts. - - The type of the property. - Name of the property. - The value of the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the set of names of all properties in this dictionary as a read-only set. - - The property names. - - - - Gets or sets the value of the property with the specified property name. - The value may be a nested instance of this class. - - The property name. - The value of the property. - - - - Groups a pair of strings that identify a provider and server version together into a single object. - - - Instances of this class act as the key for resolving a for a specific - provider from a . This is typically used when registering spatial services - in or when the spatial services specific to a provider is - resolved by an implementation of . - - - - - Creates a new object for a given provider invariant name and manifest token. - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - The manifest token is sometimes referred to as a version hint. - - - - - - - - - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - - - - - A non-generic version of the class. - - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Reference method of - and allow operations such as loading to - be performed on the an entity's reference navigation properties. - - The type of the entity to which this property belongs. - The type of the property. - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Exception thrown by when it was expected that SaveChanges for an entity would - result in a database update but in fact no rows in the database were affected. This usually indicates - that the database has been concurrently updated such that a concurrency token that was expected to match - did not actually match. - Note that state entries referenced by this exception are not serialized due to security and accesses to - the state entries after serialization will return null. - - - - - Exception thrown by when the saving of changes to the database fails. - Note that state entries referenced by this exception are not serialized due to security and accesses to the - state entries after serialization will return null. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Gets objects that represents the entities that could not - be saved to the database. - - The entries representing the entities that could not be saved. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Represents an entity used to store metadata about an EDM in the database. - - - - - Attempts to get the model hash calculated by Code First for the given context. - This method will return null if the context is not being used in Code First mode. - - The context. - The hash string. - - - - Gets or sets the ID of the metadata entity, which is currently always 1. - - The id. - - - - Gets or sets the model hash which is used to check whether the model has - changed since the database was created from it. - - The model hash. - - - - Contains methods used to access the Entity Data Model created by Code First in the EDMX form. - These methods are typically used for debugging when there is a need to look at the model that - Code First creates internally. - - - - - Uses Code First with the given context and writes the resulting Entity Data Model to the given - writer in EDMX form. This method can only be used with context instances that use Code First - and create the model internally. The method cannot be used for contexts created using Database - First or Model First, for contexts created using a pre-existing , or - for contexts created using a pre-existing . - - The context. - The writer. - - - - Writes the Entity Data Model represented by the given to the - given writer in EDMX form. - - An object representing the EDM. - The writer. - - - - A factory for creating derived instances. Implement this - interface to enable design-time services for context types that do not have a - public default constructor. - At design-time, derived instances can be created in order to enable specific - design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation - for derived types that do not have a public, default constructor, implement - this interface. Design-time services will auto-discover implementations of this interface that are in the - same assembly as the derived type. - - The type of the context. - - - - Creates a new instance of a derived type. - - An instance of TContext - - - - This convention causes DbModelBuilder to include metadata about the model - when it builds the model. When creates a model by convention it will - add this convention to the list of those used by the DbModelBuilder. This will then result in - model metadata being written to the database if the DbContext is used to create the database. - This can then be used as a quick check to see if the model has changed since the last time it was - used against the database. - This convention can be removed from the conventions by overriding - the OnModelCreating method on a derived DbContext class. - - - - - This convention uses the name of the derived - class as the container for the conceptual model built by - Code First. - - - - - Applies the convention to the given model. - - The container to apply the convention to. - The model. - - - - This convention uses the namespace of the derived - class as the namespace of the conceptual model built by - Code First. - - - - - Instances of this class are used internally to create constant expressions for - that are inserted into the expression tree to replace references to - and . - - The type of the element. - - - - The public property expected in the LINQ expression tree. - - The query. - - - - Instances of this class are used to create DbConnection objects for - SQL Server Compact Edition based on a given database name or connection string. - - - It is necessary to provide the provider invariant name of the SQL Server Compact - Edition to use when creating an instance of this class. This is because different - versions of SQL Server Compact Editions use different invariant names. - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server Compact Edition by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString - properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - - - - Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. - The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server Compact Edition based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The path to prepend to the database name that will form the file name used by - SQL Server Compact Edition when it creates or reads the database file. - The default value is "|DataDirectory|", which means the file will be placed - in the designated data directory. - - - - - The connection string to use for options to the database other than the 'Data Source'. - The Data Source will be prepended to this string based on the database name when - CreateConnection is called. - The default is the empty string, which means no other options will be used. - - - - - The provider invariant name that specifies the version of SQL Server Compact Edition - that should be used. - - - - - Instances of this class are used to create DbConnection objects for - SQL Server based on a given database name or connection string. By default, the connection is - made to '.\SQLEXPRESS'. This can be changed by changing the base connection - string when constructing a factory instance. - - - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with a default BaseConnectionString property of - 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. - - - - - Creates a new connection factory with the given BaseConnectionString property. - - The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog'. - The 'Initial Catalog' will be prepended to this string based on the database name when - CreateConnection is called. - The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. - - - - - This attribute can be applied to either an entire derived class or to - individual or properties on that class. When applied - any discovered or properties will still be included - in the model but will not be automatically initialized. - - - - - Thrown when a context is generated from the templates in Database First or Model - First mode and is then used in Code First mode. - - - Code generated using the T4 templates provided for Database First and Model First use may not work - correctly if used in Code First mode. To use these classes with Code First please add any additional - configuration using attributes or the DbModelBuilder API and then remove the code that throws this - exception. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Allows configuration to be performed for an complex type in a model. - A ComplexTypeConfiguration can be obtained via the ComplexType method on - or a custom type derived from ComplexTypeConfiguration - can be registered via the Configurations property on . - - The complex type to be configured. - - - - Allows configuration to be performed for a type in a model. - - The type to be configured. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Initializes a new instance of ComplexTypeConfiguration - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same ComplexTypeConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows derived configuration classes for entities and complex types to be registered with a - . - - - Derived configuration classes are created by deriving from - or and using a type to be included in the model as the generic - parameter. - Configuration can be performed without creating derived configuration classes via the Entity and ComplexType - methods on . - - - - - Discovers all types that inherit from or - in the given assembly and adds an instance - of each discovered type to this registrar. - - - Note that only types that are abstract or generic type definitions are skipped. Every - type that is discovered and added must provide a parameterless constructor. - - The assembly containing model configurations to add. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The entity type being configured. - The entity type configuration to be added. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The complex type being configured. - The complex type configuration to be added - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows the conventions used by a instance to be customized. - The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. - - - - - Discover all conventions in the given assembly and add them to the . - - - This method add all conventions ordered by type name. The order in which conventions are added - can have an impact on how they behave because it governs the order in which they are run. - All conventions found must have a parameterless public constructor. - - The assembly containing conventions to be added. - - - - Enables one or more conventions for the . - - The conventions to be enabled. - - - - Enables a convention for the . - - The type of the convention to be enabled. - - - - Enables a convention for the . This convention - will run after the one specified. - - The type of the convention after which the enabled one will run. - The convention to enable. - - - - Enables a configuration convention for the . This convention - will run before the one specified. - - The type of the convention before which the enabled one will run. - The convention to enable. - - - - Disables one or more conventions for the . - - The conventions to be disabled. - - - - Disables a convention for the . - The default conventions that are available for removal can be found in the - System.Data.Entity.ModelConfiguration.Conventions namespace. - - The type of the convention to be disabled. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. - This configuration functionality is available via the Code First Fluent API, see . - - The entity type to be mapped. - - - Initializes a new instance of the class. - - - - Configures the properties that will be included in this mapping fragment. - If this method is not called then all properties that have not yet been - included in a mapping fragment will be configured. - - An anonymous type including the properties to be mapped. - A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Re-maps all properties inherited from base types. - When configuring a derived type to be mapped to a separate table this will cause all properties to - be included in the table rather than just the non-inherited properties. This is known as - Table per Concrete Type (TPC) mapping. - - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name to be mapped to. - - Name of the table. - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name and schema to be mapped to. - - Name of the table. - Schema of the table. - The same configuration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the discriminator column used to differentiate between types in an inheritance hierarchy. - - The name of the discriminator column. - A configuration object to further configure the discriminator column and values. - - - - Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. - - The type of the property being used to discriminate between types. - A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object to further configure the discriminator condition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . - - - - - Configures a primitive column from an entity type. - - - - Configures the primitive column to be optional. - The same instance so that multiple calls can be chained. - - - Configures the primitive column to be required. - The same instance so that multiple calls can be chained. - - - Configures the data type of the primitive column used to store the property. - The same instance so that multiple calls can be chained. - The name of the database provider specific data type. - - - Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. - The same instance so that multiple calls can be chained. - The order that this column should appear in the database table. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Configures the column to allow the maximum length supported by the database provider. - The same instance so that multiple calls can be chained. - - - Configures the column to have the specified maximum length. - The same instance so that multiple calls can be chained. - The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. - - - Configures the column to be fixed length. - The same instance so that multiple calls can be chained. - - - Configures the column to be variable length. - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the condition to require a value in the property. - Rows that do not have a value assigned to column that this property is stored in are - assumed to be of the base type of this entity type. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a database column used to store a string values. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the column to allow the maximum length supported by the database provider. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - - The maximum length for the property. Setting 'null' will result in a default length being used for the column. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be variable length. - Columns are variable length by default. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be optional. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be required. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column. - - Name of the database provider specific data type. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column. - - The order that this column should appear in the database table. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to support Unicode string content. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the column supports Unicode string content. - - Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a discriminator column used to differentiate between types in an inheritance hierarchy. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a many relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be many:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an optional relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be optional:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A lambda expression representing the navigation property on the other end of the relationship. - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an required relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be required:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Base class for performing configuration of a relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures a relationship that can support cascade on delete functionality. - - - - - Configures cascade delete to be on for the relationship. - - - - - Configures whether or not cascade delete is on for the relationship. - - Value indicating if cascade delete is on or not. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a relationship that can support foreign key properties that are exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - The dependent entity type. - - - - Configures a relationship that can only support foreign key properties that are not exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the relationship to use foreign key property(s) that are not exposed in the object model. - The column(s) and table can be customized by specifying a configuration action. - If an empty configuration action is specified then column name(s) will be generated by convention. - If foreign key properties are exposed in the object model then use the HasForeignKey method. - Not all relationships support exposing foreign key properties in the object model. - - Action that configures the foreign key column(s) and table. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the relationship to use foreign key property(s) that are exposed in the object model. - If the foreign key property(s) are not exposed in the object model then use the Map method. - - The type of the key. - A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the column(s) for the foreign key. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for a database column that has been configured with . - The annotation value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The name of the column that was configured with the HasKey method. - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name and schema that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - Schema of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - - - - Configures the table and column mapping of a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the join table name for the relationship. - - Name of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the join table name and schema for the relationship. - - Name of the table. - Schema of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the join table. The annotation value can later be used when - processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the left foreign key. - The left foreign key points to the parent entity of the navigation property specified in the HasMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the right foreign key. - The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - Determines whether the specified object is equal to the current object. - true if the specified object is equal to the current object; otherwise, false. - The object to compare with the current object. - - - - - - - - - - - - - Configures a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - The type of the parent entity of the navigation property specified in the HasMany call. - The type of the parent entity of the navigation property specified in the WithMany call. - - - - Configures the foreign key column(s) and table used to store the relationship. - - Action that configures the foreign key column(s) and table. - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - The default conventions for procedure and parameter names will be used. - - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - - - Configuration to override the default conventions for procedure and parameter names. - - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a property with length facets for an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - Properties are variable length by default. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to allow the maximum length supported by the database provider. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to support Unicode string content. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Convention to process instances of found on properties in the model - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on foreign key properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on navigation properties in the model. - - - - - Convention to process instances of found on primitive properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to detect navigation properties to be inverses of each other when only one pair - of navigation properties exists between the related types. - - - - - - - - Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. - - - - - - - - Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. - - - - - Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties - - - - - Convention to set the table name to be a pluralized version of the entity type name. - - - - - - - - Convention to set precision to 18 and scale to 2 for decimal properties. - - - - - Initializes a new instance of with the default precision and scale. - - - - - Initializes a new instance of with the specified precision and scale. - - Precision - Scale - - - - - - - Convention to move primary key properties to appear first. - - - - - - - - Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. - - - - - - - - Base class for conventions that discover foreign key properties. - - - - - When overriden returns true if should be part of the foreign key. - - The association type being configured. - The dependent end. - The candidate property on the dependent end. - The principal end entity type. - A key property on the principal end that is a candidate target for the foreign key. - true if dependentProperty should be a part of the foreign key; otherwise, false. - - - - - - - Returns true if the convention supports pairs of entity types that have multiple associations defined between them. - - - - - Convention to process instances of found on navigation properties in the model. - - - - - - - - Convention to detect primary key properties. - Recognized naming patterns in order of precedence are: - 1. 'Id' - 2. [type name]Id - Primary key detection is case insensitive. - - - - - Base class for conventions that discover primary key properties. - - - - - - - - When overriden returns the subset of properties that will be part of the primary key. - - The entity type. - The primitive types of the entities - The properties that should be part of the primary key. - - - - - - - Convention to discover foreign key properties whose names are a combination - of the dependent navigation property name and the principal type primary key property name(s). - - - - - - - - - - - Convention to enable cascade delete for any required relationships. - - - - - - - - Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. - - - - - - - - Convention to set the entity set name to be a pluralized version of the entity type name. - - - - - - - - Convention to discover foreign key properties whose names match the principal type primary key property name(s). - - - - - - - - Convention to set a maximum length for properties whose type supports length facets. The default value is 128. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The maximum lenght of properties. - - - - - - - - - - - - - Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The default maximum length for properties. - - - - - - - - - - Convention to configure integer primary keys to be identity. - - - - - - - - Convention to discover foreign key properties whose names are a combination - of the principal type name and the principal type primary key property name(s). - - - - - - - - Allows configuration to be performed for an entity type in a model. - An EntityTypeConfiguration can be obtained via the Entity method on - or a custom type derived from EntityTypeConfiguration - can be registered via the Configurations property on . - - The entity type being configured. - - - - Initializes a new instance of EntityTypeConfiguration - - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how this entity type is mapped to the database schema. - By default, any configuration will also apply to any type derived from this entity type. - Derived types can be configured via the overload of Map that configures a derived type or - by using an EntityTypeConfiguration for the derived type. - The properties of an entity can be split between multiple tables using multiple Map calls. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how a derived entity type is mapped to the database schema. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - The derived entity type to be configured. - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures an optional relationship from this entity type. - Instances of the entity type will be able to be saved to the database without this relationship being specified. - The foreign key in the database will be nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a required relationship from this entity type. - Instances of the entity type will not be able to be saved to the database unless this relationship is specified. - The foreign key in the database will be non-nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a many relationship from this entity type. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Exception thrown by during model creation when an invalid model is generated. - - - - - Initializes a new instance of ModelValidationException - - - - - Initializes a new instance of ModelValidationException - - The exception message. - - - - Initializes a new instance of ModelValidationException - - The exception message. - The inner exception. - - - Initializes a new instance of class serialization info and streaming context. - The serialization info. - The streaming context. - - - - Exception thrown from when validating entities fails. - - - - - Initializes a new instance of DbEntityValidationException. - - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - The inner exception. - - - - Validation results. - - - - - Represents validation results for single entity. - - - - - Creates an instance of class. - - Entity entry the results applies to. Never null. - - List of instances. Never null. Can be empty meaning the entity is valid. - - - - - Gets an instance of the results applies to. - - - - - Gets validation errors. Never null. - - - - - Gets an indicator if the entity is valid. - - - - - Exception thrown from when an exception is thrown from the validation - code. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and - context. - - The serialization info. - The streaming context. - - - - Validation error. Can be either entity or property level validation error. - - - - - Creates an instance of . - - Name of the invalid property. Can be null. - Validation error message. Can be null. - - - - Gets name of the invalid property. - - - - - Gets validation error message. - - - - diff --git a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.Utility.dll b/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.Utility.dll deleted file mode 100644 index d30ce35b7..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.Utility.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.dll b/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.dll deleted file mode 100644 index 95892128d..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.PowerShell.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psd1 b/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psd1 deleted file mode 100644 index 3bf373c71..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psd1 and /dev/null differ diff --git a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psm1 b/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psm1 deleted file mode 100644 index 40650fb7d..000000000 --- a/packages/EntityFramework.6.1.2-beta1/tools/EntityFramework.psm1 +++ /dev/null @@ -1,1168 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. - -$InitialDatabase = '0' - -$knownExceptions = @( - 'System.Data.Entity.Migrations.Infrastructure.MigrationsException', - 'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', - 'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', - 'System.Data.Entity.Migrations.Infrastructure.MigrationsPendingException', - 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' -) - -<# -.SYNOPSIS - Adds or updates an Entity Framework provider entry in the project config - file. - -.DESCRIPTION - Adds an entry into the 'entityFramework' section of the project config - file for the specified provider invariant name and provider type. If an - entry for the given invariant name already exists, then that entry is - updated with the given type name, unless the given type name already - matches, in which case no action is taken. The 'entityFramework' - section is added if it does not exist. The config file is automatically - saved if and only if a change was made. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. - -.PARAMETER InvariantName - The provider invariant name that uniquely identifies this provider. For - example, the Microsoft SQL Server provider is registered with the invariant - name 'System.Data.SqlClient'. - -.PARAMETER TypeName - The assembly-qualified type name of the provider-specific type that - inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For - example, for the Microsoft SQL Server provider, this type is - 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'. -#> -function Add-EFProvider -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project, - [parameter(Position = 1, - Mandatory = $true)] - [string] $InvariantName, - [parameter(Position = 2, - Mandatory = $true)] - [string] $TypeName - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand @( $InvariantName, $TypeName ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Adds or updates an Entity Framework default connection factory in the - project config file. - -.DESCRIPTION - Adds an entry into the 'entityFramework' section of the project config - file for the connection factory that Entity Framework will use by default - when creating new connections by convention. Any existing entry will be - overridden if it does not match. The 'entityFramework' section is added if - it does not exist. The config file is automatically saved if and only if - a change was made. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. - -.PARAMETER TypeName - The assembly-qualified type name of the connection factory type that - implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory' - interface. For example, for the Microsoft SQL Server Express provider - connection factory, this type is - 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'. - -.PARAMETER ConstructorArguments - An optional array of strings that will be passed as arguments to the - connection factory type constructor. -#> -function Add-EFDefaultConnectionFactory -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project, - [parameter(Position = 1, - Mandatory = $true)] - [string] $TypeName, - [string[]] $ConstructorArguments - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddDefaultConnectionFactoryCommand @( $TypeName, $ConstructorArguments ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Initializes the Entity Framework section in the project config file - and sets defaults. - -.DESCRIPTION - Creates the 'entityFramework' section of the project config file and sets - the default connection factory to use SQL Express if it is running on the - machine, or LocalDb otherwise. Note that installing a different provider - may change the default connection factory. The config file is - automatically saved if and only if a change was made. - - In addition, any reference to 'System.Data.Entity.dll' in the project is - removed. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. -#> -function Initialize-EFConfiguration -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Enables Code First Migrations in a project. - -.DESCRIPTION - Enables Migrations by scaffolding a migrations configuration class in the project. If the - target database was created by an initializer, an initial migration will be created (unless - automatic migrations are enabled via the EnableAutomaticMigrations parameter). - -.PARAMETER ContextTypeName - Specifies the context to use. If omitted, migrations will attempt to locate a - single context type in the target project. - -.PARAMETER EnableAutomaticMigrations - Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. - If omitted, automatic migrations will be disabled. - -.PARAMETER MigrationsDirectory - Specifies the name of the directory that will contain migrations code files. - If omitted, the directory will be named "Migrations". - -.PARAMETER ProjectName - Specifies the project that the scaffolded migrations configuration class will - be added to. If omitted, the default project selected in package manager - console is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ContextProjectName - Specifies the project which contains the DbContext class to use. If omitted, - the context is assumed to be in the same project used for migrations. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER Force - Specifies that the migrations configuration be overwritten when running more - than once for a given project. - -.PARAMETER ContextAssemblyName - Specifies the name of the assembly which contains the DbContext class to use. Use this - parameter instead of ContextProjectName when the context is contained in a referenced - assembly rather than in a project of the solution. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Enable-Migrations - # Scaffold a migrations configuration in a project with only one context - -.EXAMPLE - Enable-Migrations -Auto - # Scaffold a migrations configuration with automatic migrations enabled for a project - # with only one context - -.EXAMPLE - Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName - # Scaffold a migrations configuration for a project with multiple contexts - # This scaffolds a migrations configuration for MyContext and will put the configuration - # and subsequent configurations in a new directory called "DirectoryName" - -#> -function Enable-Migrations -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $ContextTypeName, - [alias('Auto')] - [switch] $EnableAutomaticMigrations, - [string] $MigrationsDirectory, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ContextProjectName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [switch] $Force, - [string] $ContextAssemblyName, - [string] $AppDomainBaseDirectory - ) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ContextProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName $ContextAssemblyName $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName; 'MigrationsDirectory' = $MigrationsDirectory } - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Scaffolds a migration script for any pending model changes. - -.DESCRIPTION - Scaffolds a new migration script and adds it to the project. - -.PARAMETER Name - Specifies the name of the custom script. - -.PARAMETER Force - Specifies that the migration user code be overwritten when re-scaffolding an - existing migration. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER IgnoreChanges - Scaffolds an empty migration ignoring any pending changes detected in the current model. - This can be used to create an initial, empty migration to enable Migrations for an existing - database. N.B. Doing this assumes that the target database schema is compatible with the - current model. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Add-Migration First - # Scaffold a new migration named "First" - -.EXAMPLE - Add-Migration First -IgnoreChanges - # Scaffold an empty migration ignoring any pending changes detected in the current model. - # This can be used to create an initial, empty migration to enable Migrations for an existing - # database. N.B. Doing this assumes that the target database schema is compatible with the - # current model. - -#> -function Add-Migration -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [parameter(Position = 0, - Mandatory = $true)] - [string] $Name, - [switch] $Force, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [switch] $IgnoreChanges, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Applies any pending migrations to the database. - -.DESCRIPTION - Updates the database to the current model by applying pending migrations. - -.PARAMETER SourceMigration - Only valid with -Script. Specifies the name of a particular migration to use - as the update's starting point. If omitted, the last applied migration in - the database will be used. - -.PARAMETER TargetMigration - Specifies the name of a particular migration to update the database to. If - omitted, the current model will be used. - -.PARAMETER Script - Generate a SQL script rather than executing the pending changes directly. - -.PARAMETER Force - Specifies that data loss is acceptable during automatic migration of the - database. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Update-Database - # Update the database to the latest migration - -.EXAMPLE - Update-Database -TargetMigration Second - # Update database to a migration named "Second" - # This will apply migrations if the target hasn't been applied or roll back migrations - # if it has - -.EXAMPLE - Update-Database -Script - # Generate a script to update the database from it's current state to the latest migration - -.EXAMPLE - Update-Database -Script -SourceMigration Second -TargetMigration First - # Generate a script to migrate the database from a specified start migration - # named "Second" to a specified target migration named "First" - -.EXAMPLE - Update-Database -Script -SourceMigration $InitialDatabase - # Generate a script that can upgrade a database currently at any version to the latest version. - # The generated script includes logic to check the __MigrationsHistory table and only apply changes - # that haven't been previously applied. - -.EXAMPLE - Update-Database -TargetMigration $InitialDatabase - # Runs the Down method to roll-back any migrations that have been applied to the database - - -#> -function Update-Database -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $SourceMigration, - [string] $TargetMigration, - [switch] $Script, - [switch] $Force, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Displays the migrations that have been applied to the target database. - -.DESCRIPTION - Displays the migrations that have been applied to the target database. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. -#> -function Get-Migrations -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ContextProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName, $ContextAssemblyName, $AppDomainBaseDirectory) -{ - $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName - Build-Project $startUpProject - - $project = Get-MigrationsProject $ProjectName - Build-Project $project - - $contextProject = $project - if ($ContextProjectName) - { - $contextProject = Get-SingleProject $ContextProjectName - Build-Project $contextProject - } - - $installPath = Get-EntityFrameworkInstallPath $project - $toolsPath = Join-Path $installPath tools - - $info = New-AppDomainSetup $project $installPath - - $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) - $domain.SetData('project', $project) - $domain.SetData('contextProject', $contextProject) - $domain.SetData('startUpProject', $startUpProject) - $domain.SetData('configurationTypeName', $ConfigurationTypeName) - $domain.SetData('connectionStringName', $ConnectionStringName) - $domain.SetData('connectionString', $ConnectionString) - $domain.SetData('connectionProviderName', $ConnectionProviderName) - $domain.SetData('contextAssemblyName', $ContextAssemblyName) - $domain.SetData('appDomainBaseDirectory', $AppDomainBaseDirectory) - - $dispatcher = New-DomainDispatcher $toolsPath - $domain.SetData('efDispatcher', $dispatcher) - - return @{ - Domain = $domain; - ToolsPath = $toolsPath - } -} - -function New-EFConfigRunner($Project) -{ - $installPath = Get-EntityFrameworkInstallPath $Project - $toolsPath = Join-Path $installPath tools - $info = New-AppDomainSetup $Project $installPath - - $domain = [AppDomain]::CreateDomain('EFConfig', $null, $info) - $domain.SetData('project', $Project) - - $dispatcher = New-DomainDispatcher $toolsPath - $domain.SetData('efDispatcher', $dispatcher) - - return @{ - Domain = $domain; - ToolsPath = $toolsPath - } -} - -function New-AppDomainSetup($Project, $InstallPath) -{ - $info = New-Object System.AppDomainSetup -Property @{ - ShadowCopyFiles = 'true'; - ApplicationBase = $InstallPath; - PrivateBinPath = 'tools'; - ConfigurationFile = ([AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile) - } - - $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($Project.Properties.Item('TargetFrameworkMoniker').Value)).Version - - if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) - { - $info.PrivateBinPath += ';lib\net40' - } - else - { - $info.PrivateBinPath += ';lib\net45' - } - - return $info -} - -function New-DomainDispatcher($ToolsPath) -{ - $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsPath EntityFramework.PowerShell.Utility.dll)) - $dispatcher = $utilityAssembly.CreateInstance( - 'System.Data.Entity.Migrations.Utilities.DomainDispatcher', - $false, - [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, - $null, - $PSCmdlet, - $null, - $null) - - return $dispatcher -} - -function Remove-Runner($runner) -{ - [AppDomain]::Unload($runner.Domain) -} - -function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) -{ - $domain = $runner.Domain - - if ($anonymousArguments) - { - $anonymousArguments.GetEnumerator() | %{ - $domain.SetData($_.Name, $_.Value) - } - } - - $domain.CreateInstanceFrom( - (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), - $command, - $false, - 0, - $null, - $parameters, - $null, - $null) | Out-Null -} - -function Get-RunnerError($runner) -{ - $domain = $runner.Domain - - if (!$domain.GetData('wasError')) - { - return $null - } - - return @{ - Message = $domain.GetData('error.Message'); - TypeName = $domain.GetData('error.TypeName'); - StackTrace = $domain.GetData('error.StackTrace') - } -} - -function Get-MigrationsProject($name, $hideMessage) -{ - if ($name) - { - return Get-SingleProject $name - } - - $project = Get-Project - $projectName = $project.Name - - if (!$hideMessage) - { - Write-Verbose "Using NuGet project '$projectName'." - } - - return $project -} - -function Get-MigrationsStartUpProject($name, $fallbackName) -{ - $startUpProject = $null - - if ($name) - { - $startUpProject = Get-SingleProject $name - } - else - { - $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects - - if ($startupProjectPaths) - { - if ($startupProjectPaths.Length -eq 1) - { - $startupProjectPath = $startupProjectPaths[0] - - if (!(Split-Path -IsAbsolute $startupProjectPath)) - { - $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value - $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve - } - - $startupProject = Get-SolutionProjects | ?{ - try - { - $fullName = $_.FullName - } - catch [NotImplementedException] - { - return $false - } - - if ($fullName -and $fullName.EndsWith('\')) - { - $fullName = $fullName.Substring(0, $fullName.Length - 1) - } - - return $fullName -eq $startupProjectPath - } - } - else - { - Write-Verbose 'More than one start-up project found.' - } - } - else - { - Write-Verbose 'No start-up project found.' - } - } - - if (!($startUpProject -and (Test-StartUpProject $startUpProject))) - { - $startUpProject = Get-MigrationsProject $fallbackName $true - $startUpProjectName = $startUpProject.Name - - Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." - } - else - { - $startUpProjectName = $startUpProject.Name - - Write-Verbose "Using StartUp project '$startUpProjectName'." - } - - return $startUpProject -} - -function Get-SolutionProjects() -{ - $projects = New-Object System.Collections.Stack - - $DTE.Solution.Projects | %{ - $projects.Push($_) - } - - while ($projects.Count -ne 0) - { - $project = $projects.Pop(); - - # NOTE: This line is similar to doing a "yield return" in C# - $project - - if ($project.ProjectItems) - { - $project.ProjectItems | ?{ $_.SubProject } | %{ - $projects.Push($_.SubProject) - } - } - } -} - -function Get-SingleProject($name) -{ - $project = Get-Project $name - - if ($project -is [array]) - { - throw "More than one project '$name' was found. Specify the full name of the one to use." - } - - return $project -} - -function Test-StartUpProject($project) -{ - if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') - { - $projectName = $project.Name - Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." - - return $false - } - - return $true -} - -function Build-Project($project) -{ - $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name - - $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) - - if ($DTE.Solution.SolutionBuild.LastBuildInfo) - { - $projectName = $project.Name - - throw "The project '$projectName' failed to build." - } -} - -function Get-EntityFrameworkInstallPath($project) -{ - $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } - - if (!$package) - { - $projectName = $project.Name - - throw "The EntityFramework package is not installed on project '$projectName'." - } - - return Get-PackageInstallPath $package -} - -function Get-PackageInstallPath($package) -{ - $componentModel = Get-VsComponentModel - $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) - - $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } - - return $vsPackage.InstallPath -} - -function Check-Project($project) -{ - if (!$project.FullName) - { - throw "The Project argument must refer to a Visual Studio project. Use the '`$project' variable provided by NuGet when running in install.ps1." - } - - return $project.CodeModel -} - -Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations', 'Add-EFProvider', 'Add-EFDefaultConnectionFactory', 'Initialize-EFConfiguration') -Variable InitialDatabase - -# SIG # Begin signature block -# MIIa2AYJKoZIhvcNAQcCoIIayTCCGsUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU3poUYDlTlwf2GyqxNJ7CRJO4 -# tk2gghV6MIIEuzCCA6OgAwIBAgITMwAAAFrtL/TkIJk/OgAAAAAAWjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTQwNTIzMTcxMzE1 -# WhcNMTUwODIzMTcxMzE1WjCBqzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMw -# QTQtNzE0NDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMhIt9q0L/7KcnVbHqJqY0T -# vJS16X0pZdp/9B+rDHlhZlRhlgfw1GBLMZsJr30obdCle4dfdqHSxinHljqjXxeM -# duC3lgcPx2JhtLaq9kYUKQMuJrAdSgjgfdNcMBKmm/a5Dj1TFmmdu2UnQsHoMjUO -# 9yn/3lsgTLsvaIQkD6uRxPPOKl5YRu2pRbRptlQmkRJi/W8O5M/53D/aKWkfSq7u -# wIJC64Jz6VFTEb/dqx1vsgpQeAuD7xsIsxtnb9MFfaEJn8J3iKCjWMFP/2fz3uzH -# 9TPcikUOlkYUKIccYLf1qlpATHC1acBGyNTo4sWQ3gtlNdRUgNLpnSBWr9TfzbkC -# AwEAAaOCAQkwggEFMB0GA1UdDgQWBBS+Z+AuAhuvCnINOh1/jJ1rImYR9zAfBgNV -# HSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNo -# dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3Nv -# ZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8 -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1l -# U3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUA -# A4IBAQAgU4KQrqZNTn4zScizrcTDfhXQEvIPJ4p/W78+VOpB6VQDKym63VSIu7n3 -# 2c5T7RAWPclGcLQA0fI0XaejIiyqIuFrob8PDYfQHgIb73i2iSDQLKsLdDguphD/ -# 2pGrLEA8JhWqrN7Cz0qTA81r4qSymRpdR0Tx3IIf5ki0pmmZwS7phyPqCNJp5mLf -# cfHrI78hZfmkV8STLdsWeBWqPqLkhfwXvsBPFduq8Ki6ESus+is1Fm5bc/4w0Pur -# k6DezULaNj+R9+A3jNkHrTsnu/9UIHfG/RHpGuZpsjMnqwWuWI+mqX9dEhFoDCyj -# MRYNviGrnPCuGnxA1daDFhXYKPvlMIIE7DCCA9SgAwIBAgITMwAAAMps1TISNcTh -# VQABAAAAyjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTAeFw0xNDA0MjIxNzM5MDBaFw0xNTA3MjIxNzM5MDBaMIGDMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQD -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCWcV3tBkb6hMudW7dGx7DhtBE5A62xFXNgnOuntm4aPD//ZeM08aal -# IV5WmWxY5JKhClzC09xSLwxlmiBhQFMxnGyPIX26+f4TUFJglTpbuVildGFBqZTg -# rSZOTKGXcEknXnxnyk8ecYRGvB1LtuIPxcYnyQfmegqlFwAZTHBFOC2BtFCqxWfR -# +nm8xcyhcpv0JTSY+FTfEjk4Ei+ka6Wafsdi0dzP7T00+LnfNTC67HkyqeGprFVN -# TH9MVsMTC3bxB/nMR6z7iNVSpR4o+j0tz8+EmIZxZRHPhckJRIbhb+ex/KxARKWp -# iyM/gkmd1ZZZUBNZGHP/QwytK9R/MEBnAgMBAAGjggFgMIIBXDATBgNVHSUEDDAK -# BggrBgEFBQcDAzAdBgNVHQ4EFgQUH17iXVCNVoa+SjzPBOinh7XLv4MwUQYDVR0R -# BEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUTKjMxNTk1K2I0MjE4ZjEz -# LTZmY2EtNDkwZi05YzQ3LTNmYzU1N2RmYzQ0MDAfBgNVHSMEGDAWgBTLEejK0rQW -# WAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAx -# MC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0yMDEwLmNy -# dDANBgkqhkiG9w0BAQUFAAOCAQEAd1zr15E9zb17g9mFqbBDnXN8F8kP7Tbbx7Us -# G177VAU6g3FAgQmit3EmXtZ9tmw7yapfXQMYKh0nfgfpxWUftc8Nt1THKDhaiOd7 -# wRm2VjK64szLk9uvbg9dRPXUsO8b1U7Brw7vIJvy4f4nXejF/2H2GdIoCiKd381w -# gp4YctgjzHosQ+7/6sDg5h2qnpczAFJvB7jTiGzepAY1p8JThmURdwmPNVm52Iao -# AP74MX0s9IwFncDB1XdybOlNWSaD8cKyiFeTNQB8UCu8Wfz+HCk4gtPeUpdFKRhO -# lludul8bo/EnUOoHlehtNA04V9w3KDWVOjic1O1qhV0OIhFeezCCBbwwggOkoAMC -# AQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkW -# A2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9z -# b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIyMTkzMloX -# DTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 -# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh -# dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0G -# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2U2w+G9Zv -# zMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08GisTUuNpb15 -# S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW8ReU5P01 -# lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjSjWL9y8lf -# RjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn0i1i8UU9 -# 56wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPTAgMBAAGj -# ggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQWWAHJNy4z -# Fha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEE -# AYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQCBAweCgBT -# AHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwUAYDVR0f -# BEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv -# ZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggr -# BgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNy -# b3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8mRq/rb0Cx -# MrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKoVpzjcLu4 -# tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4iktX8pVC -# nPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KPcpUqcW2b -# Gvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSCMm78pJUT -# 5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUWX92THUmO -# Lb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexwo1eSV32U -# jaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDeZPRvzkbU -# 0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2edgKNAlt -# HIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4NXJzwoq6G -# aIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4GPoOco3B -# oz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAAAAAAHDAN -# BgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPy -# LGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMwMzA5WjB3 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhN -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FMrXQwIBHr -# B9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9GccLPx754gd -# 6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yGT1VSDOQD -# LPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScpZqiX5NMG -# gUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEExd8yb3zuD -# k6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNVHRMBAf8E -# BTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNVHQ8EBAMC -# AYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 -# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is -# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB -# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy -# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD -# ZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAgEA -# EJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhXAstOIBNQ -# md16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk541q1YDB -# 5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVRDupiXD8W -# mIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUrXqO/67x9 -# C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1wlGysOUzU -# 9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4TsVxIxIm -# dgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svpu/RIzCzU -# 2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2YbRuoROm -# v6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhUBdRBLlCs -# lLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcBZW+JC33I -# acjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIBATCBkDB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAMps1TISNcThVQABAAAAyjAJ -# BgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB -# gjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBRRBMx7lzrmFHTD -# FOnHF79/U4hcUzCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkAdAB5ACAA -# RgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYAaQBzAHUA -# YQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEvZWYgMA0G -# CSqGSIb3DQEBAQUABIIBAEd5PEhtVawenxHsuUSbbOUgAVuGOnlVja6G8O5u3I5v -# AcWqJtbqOKUkXc9HxAUMgu5cC/o9n8A7LF7T5xptiXXcxURfe4fmeJK9joz/XPRw -# lYLOevzn9GRfWSbJ/AtSOnjj1PKCtQ8SZq88iKnJ8SrjKF4Nu3TQR/wVR/k3SU0H -# 80Rm4lSJdt9NLxkYljaU8volXVDv9SoxDlplkGdePSbDUx3PWD7y5UVeHb94Z+aQ -# 8p/FuvncjarLeefLhOwEFfJRhCKvofgw2zJqA3q+m42uiuO0ndqbyp8HVc6kcMUu -# jS//9eYvnLP7UY1ApfiBLRPgEgTGSx/soOI2qXDjHiShggIoMIICJAYJKoZIhvcN -# AQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBAhMzAAAA -# Wu0v9OQgmT86AAAAAABaMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNDA5MTYwODA1NTFaMCMGCSqGSIb3DQEJ -# BDEWBBQXVgYJisiba3bvHeGxFzocarwSvzANBgkqhkiG9w0BAQUFAASCAQBymf94 -# InhW4dHOPTMJ3cbsoD8mMGNAE/n1iWzbCI+ZQCwahtd6MA0ihp/Du8yz/dBaYT1d -# ubYBI/BD4sZwXlaKQSUyOJALPvA44nlSvt5svBpXvXCSLtDrJClJ0h50Zbh4v1tZ -# 3mwIk4zzczuoWfqNHMWngPwky2UNTmqKIKG3Ink00Hr1XhBV88OM3hucQIAtj6Ix -# GkC3P5+0D+4qmlzDEGbbI6dy9jTwTWB3PaS+SOicw/Iizy/SaFsoj71Y6MNFtlAf -# qCpga6Yn+EUcjHKIdWP41uu3D7cgI8vR8vQqDqefB9KJEHywnnGQy6APmr+2J5NW -# L8CBTXLm5O3xynM9 -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.2-beta1/tools/about_EntityFramework.help.txt b/packages/EntityFramework.6.1.2-beta1/tools/about_EntityFramework.help.txt deleted file mode 100644 index c2ad2f0f6..000000000 --- a/packages/EntityFramework.6.1.2-beta1/tools/about_EntityFramework.help.txt +++ /dev/null @@ -1,48 +0,0 @@ -TOPIC - about_EntityFramework - -SHORT DESCRIPTION - Provides information about Entity Framework commands. - -LONG DESCRIPTION - This topic describes the Entity Framework commands. Entity Framework is - Microsoft's recommended data access technology for new applications. - - The following Entity Framework cmdlets are used with Entity Framework - Migrations. - - Cmdlet Description - ----------------- --------------------------------------------------- - Enable-Migrations Enables Code First Migrations in a project. - - Add-Migration Scaffolds a migration script for any pending model - changes. - - Update-Database Applies any pending migrations to the database. - - Get-Migrations Displays the migrations that have been applied to - the target database. - - The following Entity Framework cmdlets are used by NuGet packages that - install Entity Framework providers. These commands are not usually used as - part of normal application development. - - Cmdlet Description - ------------------------------ --------------------------------------- - Add-EFProvider Adds or updates an Entity Framework - provider entry in the project config - file. - - Add-EFDefaultConnectionFactory Adds or updates an Entity Framework - default connection factory in the - project config file. - - Initialize-EFConfiguration Initializes the Entity Framework - section in the project config file and - sets defaults. - -SEE ALSO - Enable-Migrations - Add-Migration - Update-Database - Get-Migrations diff --git a/packages/EntityFramework.6.1.2-beta1/tools/init.ps1 b/packages/EntityFramework.6.1.2-beta1/tools/init.ps1 deleted file mode 100644 index fba9bde5f..000000000 --- a/packages/EntityFramework.6.1.2-beta1/tools/init.ps1 +++ /dev/null @@ -1,155 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -if (Get-Module | ?{ $_.Name -eq 'EntityFramework' }) -{ - Remove-Module EntityFramework -} - -Import-Module (Join-Path $toolsPath EntityFramework.psd1) - -# SIG # Begin signature block -# MIIa2AYJKoZIhvcNAQcCoIIayTCCGsUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXj4E03IfImYfKMB4CA3DfY0 -# KZmgghV6MIIEuzCCA6OgAwIBAgITMwAAAFrtL/TkIJk/OgAAAAAAWjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTQwNTIzMTcxMzE1 -# WhcNMTUwODIzMTcxMzE1WjCBqzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMw -# QTQtNzE0NDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMhIt9q0L/7KcnVbHqJqY0T -# vJS16X0pZdp/9B+rDHlhZlRhlgfw1GBLMZsJr30obdCle4dfdqHSxinHljqjXxeM -# duC3lgcPx2JhtLaq9kYUKQMuJrAdSgjgfdNcMBKmm/a5Dj1TFmmdu2UnQsHoMjUO -# 9yn/3lsgTLsvaIQkD6uRxPPOKl5YRu2pRbRptlQmkRJi/W8O5M/53D/aKWkfSq7u -# wIJC64Jz6VFTEb/dqx1vsgpQeAuD7xsIsxtnb9MFfaEJn8J3iKCjWMFP/2fz3uzH -# 9TPcikUOlkYUKIccYLf1qlpATHC1acBGyNTo4sWQ3gtlNdRUgNLpnSBWr9TfzbkC -# AwEAAaOCAQkwggEFMB0GA1UdDgQWBBS+Z+AuAhuvCnINOh1/jJ1rImYR9zAfBgNV -# HSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNo -# dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3Nv -# ZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8 -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1l -# U3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUA -# A4IBAQAgU4KQrqZNTn4zScizrcTDfhXQEvIPJ4p/W78+VOpB6VQDKym63VSIu7n3 -# 2c5T7RAWPclGcLQA0fI0XaejIiyqIuFrob8PDYfQHgIb73i2iSDQLKsLdDguphD/ -# 2pGrLEA8JhWqrN7Cz0qTA81r4qSymRpdR0Tx3IIf5ki0pmmZwS7phyPqCNJp5mLf -# cfHrI78hZfmkV8STLdsWeBWqPqLkhfwXvsBPFduq8Ki6ESus+is1Fm5bc/4w0Pur -# k6DezULaNj+R9+A3jNkHrTsnu/9UIHfG/RHpGuZpsjMnqwWuWI+mqX9dEhFoDCyj -# MRYNviGrnPCuGnxA1daDFhXYKPvlMIIE7DCCA9SgAwIBAgITMwAAAMps1TISNcTh -# VQABAAAAyjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTAeFw0xNDA0MjIxNzM5MDBaFw0xNTA3MjIxNzM5MDBaMIGDMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQD -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCWcV3tBkb6hMudW7dGx7DhtBE5A62xFXNgnOuntm4aPD//ZeM08aal -# IV5WmWxY5JKhClzC09xSLwxlmiBhQFMxnGyPIX26+f4TUFJglTpbuVildGFBqZTg -# rSZOTKGXcEknXnxnyk8ecYRGvB1LtuIPxcYnyQfmegqlFwAZTHBFOC2BtFCqxWfR -# +nm8xcyhcpv0JTSY+FTfEjk4Ei+ka6Wafsdi0dzP7T00+LnfNTC67HkyqeGprFVN -# TH9MVsMTC3bxB/nMR6z7iNVSpR4o+j0tz8+EmIZxZRHPhckJRIbhb+ex/KxARKWp -# iyM/gkmd1ZZZUBNZGHP/QwytK9R/MEBnAgMBAAGjggFgMIIBXDATBgNVHSUEDDAK -# BggrBgEFBQcDAzAdBgNVHQ4EFgQUH17iXVCNVoa+SjzPBOinh7XLv4MwUQYDVR0R -# BEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUTKjMxNTk1K2I0MjE4ZjEz -# LTZmY2EtNDkwZi05YzQ3LTNmYzU1N2RmYzQ0MDAfBgNVHSMEGDAWgBTLEejK0rQW -# WAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAx -# MC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0yMDEwLmNy -# dDANBgkqhkiG9w0BAQUFAAOCAQEAd1zr15E9zb17g9mFqbBDnXN8F8kP7Tbbx7Us -# G177VAU6g3FAgQmit3EmXtZ9tmw7yapfXQMYKh0nfgfpxWUftc8Nt1THKDhaiOd7 -# wRm2VjK64szLk9uvbg9dRPXUsO8b1U7Brw7vIJvy4f4nXejF/2H2GdIoCiKd381w -# gp4YctgjzHosQ+7/6sDg5h2qnpczAFJvB7jTiGzepAY1p8JThmURdwmPNVm52Iao -# AP74MX0s9IwFncDB1XdybOlNWSaD8cKyiFeTNQB8UCu8Wfz+HCk4gtPeUpdFKRhO -# lludul8bo/EnUOoHlehtNA04V9w3KDWVOjic1O1qhV0OIhFeezCCBbwwggOkoAMC -# AQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkW -# A2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9z -# b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIyMTkzMloX -# DTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 -# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh -# dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0G -# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2U2w+G9Zv -# zMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08GisTUuNpb15 -# S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW8ReU5P01 -# lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjSjWL9y8lf -# RjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn0i1i8UU9 -# 56wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPTAgMBAAGj -# ggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQWWAHJNy4z -# Fha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEE -# AYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQCBAweCgBT -# AHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwUAYDVR0f -# BEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv -# ZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggr -# BgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNy -# b3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8mRq/rb0Cx -# MrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKoVpzjcLu4 -# tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4iktX8pVC -# nPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KPcpUqcW2b -# Gvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSCMm78pJUT -# 5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUWX92THUmO -# Lb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexwo1eSV32U -# jaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDeZPRvzkbU -# 0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2edgKNAlt -# HIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4NXJzwoq6G -# aIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4GPoOco3B -# oz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAAAAAAHDAN -# BgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPy -# LGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMwMzA5WjB3 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhN -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FMrXQwIBHr -# B9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9GccLPx754gd -# 6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yGT1VSDOQD -# LPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScpZqiX5NMG -# gUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEExd8yb3zuD -# k6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNVHRMBAf8E -# BTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNVHQ8EBAMC -# AYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 -# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is -# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB -# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy -# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD -# ZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAgEA -# EJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhXAstOIBNQ -# md16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk541q1YDB -# 5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVRDupiXD8W -# mIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUrXqO/67x9 -# C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1wlGysOUzU -# 9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4TsVxIxIm -# dgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svpu/RIzCzU -# 2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2YbRuoROm -# v6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhUBdRBLlCs -# lLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcBZW+JC33I -# acjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIBATCBkDB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAMps1TISNcThVQABAAAAyjAJ -# BgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB -# gjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBTq02RGy+pjEYnt -# EMXja7SF8TbmOjCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkAdAB5ACAA -# RgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYAaQBzAHUA -# YQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEvZWYgMA0G -# CSqGSIb3DQEBAQUABIIBAIKfGCBMF6PHdQtoSUtTl/Zy8RR8Sk7RfZ94JzKKskPQ -# qvJ6mqSBtyyJ/IBM31IHld7FoWeBbGRDQqiKP201iE6u7z+SDk9Xm3hj9Irnabpv -# Go7bPIMVgXakEX+/qqtU51OpJ6QqaZ9oRcKf+arBiDAn6mo9LKiIOHLMHOXuON7j -# jFyur4gIwvWc3ixh+B2V+Xitw5yrFLKk93Rwv2ioW7yEyvqcNn+Wz600YwlzJl6F -# bOcTHJs9IxDLuXefchSQxpPW9NhaqI5b3Sf7GLzDxqQJBJj5DsoMFv5JrnpmerII -# A0Cj7Nra7FhmvN+rlmE7nIEP3/vQ4vhYA3P26DBsrK+hggIoMIICJAYJKoZIhvcN -# AQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBAhMzAAAA -# Wu0v9OQgmT86AAAAAABaMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNDA5MTYwODA1NTFaMCMGCSqGSIb3DQEJ -# BDEWBBSsbR3zUdRj1j6qNMrgT4id1mTV9jANBgkqhkiG9w0BAQUFAASCAQBmH917 -# GkvgKl7KboYuxBQ0X15DHOVxdnEr5ZsFRxIdl2QA3yegj+gPIwLtFSxIRAjc1kfb -# MgsqUTZBpSPgcQgUCOd/wqGCnwM+hotUMiSSsx2YjRqO8UZIbVBJYVVmcan0i/IM -# 9wgkxLhoqz9K+0DKgPQ0jVta3bL5si+gErcpUX4JBeIVrS8T+aRW0KdS3splCq8d -# xQRcUgrbIufQFqqsTt0JPxEcdhsdUK9OULyZNOtZtnLQ7B59a1SlWCeBsF9eNIcJ -# +Q11IVUvOrO5f2Q1FB7RAkFXk5k6G5C17KRPTt/b1S7C41qjOjaq3l/4yhE7J6G9 -# cVDyAq2rMXlZ78Br -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.2-beta1/tools/install.ps1 b/packages/EntityFramework.6.1.2-beta1/tools/install.ps1 deleted file mode 100644 index bd5563544..000000000 --- a/packages/EntityFramework.6.1.2-beta1/tools/install.ps1 +++ /dev/null @@ -1,154 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -Initialize-EFConfiguration $project -Add-EFProvider $project 'System.Data.SqlClient' 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' - -Write-Host -Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands." - -# SIG # Begin signature block -# MIIa2AYJKoZIhvcNAQcCoIIayTCCGsUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUt8mwpdjiFmu2B4KBh+vEeQ+V -# VnSgghV6MIIEuzCCA6OgAwIBAgITMwAAAFrtL/TkIJk/OgAAAAAAWjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTQwNTIzMTcxMzE1 -# WhcNMTUwODIzMTcxMzE1WjCBqzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMw -# QTQtNzE0NDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMhIt9q0L/7KcnVbHqJqY0T -# vJS16X0pZdp/9B+rDHlhZlRhlgfw1GBLMZsJr30obdCle4dfdqHSxinHljqjXxeM -# duC3lgcPx2JhtLaq9kYUKQMuJrAdSgjgfdNcMBKmm/a5Dj1TFmmdu2UnQsHoMjUO -# 9yn/3lsgTLsvaIQkD6uRxPPOKl5YRu2pRbRptlQmkRJi/W8O5M/53D/aKWkfSq7u -# wIJC64Jz6VFTEb/dqx1vsgpQeAuD7xsIsxtnb9MFfaEJn8J3iKCjWMFP/2fz3uzH -# 9TPcikUOlkYUKIccYLf1qlpATHC1acBGyNTo4sWQ3gtlNdRUgNLpnSBWr9TfzbkC -# AwEAAaOCAQkwggEFMB0GA1UdDgQWBBS+Z+AuAhuvCnINOh1/jJ1rImYR9zAfBgNV -# HSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNo -# dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3Nv -# ZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8 -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1l -# U3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUA -# A4IBAQAgU4KQrqZNTn4zScizrcTDfhXQEvIPJ4p/W78+VOpB6VQDKym63VSIu7n3 -# 2c5T7RAWPclGcLQA0fI0XaejIiyqIuFrob8PDYfQHgIb73i2iSDQLKsLdDguphD/ -# 2pGrLEA8JhWqrN7Cz0qTA81r4qSymRpdR0Tx3IIf5ki0pmmZwS7phyPqCNJp5mLf -# cfHrI78hZfmkV8STLdsWeBWqPqLkhfwXvsBPFduq8Ki6ESus+is1Fm5bc/4w0Pur -# k6DezULaNj+R9+A3jNkHrTsnu/9UIHfG/RHpGuZpsjMnqwWuWI+mqX9dEhFoDCyj -# MRYNviGrnPCuGnxA1daDFhXYKPvlMIIE7DCCA9SgAwIBAgITMwAAAMps1TISNcTh -# VQABAAAAyjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTAeFw0xNDA0MjIxNzM5MDBaFw0xNTA3MjIxNzM5MDBaMIGDMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQD -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCWcV3tBkb6hMudW7dGx7DhtBE5A62xFXNgnOuntm4aPD//ZeM08aal -# IV5WmWxY5JKhClzC09xSLwxlmiBhQFMxnGyPIX26+f4TUFJglTpbuVildGFBqZTg -# rSZOTKGXcEknXnxnyk8ecYRGvB1LtuIPxcYnyQfmegqlFwAZTHBFOC2BtFCqxWfR -# +nm8xcyhcpv0JTSY+FTfEjk4Ei+ka6Wafsdi0dzP7T00+LnfNTC67HkyqeGprFVN -# TH9MVsMTC3bxB/nMR6z7iNVSpR4o+j0tz8+EmIZxZRHPhckJRIbhb+ex/KxARKWp -# iyM/gkmd1ZZZUBNZGHP/QwytK9R/MEBnAgMBAAGjggFgMIIBXDATBgNVHSUEDDAK -# BggrBgEFBQcDAzAdBgNVHQ4EFgQUH17iXVCNVoa+SjzPBOinh7XLv4MwUQYDVR0R -# BEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUTKjMxNTk1K2I0MjE4ZjEz -# LTZmY2EtNDkwZi05YzQ3LTNmYzU1N2RmYzQ0MDAfBgNVHSMEGDAWgBTLEejK0rQW -# WAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAx -# MC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0yMDEwLmNy -# dDANBgkqhkiG9w0BAQUFAAOCAQEAd1zr15E9zb17g9mFqbBDnXN8F8kP7Tbbx7Us -# G177VAU6g3FAgQmit3EmXtZ9tmw7yapfXQMYKh0nfgfpxWUftc8Nt1THKDhaiOd7 -# wRm2VjK64szLk9uvbg9dRPXUsO8b1U7Brw7vIJvy4f4nXejF/2H2GdIoCiKd381w -# gp4YctgjzHosQ+7/6sDg5h2qnpczAFJvB7jTiGzepAY1p8JThmURdwmPNVm52Iao -# AP74MX0s9IwFncDB1XdybOlNWSaD8cKyiFeTNQB8UCu8Wfz+HCk4gtPeUpdFKRhO -# lludul8bo/EnUOoHlehtNA04V9w3KDWVOjic1O1qhV0OIhFeezCCBbwwggOkoAMC -# AQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkW -# A2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9z -# b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIyMTkzMloX -# DTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 -# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh -# dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0G -# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2U2w+G9Zv -# zMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08GisTUuNpb15 -# S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW8ReU5P01 -# lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjSjWL9y8lf -# RjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn0i1i8UU9 -# 56wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPTAgMBAAGj -# ggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQWWAHJNy4z -# Fha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEE -# AYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQCBAweCgBT -# AHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwUAYDVR0f -# BEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv -# ZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggr -# BgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNy -# b3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8mRq/rb0Cx -# MrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKoVpzjcLu4 -# tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4iktX8pVC -# nPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KPcpUqcW2b -# Gvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSCMm78pJUT -# 5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUWX92THUmO -# Lb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexwo1eSV32U -# jaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDeZPRvzkbU -# 0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2edgKNAlt -# HIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4NXJzwoq6G -# aIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4GPoOco3B -# oz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAAAAAAHDAN -# BgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPy -# LGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMwMzA5WjB3 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhN -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FMrXQwIBHr -# B9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9GccLPx754gd -# 6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yGT1VSDOQD -# LPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScpZqiX5NMG -# gUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEExd8yb3zuD -# k6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNVHRMBAf8E -# BTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNVHQ8EBAMC -# AYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 -# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is -# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB -# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy -# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD -# ZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAgEA -# EJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhXAstOIBNQ -# md16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk541q1YDB -# 5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVRDupiXD8W -# mIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUrXqO/67x9 -# C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1wlGysOUzU -# 9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4TsVxIxIm -# dgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svpu/RIzCzU -# 2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2YbRuoROm -# v6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhUBdRBLlCs -# lLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcBZW+JC33I -# acjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIBATCBkDB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAMps1TISNcThVQABAAAAyjAJ -# BgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB -# gjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBSYs3+CWsAb+LOo -# ocEiqHmU0Q3ALzCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkAdAB5ACAA -# RgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYAaQBzAHUA -# YQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEvZWYgMA0G -# CSqGSIb3DQEBAQUABIIBABcudkywXJonmr71mm9ZwK0ytOYVxq8fp6p/wKt2+FqQ -# g9yqLYOmXJjA4BaAUdwgsTovA816MDY51+GhjJ1IBkfKHM4FNA1UTenvXyGmLYXI -# TIEv2w2RMj2d/R9pkrjT5DOKwYgeStApEEII8BCmAkSJsEpZwbtI2Jx9Sf4xdEZ2 -# BWdbsZmPI6VgP5JuZI930k8AvAj59uCOh+dtApGtAogRpeojS0QCvqzqJJ/WJsPX -# W7bVyDZfFqTQgSEelwQIAYZciWuiZk3HqF2byBrtYfClQlsA7/pSk7kSxClnVUOX -# IDbYd3LBzlEJwQuRTek8WPXaqMyMHIzVMMDjrKqxFuShggIoMIICJAYJKoZIhvcN -# AQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBAhMzAAAA -# Wu0v9OQgmT86AAAAAABaMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNDA5MTYwODA1NTFaMCMGCSqGSIb3DQEJ -# BDEWBBQDHuls6h2izwYoBqEv4GhtuQDVKTANBgkqhkiG9w0BAQUFAASCAQAwob7Z -# JyxrI5l+3leBepykN6HE5je1RGuX2ju4kjZSdHFiIsKqw8p7pwqe0BtqlxQjqfVl -# B/i5hFjmjR2aEwAqodluGemrOrm1n+CcrTuslzwHrhUvkA96PxzPyu7AQ1JaUAnQ -# 2C/j9I2p9jjqdnEQQ2aQTbJQlr6w/Pv+HNeMwlAN3cH2rE4TqQfuzQ63ZRpOJskj -# Zh1udjUd5i9oKQTlizyO9u1ZBVr3E5YraKudtHOH15/sm3CRcqYS6qTu7WvFGJ8s -# kF2ssrq2TaKHKzk27WKIErNFOQs/Cx3YKxDgHZDTYxD4h0f+/iPjsZgmQRSoQ1oX -# kSD6WUjwQvWePlwT -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.2-beta1/tools/migrate.exe b/packages/EntityFramework.6.1.2-beta1/tools/migrate.exe deleted file mode 100644 index 4d7965e13..000000000 Binary files a/packages/EntityFramework.6.1.2-beta1/tools/migrate.exe and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/content/App.config.transform b/packages/EntityFramework.6.1.3/content/App.config.transform deleted file mode 100644 index 4fa1b95a5..000000000 --- a/packages/EntityFramework.6.1.3/content/App.config.transform +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/EntityFramework.6.1.3/content/Web.config.transform b/packages/EntityFramework.6.1.3/content/Web.config.transform deleted file mode 100644 index 4fa1b95a5..000000000 --- a/packages/EntityFramework.6.1.3/content/Web.config.transform +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.dll b/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.dll deleted file mode 100644 index c9986a368..000000000 Binary files a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.xml b/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.xml deleted file mode 100644 index 6890360c3..000000000 --- a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.SqlServer.xml +++ /dev/null @@ -1,1914 +0,0 @@ - - - - EntityFramework.SqlServer - - - - - An that retries actions that throw exceptions caused by SQL Azure transient failures. - - - This execution strategy will retry the operation on and - if the contains any of the following error numbers: - 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for - number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the ASCII code value of the left-most character of a character expression. - The ASCII code of the first character in the input string. - A valid string. - - - Returns the character that corresponds to the specified integer ASCII value. - The character that corresponds to the specified ASCII value. - An ASCII code. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - - A of value that is the starting position of target if it is found in toSearch . - - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch at which searching begins. - - - Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. - The SOUNDEX difference between the two strings. - The first string. - The second string. - - - Returns the Unicode character with the specified integer code, as defined by the Unicode standard. - The character that corresponds to the input character code. - A character code. - - - Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. - The starting character position where the string pattern was found. - A string pattern to search for. - The string to search. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with brackets added. - The expression that quote characters will be added to. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with the specified quote characters added. - The expression that quote characters will be added to. - The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. - - - Repeats a string value a specified number of times. - The target string, repeated the number of times specified by count . - A valid string. - The value that specifies how many time to repeat target . - - - Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. - The SOUNDEX code of the input string. - A valid string. - - - Returns a string of repeated spaces. - A string that consists of the specified number of spaces. - The number of spaces. If negative, a null string is returned. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. - A string consisting of the two strings. - The target string. - The character position in stringinput where the replacement string is to be inserted. - The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . - The substring to be inserted into stringInput . - - - Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. - The character code for the first character in the input string. - A valid string. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - The angle, in radians, defined by the input cosine value. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - An angle, measured in radians. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the constant value of pi. - The numeric value of pi. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns a new datetime value based on adding an interval to the specified date. - The new date. - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new time span value based on adding an interval to the specified time span. - The new time span. - The part of the date to increment. - The value used to increment a date by a specified amount. - The time span to increment. - - - Returns a new date value based on adding an interval to the specified date. - The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new datetime value based on adding an interval to the specified date. - - A of value that is the new date. - - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The value specifying the number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two Dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The the specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database timestamp. - - - Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database UTC timestamp. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input values. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the current date and time. - The current date and time. - - - Returns the name of the current user. - The name of the current user. - - - Returns the workstation name. - The name of the workstation. - - - Returns a database user name corresponding to a specified identification number. - The user name. - A user ID. - - - Returns a database user name corresponding to a specified identification number. - The user name. - - - Indicates whether the input value is a valid numeric type. - 1 if the input expression is a valid numeric data type; otherwise, 0. - A string expression. - - - Indicates whether the input value is a valid date or time. - 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. - The tested value. - - - - Provider to convert provider agnostic migration operations into SQL commands - that can be run against a Microsoft SQL Server database. - - - - - Converts a set of migration operations into Microsoft SQL Server specific SQL. - - The operations to be converted. - Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Generates the specified update database operation which represents applying a series of migrations. - The generated script is idempotent, meaning it contains conditional logic to check if individual migrations - have already been applied and only apply the pending ones. - - The update database operation. - - - - Generates SQL for a . - Allows derived providers to handle additional operation types. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Creates an empty connection for the current provider. - Allows derived providers to use connection other than . - - An empty connection for the current provider. - - - - Generates the specified create procedure operation. - - The create procedure operation. - - - - Generates the specified alter procedure operation. - - The alter procedure operation. - - - - Generates the specified drop procedure operation. - - The drop procedure operation. - - - - Generates SQL for a . This method differs from - in that it will - create the target database schema if it does not already exist. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Writes CREATE TABLE SQL to the target writer. - - The operation to produce SQL for. - The target writer. - - - - Override this method to generate SQL when the definition of a table or its attributes are changed. - The default implementation of this method does nothing. - - The operation describing changes to the table. - - - - Generates SQL to mark a table as a system table. - Generated SQL should be added using the Statement method. - - The table to mark as a system table. - The to write the generated SQL to. - - - - Generates SQL to create a database schema. - Generated SQL should be added using the Statement method. - - The name of the schema to create. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Call this method to generate SQL that will attempt to drop the default constraint created - when a column is created. This method is usually called by code that overrides the creation or - altering of columns. - - The table to which the constraint applies. - The column to which the constraint applies. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement or StatementBatch methods. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates the specified rename procedure operation. - - The rename procedure operation. - - - - Generates the specified move procedure operation. - - The move procedure operation. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for the given column model. This method is called by other methods that - process columns and can be overridden to change the SQL generated. - - The column for which SQL is being generated. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL to specify a constant byte[] default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant bool default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTime default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTimeOffset default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant Guid default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant string default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant TimeSpan default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geogrpahy default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geometry default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify the data type of a column. - This method just generates the actual type, not the SQL to create the column. - - The definition of the column. - SQL representing the data type. - - - - Generates a quoted name. The supplied name may or may not contain the schema. - - The name to be quoted. - The quoted name. - - - - Quotes an identifier for SQL Server. - - The identifier to be quoted. - The quoted identifier. - - - - Adds a new Statement to be executed against the database. - - The statement to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - The batch terminator for the database provider. - - - - Gets a new that can be used to build SQL. - This is just a helper method to create a writer. Writing to the writer will - not cause SQL to be registered for execution. You must pass the generated - SQL to the Statement method. - - An empty text writer to use for SQL generation. - - - - Adds a new Statement to be executed against the database. - - The writer containing the SQL to be executed. - The batch terminator for the database provider. - - - - Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. - - The SQL to split into one ore more statements to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - - - - Returns the column default value to use for store-generated GUID columns when - no default value is explicitly specified in the migration. - Returns newsequentialid() for on-premises SQL Server 2005 and later. - Returns newid() for SQL Azure. - - Either newsequentialid() or newid() as described above. - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geography instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. - The geography value. - - - Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geography instance is less than or equal to a specified value - The geography value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. - the maximum angle between the point returned by EnvelopeCenter(). - The geography value. - - - Returns a point that can be used as the center of a bounding circle for the geography instance. - A SqlGeography value that specifies the location of the center of a bounding circle. - The geography value. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geography value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Tests if the SqlGeography instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geography value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Returns the total number of rings in a Polygon instance. - The total number of rings. - The geography value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geography value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). - A SqlGeography object that represents the ring specified by n. - The geography value. - An int expression between 1 and the number of rings in a polygon instance. - - - Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geometry instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. - The geometry value. - - - Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geometry instance is less than or equal to a specified value - The geometry value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Tests if the SqlGeometry instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geometry value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geometry value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. - The converted geometry instance. - The geometry value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geometry value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - - The DbProviderServices implementation for the SqlClient provider for SQL Server. - - - Note that instance of this type also resolve additional provider services for Microsoft SQL Server - when this type is registered as an EF provider either using an entry in the application's config file - or through code-based registration in . - The services resolved are: - Requests for are resolved to a Singleton instance of - to create connections to SQL Express by default. - Requests for for the invariant name "System.Data.SqlClient" - for any server name are resolved to a delegate that returns a - to provide a non-retrying policy for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to instances to provide default Migrations SQL - generation for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to a Singleton instance of to provide default spatial - services for SQL Server. - - - - - This is the well-known string using in configuration files and code-based configuration as - the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and - Entity Framework provider services. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object, given the connection and command tree - - provider manifest that was determined from metadata - command tree for the statement - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - can cause deadlocks. - So here overriding to provide a method that does not clone DesignTimeVisible. - - the object to clone - a clone of the - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - - Returns the provider manifest by using the specified version information. - - The token information associated with the provider manifest. - The provider manifest by using the specified version information. - - - - Gets a spatial data reader for SQL Server. - - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Gets a spatial data reader for SQL Server. - - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Create the database and the database objects. - If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. - Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. - However if we try to replicate the name under which it would be attached, the following scenario would fail: - The file does not exist, but registered with database. - The user calls: If (DatabaseExists) DeleteDatabase - CreateDatabase - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Delete the database for the given connection. - There are three cases: - 1. If Initial Catalog is specified (X) drop database X - 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F - if none throw - 3. If niether the catalog not the file name is specified - throw - Note that directly deleting the files does not work for a remote server. However, even for not attached - databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase - - Connection - Timeout for internal commands. - Item Collection. - - - - The Singleton instance of the SqlProviderServices type. - - - - - Set to the full name of the Microsoft.SqlServer.Types assembly to override the default selection - - - - - Set this flag to false to prevent values from being truncated to - the scale (number of decimal places) defined for the column. The default value is true, - indicating that decimal values will be truncated, in order to prevent breaking existing - applications that depend on this behavior. - - - With this flag set to true objects are created with their Scale - properties set. When this flag is set to false then the Scale properties are not set, meaning - that the truncation behavior of SqlParameter is avoided. - - - - - An implementation of to provide support for geospatial types when using - Entity Framework with Microsoft SQL Server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.dll b/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.dll deleted file mode 100644 index 1510d12b0..000000000 Binary files a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.xml b/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.xml deleted file mode 100644 index 1effa42c9..000000000 --- a/packages/EntityFramework.6.1.3/lib/net40/EntityFramework.xml +++ /dev/null @@ -1,45478 +0,0 @@ - - - - EntityFramework - - - - - Represents a result mapping for a function import. - - - - - Base class for items in the mapping space (DataSpace.CSSpace) - - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Gets the type mappings. - - - - - Specifies a mapping condition evaluated by checking whether the value - of the a property/column is null or not null. - - - - - Mapping metadata for Conditional property mapping on a type. - Condition Property Mapping specifies a Condition either on the C side property or S side property. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the condition property map elements in the - above example. - - - - - Mapping metadata for all types of property mappings. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all property map elements in the - above example. This includes the scalar property maps, complex property maps - and end property maps. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped column. - - - - - Creates an IsNullConditionMapping instance. - - An EdmProperty that specifies a property or column. - A boolean that indicates whether to perform a null or a not-null check. - - - - Gets a bool that specifies whether the condition is evaluated by performing a null check - or a not-null check. - - - - - Specifies a mapping condition evaluated by comparing the value of - a property or column with a given value. - - - - - Creates a ValueConditionMapping instance. - - An EdmProperty that specifies a property or column. - An object that specifies the value to compare with. - - - - Gets an object that specifies the value to check against. - - - - - Serializes an that conforms to the restrictions of a single - CSDL schema file to an XML writer. The model to be serialized must contain a single - . - - - - - Serialize the to the XmlWriter. - - - The EdmModel to serialize. - - The XmlWriter to serialize to. - The serialized model's namespace. - true if the model is valid; otherwise, false. - - - - Occurs when an error is encountered serializing the model. - - - - - Information about an error that occurred processing an Entity Framework model. - - - - - Gets an optional value indicating which property of the source item caused the event to be raised. - - - - - Gets an optional descriptive message the describes the error that is being raised. - - - - - Gets a value indicating the that caused the event to be raised. - - - - - Contains additional attributes and properties of the - - - Note that objects are short lived and exist only to - make initialization easier. Instance of this type are not - compared to each other and arrays returned by array properties are copied to internal - collections in the ctor. Therefore it is fine to suppress the - Code Analysis messages. - - - - Gets or sets the function schema. - The function schema. - - - Gets or sets the store function name. - The store function name. - - - Gets or sets the command text associated with the function. - The command text associated with the function. - - - Gets or sets the entity sets for the function. - The entity sets for the function. - - - Gets a value that indicates whether this is an aggregate function. - true if this is an aggregate function; otherwise, false. - - - Gets or sets whether this function is a built-in function. - true if this function is a built-in function; otherwise, false. - - - Gets or sets whether the function contains no arguments. - true if the function contains no arguments; otherwise, false. - - - Gets or sets whether this function can be composed. - true if this function can be composed; otherwise, false. - - - Gets or sets whether this function is from a provider manifest. - true if this function is from a provider manifest; otherwise, false. - - - Gets or sets whether this function is a cached store function. - true if this function is a cached store function; otherwise, false. - - - Gets or sets whether this function is a function import. - true if this function is a function import; otherwise, false. - - - Gets or sets the return parameters. - The return parameters. - - - Gets or sets the parameter type semantics. - The parameter type semantics. - - - Gets or sets the function parameters. - The function parameters. - - - - Serializes the storage (database) section of an to XML. - - - - - Serialize the to the - - The EdmModel to serialize - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Serialize the to the - - The EdmModel to serialize - Namespace name on the Schema element - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Occurs when an error is encountered serializing the model. - - - - Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. - - - Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. - The type of the result produced by the visitor. - - - When overridden in a derived class, handles any expression of an unrecognized type. - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern method for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - Typed visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - An instance of TResultType. - - - - Initializes a new instance of the - - class. - - - - Replaces an old expression with a new one for the expression visitor. - The old expression. - The new expression. - - - Represents an event when the variable is rebound for the expression visitor. - The location of the variable. - The reference of the variable where it is rebounded. - - - Represents an event when entering the scope for the expression visitor with specified scope variables. - The collection of scope variables. - - - Exits the scope for the expression visitor. - - - Implements the visitor pattern for the expression. - The implemented visitor pattern. - The expression. - - - Implements the visitor pattern for the expression list. - The implemented visitor pattern. - The expression list. - - - Implements the visitor pattern for expression binding. - The implemented visitor pattern. - The expression binding. - - - Implements the visitor pattern for the expression binding list. - The implemented visitor pattern. - The expression binding list. - - - Implements the visitor pattern for the group expression binding. - The implemented visitor pattern. - The binding. - - - Implements the visitor pattern for the sort clause. - The implemented visitor pattern. - The sort clause. - - - Implements the visitor pattern for the sort order. - The implemented visitor pattern. - The sort order. - - - Implements the visitor pattern for the aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the function aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the group aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the Lambda function. - The implemented visitor pattern. - The lambda function. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the basic functionality required by expression types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the different kinds of constants. - The implemented visitor. - The constant expression. - - - Implements the visitor pattern for a reference to a typed null literal. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a variable that is currently in scope. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for an invocation of a function. - The implemented visitor. - The function expression. - - - Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. - The implemented visitor. - The expression. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the comparison operation applied to two arguments. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the null determination applied to a single argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the arithmetic operation applied to numeric arguments. - The implemented visitor. - The arithmetic expression. - - - Implements the visitor pattern for the logical AND expression. - The implemented visitor. - The logical AND expression. - - - Implements the visitor pattern for the logical OR of two Boolean arguments. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the DbInExpression. - The implemented visitor. - The DbInExpression that is being visited. - - - Implements the visitor pattern for the logical NOT of a single Boolean argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the removed duplicate elements from the specified set argument. - The implemented visitor. - The distinct expression. - - - Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. - The implemented visitor. - The element expression. - - - Implements the visitor pattern for an empty set determination applied to a single set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set union operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set intersection operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set subtraction operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type comparison of a single argument against the specified type. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type conversion of a single argument to the specified type. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for the When, Then, and Else clauses. - The implemented visitor. - The case expression. - - - Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the navigation of a relationship. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. - The implemented visitor. - The DEREF expression. - - - Implements the visitor pattern for the retrieval of the key value from the underlying reference value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. - The implemented visitor. - The entity reference expression. - - - Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a predicate applied to filter an input set. - The implemented visitor. - The filter expression. - - - Implements the visitor pattern for the projection of a given input set over the specified expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the unconditional join operation between the given collection arguments. - The implemented visitor. - The join expression. - - - Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. - The implemented visitor. - The APPLY expression. - - - Implements the visitor pattern for a group by operation. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the skip expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a sort key that can be used as part of the sort order. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. - The implemented visitor. - The expression. - - - - When this attribute is placed on a property it indicates that the database column to which the - property is mapped has an index. - - - This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Creates a instance for an index that will be named by convention and - has no column order, clustering, or uniqueness specified. - - - - - Creates a instance for an index with the given name and - has no column order, clustering, or uniqueness specified. - - The index name. - - - - Creates a instance for an index with the given name and column order, - but with no clustering or uniqueness specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - The index name. - A number which will be used to determine column ordering for multi-column indexes. - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - The index name. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no - column order has been specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Set this property to true to define a clustered index. Set this property to false to define a - non-clustered index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Set this property to true to define a unique index. Set this property to false to define a - non-unique index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Returns a different ID for each object instance such that type descriptors won't - attempt to combine all IndexAttribute instances into a single instance. - - - - - A class derived from this class can be placed in the same assembly as a class derived from - to define Entity Framework configuration for an application. - Configuration is set by calling protected methods and setting protected properties of this - class in the constructor of your derived type. - The type to use can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Any class derived from must have a public parameterless constructor - and that constructor should call this constructor. - - - - - The Singleton instance of for this app domain. This can be - set at application start before any Entity Framework features have been used and afterwards - should be treated as read-only. - - The instance of . - - - - Attempts to discover and load the associated with the given - type. This method is intended to be used by tooling to ensure that - the correct configuration is loaded into the app domain. Tooling should use this method - before accessing the property. - - A type to use for configuration discovery. - - - - Attempts to discover and load the from the given assembly. - This method is intended to be used by tooling to ensure that the correct configuration is loaded into - the app domain. Tooling should use this method before accessing the - property. If the tooling knows the type being used, then the - method should be used since it gives a greater chance that - the correct configuration will be found. - - An to use for configuration discovery. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The exceptions to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - - A implementation is automatically registered as a default resolver - when it is added with a call to . This allows EF providers to act as - resolvers for other services that may need to be overridden by the provider. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to register - an Entity Framework provider. - - - Note that the provider is both registered as a service itself and also registered as a default resolver with - a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that - may need to be overridden by the provider. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register - an ADO.NET provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for - and . This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - A function that returns a new instance of an execution strategy. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A function that returns a new instance of an execution strategy. - A string that will be matched against the server name in the connection string. - - - - Call this method from the constructor of a class derived from to register a - . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - A string that will be matched against the server name in the connection string. - - - - Sets the that is used to create connections by convention if no other - connection string or connection is given to or can be discovered by . - Note that a default connection factory is set in the app.config or web.config file whenever the - EntityFramework NuGet package is installed. As for all config file settings, the default connection factory - set in the config file will take precedence over any setting made with this method. Therefore the setting - must be removed from the config file before calling this method will have any effect. - Call this method from the constructor of a class derived from to change - the default connection factory being used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The connection factory. - - - - Call this method from the constructor of a class derived from to - set the pluralization service. - - The pluralization service to use. - - - - Call this method from the constructor of a class derived from to - set the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - - Calling this method is equivalent to calling . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is typically used by providers to register an associated SQL generator for Code First Migrations. - It is different from setting the generator in the because it allows - EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project - and/or Migrations are not being explicitly used. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - A delegate that returns a new instance of the SQL generator each time it is called. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows provider manifest tokens to - be obtained from connections without necessarily opening the connection. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The manifest token resolver. - - - - Call this method from the constructor of a class derived from to set - a factory for implementations of which allows custom annotations - represented by instances to be serialized to and from the EDMX XML. - - - Note that an is not needed if the annotation uses a simple string value. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The name of custom annotation that will be handled by this serializer. - A delegate that will be used to create serializer instances. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows a - to be obtained from a in cases where the default implementation is not - sufficient. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The provider factory service. - - - - Call this method from the constructor of a class derived from to set - a as the model cache key factory which allows the key - used to cache the model behind a to be changed. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can - be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The key factory. - - - - Call this method from the constructor of a class derived from to set - a delegate which which be used for - creation of the default for a any - . This default factory will only be used if no factory is - set explicitly in the and if no factory has been registered - for the provider in use using the - - method. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - a delegate which allows for creation of a customized - for the given provider for any - that does not have an explicit factory set. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - the global instance of which will be used whenever a spatial provider is - required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider - is obtained from the a implementation which is in turn returned by resolving - a service for passing the provider invariant name as a key. However, this - cannot work for stand-alone instances of and since - it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances - of and the global spatial provider is always used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider and provider - manifest token. - - - Use - to register spatial services for use only when a specific manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The indicating the type of ADO.NET connection for which this spatial provider will be used. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider with any - manifest token. - - - Use - to register spatial services for use when any manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - a factory for the type of to use with . - - - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - instance onto before any commands will be logged. - For more low-level control over logging/interception see and - . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A delegate that will create formatter instances. - - - - Call this method from the constructor of a class derived from to - register an at application startup. Note that interceptors can also - be added and removed at any time using . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The interceptor to register. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to register - a database table existence checker for a given provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The table existence checker to use. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Occurs during EF initialization after the DbConfiguration has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that this event should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - - - - Gets the that is being used to resolve service - dependencies in the Entity Framework. - - - - - This attribute can be placed on a subclass of to indicate that the subclass of - representing the code-based configuration for the application is in a different - assembly than the context type. - - - Normally a subclass of should be placed in the same assembly as - the subclass of used by the application. It will then be discovered automatically. - However, if this is not possible or if the application contains multiple context types in different - assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. - An alternative to using this attribute is to specify the DbConfiguration type to use in the application's - config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. - - - - - Indicates that the given subclass of should be used for code-based configuration - for this application. - - - The type to use. - - - - - Indicates that the subclass of represented by the given assembly-qualified - name should be used for code-based configuration for this application. - - - The type to use. - - - - - Gets the subclass of that should be used for code-based configuration - for this application. - - - - Implements the basic functionality required by aggregates in a GroupBy clause. - - - - Gets the result type of this . - - - The result type of this . - - - - - Gets the list of expressions that define the arguments to this - - . - - - The list of expressions that define the arguments to this - - . - - - - Represents the logical AND of two Boolean arguments. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept two expression operands. - - - Represents the base type for all expressions. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - The type of the result produced by . - - - An instance of . - - The type of the result produced by visitor. - - - - Determines whether the specified is equal to the current DbExpression instance. - - - True if the specified is equal to the current DbExpression instance; otherwise, false. - - - The object to compare to the current . - - - - Serves as a hash function for the type. - A hash code for the current expression. - - - - Creates a that represents the specified binary value, which may be null - - - A that represents the specified binary value. - - The binary value on which the returned expression should be based. - - - - Enables implicit casting from a byte array. - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Boolean value. - - - A that represents the specified Boolean value. - - The Boolean value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) byte value. - - - A that represents the specified byte value. - - The byte value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTime value. - - The DateTime value on which the returned expression should be based. - - - - Enables implicit casting from . - - The expression to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTimeOffset value. - - The DateTimeOffset value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) decimal value. - - - A that represents the specified decimal value. - - The decimal value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) double value. - - - A that represents the specified double value. - - The double value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeography value. - - The DbGeography value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeometry value. - - The DbGeometry value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified Guid value. - - The Guid value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int16 value. - - - A that represents the specified Int16 value. - - The Int16 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int32 value. - - - A that represents the specified Int32 value. - - The Int32 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int64 value. - - - A that represents the specified Int64 value. - - The Int64 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Single value. - - - A that represents the specified Single value. - - The Single value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified string value. - - - A that represents the specified string value. - - The string value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - Gets the type metadata for the result type of the expression. - The type metadata for the result type of the expression. - - - Gets the kind of the expression, which indicates the operation of this expression. - The kind of the expression, which indicates the operation of this expression. - - - - Gets the that defines the left argument. - - - The that defines the left argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the left argument. - - - - - Gets the that defines the right argument. - - - The that defines the right argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the right argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - - Gets the that specifies the function that is invoked for each element in the input set. - - - The that specifies the function that is invoked for each element in the input set. - - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Represents an arithmetic operation applied to numeric arguments. - Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. - This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the list of elements that define the current arguments. - - - A fixed-size list of elements. - - - - - Represents the When, Then, and Else clauses of the - - . This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets the When clauses of this . - - - The When clauses of this . - - - - - Gets the Then clauses of this . - - - The Then clauses of this . - - - - - Gets the Else clause of this . - - - The Else clause of this . - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the result type of the - - . - - - - Represents the type conversion of a single argument to the specified type. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept a single expression argument. - - - - Gets the that defines the argument. - - - The that defines the argument. - - The expression is null. - - The expression is not associated with the command tree of a - - , or its result type is not equal or promotable to the required type for the argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes the different "kinds" (classes) of command trees. - - - - - A query to retrieve data - - - - - Update existing data - - - - - Insert new data - - - - - Deleted existing data - - - - - Call a function - - - - Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. - - DbComparisonExpression requires that its arguments have a common result type - that is equality comparable (for .Equals and .NotEquals), - order comparable (for .GreaterThan and .LessThan), - or both (for .GreaterThanOrEquals and .LessThanOrEquals). - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents different kinds of constants (literals). This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Gets the constant value. - The constant value. - - - Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets a list that provides the input sets to the join. - - - A list that provides the input sets to the join. - - - - Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Removes duplicate elements from the specified set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the set subtraction operation between the left and right operands. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes a binding for an expression. Conceptually similar to a foreach loop - in C#. The DbExpression property defines the collection being iterated over, - while the Var property provides a means to reference the current element - of the collection during the iteration. DbExpressionBinding is used to describe the set arguments - to relational expressions such as , - and . - - - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - The variable reference. - - - Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that specifies the predicate used to filter the input set. - - - The that specifies the predicate used to filter the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - Represents an invocation of a function. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the function to invoke. - The metadata for the function to invoke. - - - - Gets an list that provides the arguments to the function. - - - An list that provides the arguments to the function. - - - - Represents a collection of elements that compose a group. - - - Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set and provides access to the set element and group element variables. - - - The that specifies the input set and provides access to the set element and group element variables. - - - - - Gets a list that provides grouping keys. - - - A list that provides grouping keys. - - - - - Gets a list that provides the aggregates to apply. - - - A list that provides the aggregates to apply. - - - - Represents the set intersection operation between the left and right operands. This class cannot be inherited. - - DbIntersectExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents an empty set determination applied to a single set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents null determination applied to a single argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the type comparison of a single argument against the specified type. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the type metadata that the type metadata of the argument should be compared to. - The type metadata that the type metadata of the argument should be compared to. - - - Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that provides the left input. - - - The that provides the left input. - - - - - Gets the that provides the right input. - - - The that provides the right input. - - - - Gets the join condition to apply. - The join condition to apply. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - - Allows the application of a lambda function to arguments represented by - - objects. - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of . - - visitor is null - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - The type of the result produced by the expression visitor. - - An instance of a typed that produces a result value of type TResultType. - - The type of the result produced by visitor - visitor is null - - - - Gets the representing the Lambda function applied by this expression. - - - The representing the Lambda function applied by this expression. - - - - - Gets a list that provides the arguments to which the Lambda function should be applied. - - - The list. - - - - Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the string to compare against the given pattern. - An expression that specifies the string to compare against the given pattern. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that specifies the pattern against which the given string should be compared. - An expression that specifies the pattern against which the given string should be compared. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that provides an optional escape string to use for the comparison. - An expression that provides an optional escape string to use for the comparison. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Represents the restriction of the number of elements in the argument collection to the specified limit value. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the input collection. - An expression that specifies the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a collection type. - - - - Gets an expression that specifies the limit on the number of elements returned from the input collection. - An expression that specifies the limit on the number of elements returned from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or is not one of - - or - - , or its result type is not equal or promotable to a 64-bit integer type. - - - - - Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the - - value. - - true if the limit operation will include tied results; otherwise, false. The default is false. - - - Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets an list that provides the property/column values or set elements for the new instance. - - - An list that provides the property/column values or set elements for the new instance. - - - - Represents the logical NOT of a single Boolean argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a typed null literal. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata of the type of elements that should be retrieved from the set argument. - The metadata of the type of elements that should be retrieved from the set argument. - - - Represents the logical OR of two Boolean arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced parameter. - The name of the referenced parameter. - - - Represents the projection of a given input set over the specified expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that defines the projection. - - - The that defines the projection. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the current projection. - - - - Provides methods and properties for retrieving an instance property. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Creates a new key/value pair based on this property expression. - - A new key/value pair with the key and value derived from the - - . - - - - - Enables implicit casting to . - - The expression to be converted. - The converted value. - - - Gets the property metadata for the property to retrieve. - The property metadata for the property to retrieve. - - - - Gets a that defines the instance from which the property should be retrieved. - - - A that defines the instance from which the property should be retrieved. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the type that defines the property. - - - - Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - Gets the Boolean predicate that should be evaluated for each element in the input set. - The Boolean predicate that should be evaluated for each element in the input set. - The expression is null. - - The expression is not associated with the command tree for the - - ,or its result type is not a Boolean type. - - - - Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the entity set that contains the instance. - The metadata for the entity set that contains the instance. - - - Represents the navigation of a relationship. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the relationship over which navigation occurs. - The metadata for the relationship over which navigation occurs. - - - Gets the metadata for the relationship end to navigate from. - The metadata for the relationship end to navigate from. - - - Gets the metadata for the relationship end to navigate to. - The metadata for the relationship end to navigate to. - - - - Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. - - - An that specifies the instance of the source relationship end from which navigation should occur. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the - - property. - - - - - Skips a specified number of elements in the input set. - - can only be used after the input collection has been sorted as specified by the sort keys. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Gets an expression that specifies the number of elements to skip from the input collection. - An expression that specifies the number of elements to skip from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - ; the expression is not either a - - or a - - ; or the result type of the expression is not equal or promotable to a 64-bit integer type. - - - - - Specifies a sort key that can be used as part of the sort order in a - - . This class cannot be inherited. - - - - Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. - true if this sort key uses an ascending sort order; otherwise, false. - - - Gets a string value that specifies the collation for this sort key. - A string value that specifies the collation for this sort key. - - - - Gets the that provides the value for this sort key. - - - The that provides the value for this sort key. - - - - Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by - visitor - - - visitor - is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. - - - Gets a value indicating whether this aggregate is a distinct aggregate. - true if the aggregate is a distinct aggregate; otherwise, false. - - - Gets the method metadata that specifies the aggregate function to invoke. - The method metadata that specifies the aggregate function to invoke. - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - Defines the basic functionality that should be implemented by visitors that do not return a result value. - - - When overridden in a derived class, handles any expression of an unrecognized type. - The expression to be handled. - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - Visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - - - - Convenience method to visit the specified . - - The DbUnaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbBinaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbExpressionBinding to visit. - - - is null - - - - - Convenience method for post-processing after a DbExpressionBinding has been visited. - - The previously visited DbExpressionBinding. - - - - Convenience method to visit the specified . - - The DbGroupExpressionBinding to visit. - - - is null - - - - - Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. - - The DbGroupExpressionBinding of the DbGroupByExpression - - - - Convenience method for post-processing after a DbGroupExpressionBinding has been visited. - - The previously visited DbGroupExpressionBinding. - - - - Convenience method indicating that the body of a Lambda is now about to be visited. - - The DbLambda that is about to be visited - - - is null - - - - - Convenience method for post-processing after a DbLambda has been visited. - - The previously visited DbLambda. - - - - Convenience method to visit the specified , if non-null. - - The expression to visit. - - - is null - - - - - Convenience method to visit each in the given list, if the list is non-null. - - The list of expressions to visit. - - - is null - - - - - Convenience method to visit each in the list, if the list is non-null. - - The list of aggregates to visit. - - - is null - - - - - Convenience method to visit the specified . - - The aggregate to visit. - - - is null - - - - - Called when an of an otherwise unrecognized type is encountered. - - The expression - - - is null - - - Always thrown if this method is called, since it indicates that - - is of an unsupported type - - - - - Visitor pattern method for . - - The DbConstantExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbVariableReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbParameterReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFunctionExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLambdaExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbPropertyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbComparisonExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLikeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLimitExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbArithmeticExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbAndExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOrExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbInExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNotExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbDistinctExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbElementExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsEmptyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbUnionAllExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIntersectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExceptExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOfTypeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbTreatExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCastExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsOfExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCaseExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNewInstanceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRelationshipNavigationExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DeRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefKeyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbEntityRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbScanExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFilterExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbProjectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCrossJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbApplyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSkipExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSortExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbQuantifierExpression that is being visited. - - - is null - - - - Implements the visitor pattern for the set clause. - The set clause. - - - Implements the visitor pattern for the modification clause. - The modification clause. - - - Implements the visitor pattern for the collection of modification clauses. - The modification clauses. - - - Implements the visitor pattern for the command tree. - The command tree. - - - Implements the visitor pattern for the delete command tree. - The delete command tree. - - - Implements the visitor pattern for the function command tree. - The function command tree. - - - Implements the visitor pattern for the insert command tree. - The insert command tree. - - - Implements the visitor pattern for the query command tree. - The query command tree. - - - Implements the visitor pattern for the update command tree. - The update command tree. - - - An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. - - - - Returns a that represents this command. - - - A that represents this command. - - - - - Gets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is true. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets the name and corresponding type of each parameter that can be referenced within this - - . - - - The name and corresponding type of each parameter that can be referenced within this - - . - - - - - Gets the kind of this command tree. - - - - - Gets the metadata workspace used by this command tree. - - - - - Gets the data space in which metadata used by this command tree must reside. - - - - Represents a single row delete operation expressed as a command tree. This class cannot be inherited. - - - Represents a data manipulation language (DML) operation expressed as a command tree. - - - - Gets the that specifies the target table for the data manipulation language (DML) operation. - - - The that specifies the target table for the DML operation. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be deleted. - - - - Gets an that specifies the predicate used to determine which members of the target collection should be deleted. - - - The predicate can include only the following elements: - - Equality expression - Constant expression - IsNull expression - Property expression - Reference expression to the target - And expression - Or expression - Not expression - - - - An that specifies the predicate used to determine which members of the target collection should be deleted. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - - Contains values that each expression class uses to denote the operation it represents. The - - property of an - - can be retrieved to determine which operation that expression represents. - - - - - True for all. - - - - - Logical And. - - - - - True for any. - - - - - Conditional case statement. - - - - - Polymorphic type cast. - - - - - A constant value. - - - - - Cross apply - - - - - Cross join - - - - - Dereference. - - - - - Duplicate removal. - - - - - Division. - - - - - Set to singleton conversion. - - - - - Entity ref value retrieval. - - - - - Equality - - - - - Set subtraction - - - - - Restriction. - - - - - Full outer join - - - - - Invocation of a stand-alone function - - - - - Greater than. - - - - - Greater than or equal. - - - - - Grouping. - - - - - Inner join - - - - - Set intersection. - - - - - Empty set determination. - - - - - Null determination. - - - - - Type comparison (specified Type or Subtype). - - - - - Type comparison (specified Type only). - - - - - Left outer join - - - - - Less than. - - - - - Less than or equal. - - - - - String comparison. - - - - - Result count restriction (TOP n). - - - - - Subtraction. - - - - - Modulo. - - - - - Multiplication. - - - - - Instance, row, and set construction. - - - - - Logical Not. - - - - - Inequality. - - - - - Null. - - - - - Set members by type (or subtype). - - - - - Set members by (exact) type. - - - - - Logical Or. - - - - - Outer apply. - - - - - A reference to a parameter. - - - - - Addition. - - - - - Projection. - - - - - Retrieval of a static or instance property. - - - - - Reference. - - - - - Ref key value retrieval. - - - - - Navigation of a (composition or association) relationship. - - - - - Entity or relationship set scan. - - - - - Skip elements of an ordered collection. - - - - - Sorting. - - - - - Type conversion. - - - - - Negation. - - - - - Set union (with duplicates). - - - - - A reference to a variable. - - - - - Application of a lambda function - - - - - In. - - - - Represents the invocation of a database function. - - - - Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - The that represents the function that is being invoked. - The expected result type for the function’s first result set. - The function's parameters. - - , or is null - - - does not represent a valid data space or - is a composable function - - - - - Gets the that represents the function that is being invoked. - - - The that represents the function that is being invoked. - - - - Gets the expected result type for the function’s first result set. - The expected result type for the function’s first result set. - - - Gets or sets the command tree kind. - The command tree kind. - - - Represents a single row insert operation expressed as a command tree. This class cannot be inherited. - - Represents a single row insert operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar value indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - The list of insert set clauses that define the insert operation. . - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of insert set clauses that define the insert operation. - The list of insert set clauses that define the insert operation. - - - - Gets an that specifies a projection of results to be returned based on the modified rows. - - - An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. - - - - Gets the command tree kind. - The command tree kind. - - - - Represents a Lambda function that can be invoked to produce a - - . - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null - - - - contains more than one element with the same variable name. - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null. - - - - contains more than one element with the same variable name. - - - - - Creates a new with a single argument of the specified type, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. - - A that defines the EDM type of the argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A that defines the EDM type of the sixteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - Gets the body of the lambda expression. - - A that represents the body of the lambda function. - - - - Gets the parameters of the lambda expression. - The list of lambda function parameters represented as DbVariableReferenceExpression objects. - - - - Specifies a single clause in an insert or update modification operation, see - and - - - An abstract base class allows the possibility of patterns other than - Property = Value in future versions, e.g., - update SomeTable - set ComplexTypeColumn.SomeProperty() - where Id = 2 - - - - Represents a query operation expressed as a command tree. This class cannot be inherited. - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - A boolean that indicates whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - - - or - - is null - - - - does not represent a valid data space - - - - - Gets an that defines the logic of the query operation. - - - An that defines the logic of the query operation. - - The expression is null. - The expression is associated with a different command tree. - - - Gets the kind of this command tree. - The kind of this command tree. - - - Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. - - - - Gets an that specifies the property that should be updated. - - - An that specifies the property that should be updated. - - - - - Gets an that specifies the new value with which to update the property. - - - An that specifies the new value with which to update the property. - - - - Represents a single-row update operation expressed as a command tree. This class cannot be inherited. - - Represents a single-row update operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be updated. - The list of update set clauses that define the update operation. - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of update set clauses that define the update operation. - The list of update set clauses that define the update operation. - - - - Gets an that specifies a projection of results to be returned, based on the modified rows. - - - An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. - - - - - Gets an that specifies the predicate used to determine which members of the target collection should be updated. - - - An that specifies the predicate used to determine which members of the target collection should be updated. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - Represents a reference to a variable that is currently in scope. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced variable. - The name of the referenced variable. - - - - Defines the binding for the input set to a . - In addition to the properties of , DbGroupExpressionBinding - also provides access to the group element via the variable reference - and to the group aggregate via the property. - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the result type of the current value of the property. - - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - A reference to the element variable. - - - Gets the name assigned to the group element variable. - The name assigned to the group element variable. - - - Gets the type metadata of the group element variable. - The type metadata of the group element variable. - - - - Gets the that references the group element variable. - - A reference to the group element variable. - - - - Gets the that represents the collection of elements in the group. - - The elements in the group. - - - - Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. - - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - - Creates a new that uses a generated variable name to bind the given expression. - - A new expression binding with the specified expression and a generated variable name. - The expression to bind. - input is null. - input does not have a collection result. - - - - Creates a new that uses the specified variable name to bind the given expression - - A new expression binding with the specified expression and variable name. - The expression to bind. - The variable name that should be used for the binding. - input or varName is null. - input does not have a collection result. - - - Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. - A new group expression binding with the specified expression and a generated variable name and group variable name. - The expression to bind. - input is null. - input does not have a collection result type. - - - - Creates a new that uses the specified variable name and group variable names to bind the given expression. - - A new group expression binding with the specified expression, variable name and group variable name. - The expression to bind. - The variable name that should be used for the binding. - The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. - input, varName or groupVarName is null. - input does not have a collection result type. - - - - Creates a new . - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new that is applied in a distinct fashion. - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument is null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new over the specified argument - - The argument over which to perform the nest operation - A new group aggregate representing the elements of the group referenced by the given argument. - - - is null - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a new with an ascending sort order and default collation. - - A new sort clause with the given sort key and ascending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and default collation. - - A new sort clause with the given sort key and descending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with an ascending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and ascending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and descending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that unconditionally joins the sets specified by the list of input expression bindings. - - - A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. - - A list of expression bindings that specifies the input sets. - inputs is null or contains null element. - inputs contains fewer than 2 expression bindings. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbFilterExpression that produces the filtered set. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. - - A new DbGroupByExpression with the specified input set, grouping keys and aggregates. - - A that specifies the input set. - - A list of string-expression pairs that define the grouping columns. - A list of expressions that specify aggregates to apply. - input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. - Both keys and aggregates are empty, or an invalid or duplicate column name was specified. - - - - Creates a new that projects the specified expression over the given input set. - - A new DbProjectExpression that represents the projection operation. - An expression binding that specifies the input set. - An expression to project over the set. - input or projection is null. - - - - Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. - - A new DbSkipExpression that represents the skip operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - An expression the specifies how many elements of the ordered set to skip. - input, sortOrder or count is null, or sortOrder contains null. - - sortOrder is empty, or count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that sorts the given input set by the specified sort specifications. - - A new DbSortExpression that represents the sort operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - input or sortOrder is null, or sortOrder contains null. - sortOrder is empty. - - - - Creates a new , which represents a typed null value. - - An instance of DbNullExpression. - The type of the null value. - nullType is null. - - - - Creates a new with the given constant value. - - A new DbConstantExpression with the given value. - The constant value to represent. - value is null. - value is not an instance of a valid constant type. - - - - Creates a new of the specified primitive type with the given constant value. - - A new DbConstantExpression with the given value and a result type of constantType. - The type of the constant value. - The constant value to represent. - value or constantType is null. - value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. - - - - Creates a new that references a parameter with the specified name and type. - - A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced parameter. - The name of the referenced parameter. - - - - Creates a new that references a variable with the specified name and type. - - A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced variable. - The name of the referenced variable. - - - - Creates a new that references the specified entity or relationship set. - - A new DbScanExpression based on the specified entity or relationship set. - Metadata for the entity or relationship set to reference. - targetSet is null. - - - - Creates an that performs the logical And of the left and right arguments. - - A new DbAndExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left and right does not have a Boolean result type. - - - - Creates an that performs the logical Or of the left and right arguments. - - A new DbOrExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left or right does not have a Boolean result type. - - - - Creates a that matches the result of the specified - expression with the results of the constant expressions in the specified list. - - A DbExpression to be matched. - A list of DbConstantExpression to test for a match. - - A new DbInExpression with the specified arguments. - - - - or - - is null. - - - The result type of - - is different than the result type of an expression from - . - - - - - Creates a that performs the logical negation of the given argument. - - A new DbNotExpression with the specified argument. - A Boolean expression that specifies the argument. - argument is null. - argument does not have a Boolean result type. - - - - Creates a new that divides the left argument by the right argument. - - A new DbArithmeticExpression representing the division operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left or right. - - - - Creates a new that subtracts the right argument from the left argument. - - A new DbArithmeticExpression representing the subtraction operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that computes the remainder of the left argument divided by the right argument. - - A new DbArithmeticExpression representing the modulo operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that multiplies the left argument by the right argument. - - A new DbArithmeticExpression representing the multiplication operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that adds the left argument to the right argument. - - A new DbArithmeticExpression representing the addition operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that compares the left and right arguments for equality. - - A new DbComparisonExpression representing the equality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that compares the left and right arguments for inequality. - - A new DbComparisonExpression representing the inequality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than the right argument. - - A new DbComparisonExpression representing the greater-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than the right argument. - - A new DbComparisonExpression representing the less-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than or equal to the right argument. - - A new DbComparisonExpression representing the greater-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than or equal to the right argument. - - A new DbComparisonExpression representing the less-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common result type that is both equality- and order-comparable exists between left and right. - - - - Creates a new that determines whether the specified argument is null. - - A new DbIsNullExpression with the specified argument. - An expression that specifies the argument. - argument is null. - argument has a collection result type. - - - - Creates a new that compares the specified input string to the given pattern. - - A new DbLikeExpression with the specified input, pattern and a null escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - Argument or pattern is null. - Argument or pattern does not have a string result type. - - - - Creates a new that compares the specified input string to the given pattern using the optional escape. - - A new DbLikeExpression with the specified input, pattern and escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - An optional expression that specifies the escape string. - argument, pattern or escape is null. - argument, pattern or escape does not have a string result type. - - - - Creates a new that applies a cast operation to a polymorphic argument. - - A new DbCastExpression with the specified argument and target type. - The argument to which the cast should be applied. - Type metadata that specifies the type to cast to. - Argument or toType is null. - The specified cast is not valid. - - - - Creates a new . - - A new DbTreatExpression with the specified argument and type. - An expression that specifies the instance. - Type metadata for the treat-as type. - argument or treatType is null. - treatType is not in the same type hierarchy as the result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - A that specifies the input set. - - Type metadata for the type that elements of the input set must have to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - An that specifies the input set. - - Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that determines whether the given argument is of the specified type or a subtype. - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new that retrieves a specific Entity given a reference expression. - - A new DbDerefExpression that retrieves the specified Entity. - - An that provides the reference. This expression must have a reference Type. - - argument is null. - argument does not have a reference result type. - - - - Creates a new that retrieves the ref of the specifed entity in structural form. - - A new DbEntityRefExpression that retrieves a reference to the specified entity. - The expression that provides the entity. This expression must have an entity result type. - argument is null. - argument does not have an entity result type. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - entitySet or keyRow is null. - keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - The type of the Entity that the reference should refer to. - entitySet, keyRow or entityType is null. - entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that retrieves the key values of the specifed reference in structural form. - - A new DbRefKeyExpression that retrieves the key values of the specified reference. - The expression that provides the reference. This expression must have a reference Type with an Entity element type. - argument is null. - argument does not have a reference result type. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - An expression that specifies the instance from which navigation should occur. - Metadata for the property that represents the end of the relationship from which navigation should occur. - Metadata for the property that represents the end of the relationship to which navigation should occur. - fromEnd, toEnd or navigateFrom is null. - fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - Metadata for the relation type that represents the relationship. - The name of the property of the relation type that represents the end of the relationship from which navigation should occur. - The name of the property of the relation type that represents the end of the relationship to which navigation should occur. - An expression the specifies the instance from which naviagtion should occur. - type, fromEndName, toEndName or navigateFrom is null. - type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. - - - - Creates a new that removes duplicates from the given set argument. - - A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. - An expression that defines the set over which to perfom the distinct operation. - argument is null. - argument does not have a collection result type. - - - - Creates a new that converts a set into a singleton. - - A DbElementExpression that represents the conversion of the set argument to a singleton. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is an empty set. - - A new DbIsEmptyExpression with the specified argument. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that computes the subtraction of the right set argument from the left set argument. - - A new DbExceptExpression that represents the difference of the left argument from the right argument. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left and right. - - - - Creates a new that computes the intersection of the left and right set arguments. - - A new DbIntersectExpression that represents the intersection of the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left or right. - - - - Creates a new that computes the union of the left and right set arguments and does not remove duplicates. - - A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new . - - A new DbCaseExpression with the specified cases and default result. - A list of expressions that provide the conditional for of each case. - A list of expressions that provide the result of each case. - An expression that defines the result when no case is matched. - whenExpressions or thenExpressions is null or contains null, or elseExpression is null. - whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - A list of expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - Expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new Expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - A list of expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - Expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null.. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs an empty collection of the specified collection type. - - A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. - The type metadata for the collection to create - collectionType is null. - collectionType is not a collection type. - - - - Creates a new that produces a row with the specified named columns and the given values, specified as expressions. - - A new DbNewInstanceExpression that represents the construction of the row. - A list of string-DbExpression key-value pairs that defines the structure and values of the row. - columnValues is null or contains an element with a null column name or expression. - columnValues is empty, or contains a duplicate or invalid column name. - - - - Creates a new representing the retrieval of the specified property. - - A new DbPropertyExpression representing the property retrieval. - The instance from which to retrieve the property. May be null if the property is static. - Metadata for the property to retrieve. - propertyMetadata is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the specified navigation property. - - A new DbPropertyExpression representing the navigation property retrieval. - The instance from which to retrieve the navigation property. - Metadata for the navigation property to retrieve. - navigationProperty or instance is null. - - - - Creates a new representing the retrieval of the specified relationship end member. - - A new DbPropertyExpression representing the relationship end member retrieval. - The instance from which to retrieve the relationship end member. - Metadata for the relationship end member to retrieve. - relationshipEnd is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the instance property with the specified name from the given instance. - - A new DbPropertyExpression that represents the property retrieval. - The instance from which to retrieve the property. - The name of the property to retrieve. - propertyName is null or instance is null and the property is not static. - No property with the specified name is declared by the type of instance. - - - - Creates a new representing setting a property to a value. - - The property to be set. - The value to set the property to. - The newly created set clause. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression that specifies the input set. - A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by Predicate does not have a Boolean result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - source is null. - source does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - Source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - outer, inner, outerKey or innerKey is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The expressions produced by outerKey and innerKey are not comparable for equality. - - - - Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an - - of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - - A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The type of the selector . - outer, inner, outerKey, innerKey or selector is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The result of selector is null after conversion to DbExpression. - The expressions produced by outerKey and innerKey is not comparable for equality. - The result of Selector is not compatible with SelectMany. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that selects the specified expression over the given input set. - - A new DbProjectExpression that represents the select operation. - An expression that specifies the input set. - - A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a - - . Compatibility requirements for TProjection are described in remarks. - - The method result type of projection. - source or projection is null. - The result of projection is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the apply column from each row, producing the overall collection of apply results. - - - An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - source or apply is null. - The expression produced by apply is null. - source does not have a collection result type. - The expression produced by apply does not have a collection type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the specified selector over each row, producing the overall collection of results. - - - An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - - A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The method result type of selector. - source, apply or selector is null. - The expression produced by apply is null. - The result of selector is null on conversion to DbExpression. - source does not have a collection result type. - The expression produced by apply does not have a collection type. does not have a collection type. - - - - Creates a new that skips the specified number of elements from the given sorted input set. - - A new DbSkipExpression that represents the skip operation. - - A that specifies the sorted input set. - - An expression the specifies how many elements of the ordered set to skip. - argument or count is null. - - count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that computes the union of the left and right set arguments with duplicates removed. - - A new DbExpression that computes the union, without duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Gets a with the Boolean value true. - - - A with the Boolean value true. - - - - - Gets a with the Boolean value false. - - - A with the Boolean value false. - - - - - Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the average value. - An expression that specifies the collection from which the average value should be computed. - - - - Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the maximum value. - An expression that specifies the collection from which the maximum value should be retrieved - - - - Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the minimum value. - An expression that specifies the collection from which the minimum value should be retrieved. - - - - Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the sum. - An expression that specifies the collection from which the sum should be computed. - - - - Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. - - A new DbFunctionExpression that produces the concatenated string. - An expression that specifies the string that should appear first in the concatenated result string. - An expression that specifies the string that should appear second in the concatenated result string. - - - - Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. - An expression that specifies the string to search for any occurence of searchedForString. - An expression that specifies the string to search for in searchedString. - - - - Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. - An expression that specifies the string that is searched at the end for string suffix. - An expression that specifies the target string that is searched for at the end of stringArgument. - - - - Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the first index of stringToFind in searchString. - An expression that specifies the string to search for stringToFind. - An expression that specifies the string to locate within searchString should be checked. - - - - Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the leftmost substring. - An expression that specifies the length of the leftmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the length of stringArgument. - An expression that specifies the string for which the length should be computed. - - - - Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. - An expression that specifies the string in which to perform the replacement operation. - An expression that specifies the string that is replaced. - An expression that specifies the replacement string. - - - - Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that produces the reversed value of stringArgument. - An expression that specifies the string to reverse. - - - - Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the rightmost substring. - An expression that specifies the length of the rightmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. - An expression that specifies the string that is searched at the start for string prefix. - An expression that specifies the target string that is searched for at the start of stringArgument. - - - - Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. - - A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. - An expression that specifies the string from which to extract the substring. - An expression that specifies the starting index from which the substring should be taken. - An expression that specifies the length of the substring. - - - - Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to lower case. - An expression that specifies the string that should be converted to lower case. - - - - Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to upper case. - An expression that specifies the string that should be converted to upper case. - - - - Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. - An expression that specifies the string from which leading and trailing space should be removed. - - - - Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with trailing space removed. - An expression that specifies the string from which trailing space should be removed. - - - - Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading space removed. - An expression that specifies the string from which leading space should be removed. - - - - Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer year value from dateValue. - An expression that specifies the value from which the year should be retrieved. - - - - Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer month value from dateValue. - An expression that specifies the value from which the month should be retrieved. - - - - Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day value from dateValue. - An expression that specifies the value from which the day should be retrieved. - - - - Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day of year value from dateValue. - An expression that specifies the value from which the day within the year should be retrieved. - - - - Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer hour value from timeValue. - An expression that specifies the value from which the hour should be retrieved. - - - - Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer minute value from timeValue. - An expression that specifies the value from which the minute should be retrieved. - - - - Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer second value from timeValue. - An expression that specifies the value from which the second should be retrieved. - - - - Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer millisecond value from timeValue. - An expression that specifies the value from which the millisecond should be retrieved. - - - - Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. - An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. - - - - Creates a that invokes the canonical 'CurrentDateTime' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'CurrentDateTimeOffset' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CurrentUtcDateTime' function. - - A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that returns the value of dateValue with time set to zero. - An expression that specifies the value for which the time portion should be truncated. - - - - Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. - - A new DbFunctionExpression that returns a new DateTime based on the specified values. - An expression that provides the year value for the new DateTime instance. - An expression that provides the month value for the new DateTime instance. - An expression that provides the day value for the new DateTime instance. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. - - A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. - An expression that provides the year value for the new DateTimeOffset instance. - An expression that provides the month value for the new DateTimeOffset instance. - An expression that provides the day value for the new DateTimeOffset instance. - An expression that provides the hour value for the new DateTimeOffset instance. - An expression that provides the minute value for the new DateTimeOffset instance. - An expression that provides the second value for the new DateTimeOffset instance. - An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. - - A new DbFunctionExpression that returns a new Time based on the specified values. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of years to add to dateValue. - - - - Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of months to add to dateValue. - - - - Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of days to add to dateValue. - - - - Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of hours to add to timeValue. - - - - Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of minutes to add to timeValue. - - - - Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of seconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of milliseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of microseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of nanoseconds to add to timeValue. - - - - Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value. - An expression that specifies the numeric value to round. - - - - Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to round. - An expression that specifies the number of digits of precision to use when rounding. - - - - Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the largest integer value not greater than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the smallest integer value not less than than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the absolute value of value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to truncate. - An expression that specifies the number of digits of precision to use when truncating. - - - - Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. - - A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. - An expression that specifies the numeric value to raise to the given power. - An expression that specifies the power to which baseArgument should be raised. - - - - Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. - An expression that specifies the first operand. - - - - Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'NewGuid' function. - - A new DbFunctionExpression that returns a new GUID value. - - - - Provides a constructor-like means of calling - - . - - - - - Initializes a new instance of the class with the specified first column value and optional successive column values. - - A key-value pair that provides the first column in the new row instance. (required) - A key-value pairs that provide any subsequent columns in the new row instance. (optional) - - - - Creates a new that constructs a new row based on the columns contained in this Row instance. - - A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. - - - - Converts the given Row instance into an instance of - - The Row instance. - A DbExpression based on the Row instance - - - is null. - - - - - - Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geometry value based on the specified value. - An expression that provides the well known text representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known text representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known text representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known text representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known text representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known text representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known text representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known text representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified binary value. - An expression that provides the well known binary representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known binary representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known binary representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known binary representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known binary representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geography value based on the specified value. - An expression that provides the well known text representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known text representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. - - The canonical 'GeographyPointFromText' function. - An expression that provides the well-known text representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. - - - - Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known text representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known text representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known text representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known text representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known text representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified binary value. - An expression that provides the well known binary representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known binary representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography point value based on the specified values. - An expression that provides the well known binary representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. - - - - Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known binary representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known binary representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known binary representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known binary representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known binary representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer SRID value from spatialValue. - An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. - - - - Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. - An expression that specifies the value from which the Geometry Type name should be retrieved. - - - - Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the Dimension value from spatialValue. - An expression that specifies the value from which the Dimension value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. - An expression that specifies the value from which the Envelope value should be retrieved. - - - - Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. - - A new DbFunctionExpression that returns the well known binary representation of spatialValue. - An expression that specifies the spatial value from which the well known binary representation should be produced. - - - - Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. - An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. - - - - Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the well known text representation of spatialValue. - An expression that specifies the spatial value from which the well known text representation should be produced. - - - - Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. - An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. - - - - Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. - The geometry value. - - - - Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the boundary for geometryValue. - An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. - - - - Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. - An expression that specifies the geometry value which should be tested for spatial validity. - - - - Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for equality. - - - - Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. - - - - Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. - - - - Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. - - - - Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. - An expression that specifies the spatial value. - An expression that specifies the buffer distance. - - - - Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. - - - - Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the convex hull for geometryValue. - An expression that specifies the geometry value from which the convex hull value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the union with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. - - - - Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value. - An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. - - - - Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. - - - - Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Latitude value should be retrieved. - - - - Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Longitude value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the length should be retrieved. - - - - Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the start point should be retrieved. - - - - Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the end point should be retrieved. - - - - Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. - - - - Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. - An expression that specifies the geometry curve value from which the IsRing value should be retrieved. - - - - Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value from which the number of points should be retrieved. - - - - Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value. - An expression that specifies the position of the point to be retrieved from within the line string. - - - - Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. - An expression that specifies the spatial surface value for which the area should be calculated. - - - - Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the centroid should be retrieved. - - - - Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the point should be retrieved. - - - - Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. - The geometry value. - An expression that specifies the position of the interior ring to be retrieved from within the polygon. - - - - Ensures that all metadata in a given expression tree is from the specified metadata workspace, - potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. - - - - Initializes a new instance of the class. - The target workspace. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - - Represents a boolean expression that tests whether a specified item matches any element in a list. - - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of DbExpressionVisitor. - - - is null - - - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - - An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. - - The type of the result produced by - - - - is null - - - An instance of . - - - - - Gets a DbExpression that specifies the item to be matched. - - - - - Gets the list of DbExpression to test for a match. - - - - - Represents the retrieval of the key value of the specified Reference as a row. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents the set union (without duplicate removal) operation between the left and right operands. - - - DbUnionAllExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents a 'scan' of all elements of a given entity set. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the referenced entity or relationship set. - The metadata for the referenced entity or relationship set. - - - - Extension methods for . - - - - - Gets the conceptual model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the conceptual model. - - - - Gets the store model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the store model. - - - - An interface to get the underlying store and conceptual model for a . - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Inherit from this class to create a service that allows for code generation of custom annotations as part of - scaffolding Migrations. The derived class should be set onto the . - - - Note that an is not needed if the annotation uses a simple string value, - or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. - - - - - Override this method to return additional namespaces that should be included in the code generated for the - scaffolded migration. The default implementation returns an empty enumeration. - - The names of the annotations that are being included in the generated code. - A list of additional namespaces to include. - - - - Implement this method to generate code for the given annotation value. - - The name of the annotation for which a value is being generated. - The annotation value. - The writer to which generated code should be written. - - - - Represents a pair of annotation values in a scaffolded or hand-coded . - - - Code First allows for custom annotations to be associated with columns and tables in the - generated model. This class represents a pair of annotation values in a migration such - that when the Code First model changes the old annotation value and the new annotation - value can be provided to the migration and used in SQL generation. - - - - - Creates a new pair of annotation values. - - The old value of the annotation, which may be null if the annotation has just been created. - The new value of the annotation, which may be null if the annotation has been deleted. - - - - - - - - - - Returns true if both annotation pairs contain the same values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if both pairs contain the same values. - - - - Returns true if the two annotation pairs contain different values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if the pairs contain different values. - - - - Gets the old value of the annotation, which may be null if the annotation has just been created. - - - - - Gets the new value of the annotation, which may be null if the annotation has been deleted. - - - - - Returned by and related methods to indicate whether or - not one object does not conflict with another such that the two can be combined into one. - - - If the two objects are not compatible then information about why they are not compatible is contained - in the property. - - - - - Creates a new instance. - - Indicates whether or not the two tested objects are compatible. - - An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. - - - - - Implicit conversion to a bool to allow the result object to be used directly in checks. - - The object to convert. - True if the result is compatible; false otherwise. - - - - True if the two tested objects are compatible; otherwise false. - - - - - If is true, then returns an error message indicating how the two tested objects - are incompatible. - - - - - Types used as custom annotations can implement this interface to indicate that an attempt to use - multiple annotations with the same name on a given table or column may be possible by merging - the multiple annotations into one. - - - Normally there can only be one custom annotation with a given name on a given table or - column. If a table or column ends up with multiple annotations, for example, because - multiple CLR properties map to the same column, then an exception will be thrown. - However, if the annotation type implements this interface, then the two annotations will be - checked for compatibility using the method and, if compatible, - will be merged into one using the method. - - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new merged annotation. This method is - only expected to succeed if returns true. - - The annotation to merge with this one. - A new merged annotation. - - - - Instances of this class are used as custom annotations for representing database indexes in an - Entity Framework model. - - - An index annotation is added to a Code First model when an is placed on - a mapped property of that model. This is used by Entity Framework Migrations to create indexes on - mapped database columns. Note that multiple index attributes on a property will be merged into a - single annotation for the column. Similarly, index attributes on multiple properties that map to the - same column will be merged into a single annotation for the column. This means that one index - annotation can represent multiple indexes. Within an annotation there can be only one index with any - given name. - - - - - The name used when this annotation is stored in Entity Framework metadata or serialized into - an SSDL/EDMX file. - - - - - Creates a new annotation for the given index. - - An index attributes representing an index. - - - - Creates a new annotation for the given collection of indexes. - - Index attributes representing one or more indexes. - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - - Each index annotation contains at most one with a given name. - Two annotations are considered compatible if each IndexAttribute with a given name is only - contained in one annotation or the other, or if both annotations contain an IndexAttribute - with the given name. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. - - - Each index annotation contains at most one with a given name. - The merged annotation will contain IndexAttributes from both this and the other annotation. - If both annotations contain an IndexAttribute with the same name, then the merged annotation - will contain one IndexAttribute with that name. - - The annotation to merge with this one. - A new annotation with indexes from both annotations merged. - - The other annotation contains indexes that are not compatible with indexes in this annotation. - - - - - - - - Gets the indexes represented by this annotation. - - - - - This class is used to serialize and deserialize objects so that they - can be stored in the EDMX form of the Entity Framework model. - - - An example of the serialized format is: - { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. - Note that properties that have not been explicitly set in an index attribute will be excluded from - the serialized output. So, in the example above, the first index has all properties specified, - the second has none, and the third has just the name set. - - - - - Implement this interface to allow custom annotations represented by instances to be - serialized to and from the EDMX XML. Usually a serializer instance is set using the - method. - - - - - Serializes the given annotation value into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize. - The serialized value. - - - - Deserializes the given string back into the expected annotation value. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - - - - Serializes the given into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize which must be an IndexAnnotation object. - The serialized value. - - - - Deserializes the given string back into an object. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - If there is an error reading the serialized value. - - - - This interface is implemented by any object that can resolve a dependency, either directly - or through use of an external container. - - - The public services currently resolved using IDbDependencyResolver are documented here: - http://msdn.microsoft.com/en-us/data/jj680697 - - - - - Attempts to resolve a dependency for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return null and not throw. This - allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers - can be asked to resolve a dependency until one finally does. - - The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. - - - - Attempts to resolve a dependencies for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return an empty enumeration and - not throw. This method differs from in that it returns all registered - services for the given type and key combination. - - The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. - - - - An implementation used for resolving - factories. - - - - - Initializes a new instance of - - A function that returns a new instance of a transaction handler. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. - null will match anything. - - - A string that will be matched against the server name in the connection string. null will match anything. - - - - - If the given type is , then this method will attempt - to return the service to use, otherwise it will return null. When the given type is - , then the key is expected to be a . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - , then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - - - - - - - Provides utility methods for reading from an App.config or Web.config file. - - - - - Initializes a new instance of . - - The configuration to read from. - - - - Gets the specified provider services from the configuration. - - The invariant name of the provider services. - The provider services type name, or null if not found. - - - - A simple logger for logging SQL and other database operations to the console or a file. - A logger can be registered in code or in the application's web.config /app.config file. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework loads the application's . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This is the base interface for all interfaces that provide interception points for various - different types and operations. For example, see . - Interceptors are registered on the class. - - - - - Occurs during EF initialization after the has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that an interceptor of this type should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Creates a new logger that will send log output to the console. - - - - - Creates a new logger that will send log output to a file. If the file already exists then - it is overwritten. - - A path to the file to which log output will be written. - - - - Creates a new logger that will send log output to a file. - - A path to the file to which log output will be written. - True to append data to the file if it exists; false to overwrite the file. - - - - Stops logging and closes the underlying file if output is being written to a file. - - - - - Stops logging and closes the underlying file if output is being written to a file. - - - True to release both managed and unmanaged resources; False to release only unmanaged resources. - - - - - Starts logging. This method is a no-op if logging is already started. - - - - - Stops logging. This method is a no-op if logging is not started. - - - - - Called to start logging during Entity Framework initialization when this logger is registered. - as an . - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls into - implementations. - - - Note that specific types/operations that can be intercepted may use a more specific - interception context derived from this class. For example, if SQL is being executed by - a , then the DbContext will be contained in the - instance that is passed to the methods - of . - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. See - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - Call this method when creating a copy of an interception context in order to add new state - to it. Using this method instead of calling the constructor directly ensures virtual dispatch - so that the new type will have the same type (and any specialized state) as the context that - is being cloned. - - A new context with all state copied. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item if - a single has been used to construct multiple - instances. - - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item when - EF has created a new for use in database creation and initialization, or - if a single is used with multiple . - - - - - True if the operation is being executed asynchronously, otherwise false. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - Implemented by Entity Framework providers and used to check whether or not tables exist - in a given database. This is used by database initializers when determining whether or not to - treat an existing database as empty such that tables should be created. - - - - - When overridden in a derived class checks where the given tables exist in the database - for the given connection. - - - The context for which table checking is being performed, usually used to obtain an appropriate - . - - - A connection to the database. May be open or closed; should be closed again if opened. Do not - dispose. - - The tables to check for existence. - The name of the EdmMetadata table to check for existence. - True if any of the model tables or EdmMetadata table exists. - - - - Helper method to get the table name for the given s-space . - - The s-space entity set for the table. - The table name. - - - - Thrown when an error occurs committing a . - - - - - Initializes a new instance of - - - - - Initializes a new instance of - - The exception message. - - - - Initializes a new instance of - - The exception message. - The inner exception. - - - - Initializes a new instance of the class. - - The data necessary to serialize or deserialize an object. - Description of the source and destination of the specified serialized stream. - - - - Event arguments passed to event handlers. - - - - - Call this method to add a instance to the Chain of - Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The only exception to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here, unless the - overrideConfigFile is set to true in which case the resolver added here will also override config - file settings. - - The resolver to add. - If true, then the resolver added will take precedence over settings in the config file. - - - - Call this method to add a instance to the Chain of Responsibility - of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - The resolver to add. - - - - Adds a wrapping resolver to the configuration that is about to be locked. A wrapping - resolver is a resolver that incepts a service would have been returned by the resolver - chain and wraps or replaces it with another service of the same type. - - The type of service to wrap or replace. - A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. - - - - - - - - - - - - - - - - Returns a snapshot of the that is about to be locked. - Use the GetService methods on this object to get services that have been registered. - - - - - An implementation used for resolving - factories. - - - This class can be used by to aid in the resolving - of factories as a default service for the provider. - - The type of execution strategy that is resolved. - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - A string that will be matched against the server name in the connection string. null will match anything. - - A function that returns a new instance of an execution strategy. - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return null. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - Extension methods to call the method using - a generic type parameter and/or no name. - - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Implements to resolve a dependency such that it always returns - the same instance. - - The type that defines the contract for the dependency that will be resolved. - - This class is immutable such that instances can be accessed by multiple threads at the same time. - - - - - Constructs a new resolver that will return the given instance for the contract type - regardless of the key passed to the Get method. - - The instance to return. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches exactly the key passed to the Get method. - - The instance to return. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches the key passed to the Get method based on the given predicate. - - The instance to return. - A predicate that takes the key object and returns true if and only if it matches. - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Represents contextual information associated with calls with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The isolation level to associate. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to start a transaction. - - - - - This is the default log formatter used when some is set onto the - property. A different formatter can be used by creating a class that inherits from this class and overrides - some or all methods to change behavior. - - - To set the new formatter create a code-based configuration for EF using and then - set the formatter class to use with . - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - onto before any commands will be logged. - For more low-level control over logging/interception see and - . - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework executes commands. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework performs operations on a . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is invoked. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The transaction used by Entity Framework can be changed by setting - . - - The connection that began the transaction. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was closed. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is set. - - The connection. - Contextual information associated with the call. - - - - Called after is set. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being disposed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was disposed. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection. - Contextual information associated with the call. - - - - Called before or its async counterpart is invoked. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - - The connection that was opened. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework commits or rollbacks a transaction. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being disposed. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was disposed. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - Creates a formatter that will not filter by any and will instead log every command - from any context and also commands that do not originate from a context. - - - This constructor is not used when a delegate is set on . Instead it can be - used by setting the formatter directly using . - - The delegate to which output will be sent. - - - - Creates a formatter that will only log commands the come from the given instance. - - - This constructor must be called by a class that inherits from this class to override the behavior - of . - - - The context for which commands should be logged. Pass null to log every command - from any context and also commands that do not originate from a context. - - The delegate to which output will be sent. - - - - Writes the given string to the underlying write delegate. - - The string to write. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - Called whenever a command is about to be executed. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the - context filtering behavior. - - The type of the operation's results. - The command that will be executed. - Contextual information associated with the command. - - - - Called whenever a command has completed executing. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the context - filtering behavior. - - The type of the operation's results. - The command that was executed. - Contextual information associated with the command. - - - - Called to log a command that is about to be executed. Override this method to change how the - command is logged to . - - The type of the operation's results. - The command to be logged. - Contextual information associated with the command. - - - - Called by to log each parameter. This method can be called from an overridden - implementation of to log parameters, and/or can be overridden to - change the way that parameters are logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - The parameter to log. - - - - Called to log the result of executing a command. Override this method to change how results are - logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - - - - Does not write to log unless overridden. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that began the transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was opened. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was closed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - - - - - - - - - - - - The context for which commands are being logged, or null if commands from all contexts are - being logged. - - - - - The stop watch used to time executions. This stop watch is started at the end of - , , and - methods and is stopped at the beginning of the , , - and methods. If these methods are overridden and the stop watch is being used - then the overrides should either call the base method or start/stop the watch themselves. - - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Represents contextual information associated with calls that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to property setters of type on a . - - The type of the target property. - - - - Represents contextual information associated with calls to property setters of type . - - - An instance of this class is passed to the dispatch methods and does not contain mutable information such as - the result of the operation. This mutable information is obtained from the - that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information - use one of the With... or As... methods to create a new interception context containing the new information. - - The type of the target property. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The value that will be assigned to the target property. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when executing commands. It is provided publicly so that - code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is - typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls into - implementations. - - - An instance of this class is passed to the dispatch methods of - and does not contain mutable information such as the result of the operation. This mutable information - is obtained from the that is passed to the interceptors. - Instances of this class are publicly immutable. To add contextual information use one of the - With... or As... methods to create a new interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The that will be used or has been used to execute the command with a - . This property is only used for - and its async counterparts. - - - - - Represents contextual information associated with calls into - implementations including the result of the operation. - - The type of the operation's results. - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Base class that implements . This class is a convenience for - use when only one or two methods of the interface actually need to have any implementation. - - - - - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The original tree created by Entity Framework. Interceptors can change the - property to change the tree that will be used, but the - will always be the tree created by Entity Framework. - - - - - The command tree that will be used by Entity Framework. This starts as the tree contained in the - the property but can be set by interceptors to change - the tree that will be used by Entity Framework. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - setting . - - The connection on which the operation will be executed. - Information about the context of the call being made, including the value to be set. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to all dispatchers through the the fluent API. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - This is the registration point for interceptors. Interceptors - receive notifications when EF performs certain operations such as executing commands against - the database. For example, see . - - - - - Registers a new to receive notifications. Note that the interceptor - must implement some interface that extends from to be useful. - - The interceptor to add. - - - - Removes a registered so that it will no longer receive notifications. - If the given interceptor is not registered, then this is a no-op. - - The interceptor to remove. - - - - This is the entry point for dispatching to interceptors. This is usually only used internally by - Entity Framework but it is provided publicly so that other code can make sure that registered - interceptors are called when operations are performed on behalf of EF. For example, EF providers - a may make use of this when executing commands. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The connection on which the transaction was started. - A new interception context that also contains the connection on which the transaction was started. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - The connection on which the transaction was started - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The transaction to be used in the invocation. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to enlist a connection. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework creates command trees. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called after a new has been created. - The tree that is used after interception can be changed by setting - while intercepting. - - - Command trees are created for both queries and insert/update/delete commands. However, query - command trees are cached by model which means that command tree creation only happens the - first time a query is executed and this notification will only happen at that time - - Contextual information associated with the call. - - - - Represents a mapping view. - - - - - Creates a instance having the specified entity SQL. - - A string that specifies the entity SQL. - - - - Gets the entity SQL. - - - - - Base abstract class for mapping view cache implementations. - Derived classes must have a parameterless constructor if used with . - - - - - Gets a view corresponding to the specified extent. - - An that specifies the extent. - A that specifies the mapping view, - or null if the extent is not associated with a mapping view. - - - - Gets a hash value computed over the mapping closure. - - - - - Specifies the means to create concrete instances. - - - - - Creates a generated view cache instance for the container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - - A that specifies the generated view cache. - - - - - Defines a custom attribute that specifies the mapping view cache type (subclass of ) - associated with a context type (subclass of or ). - The cache type is instantiated at runtime and used to retrieve pre-generated views in the - corresponding context. - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - - A subclass of . - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - The assembly qualified full name of the cache type. - - - - The base class for interceptors that handle the transaction operations. Derived classes can be registered using - or - . - - - - - Initializes a new instance of the class. - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - The connection to use for the initialization. - - This method is called by migrations. It is important that no action is performed on the - specified context that causes it to be initialized. - - - - - - - - Releases the resources used by this transaction handler. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Checks whether the supplied interception context contains the target context - or the supplied connection is the same as the one used by the target context. - - A connection. - An interception context. - - true if the supplied interception context contains the target context or - the supplied connection is the same as the one used by the target context if - the supplied interception context doesn't contain any contexts; false otherwise. - - - Note that calling this method will trigger initialization of any DbContext referenced from the - - - - - When implemented in a derived class returns the script to prepare the database - for this transaction handler. - - A script to change the database schema for this transaction handler. - - - - Can be implemented in a derived class. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection that was disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being rolled back. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Gets the context. - - - The for which the transaction operations will be handled. - - - - - Gets the context. - - - The for which the transaction operations will be handled, could be null. - - - - - Gets the connection. - - - The for which the transaction operations will be handled. - - - This connection object is only used to determine whether a particular operation needs to be handled - in cases where a context is not available. - - - - - Gets or sets a value indicating whether this transaction handler is disposed. - - - true if disposed; otherwise, false. - - - - - This class is used by to write and read transaction tracing information - from the database. - To customize the definition of the transaction table you can derive from - this class and override . Derived classes can be registered - using . - - - By default EF will poll the resolved to check wether the database schema is compatible and - will try to modify it accordingly if it's not. To disable this check call - Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. - - - - - A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that - it can be used to query from a database and group together changes that will then be written - back to the store as a unit. - DbContext is conceptually similar to ObjectContext. - - - DbContext is usually used with a derived type that contains properties for - the root entities of the model. These sets are automatically initialized when the - instance of the derived class is created. This behavior can be modified by applying the - attribute to either the entire derived context - class, or to individual properties on the class. - The Entity Data Model backing the context can be specified in several ways. When using the Code First - approach, the properties on the derived context are used to build a model - by convention. The protected OnModelCreating method can be overridden to tweak this model. More - control over the model used for the Model First approach can be obtained by creating a - explicitly from a and passing this model to one of the DbContext constructors. - When using the Database First or Model First approach the Entity Data Model can be created using the - Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using - entity connection string or an object. - The connection to the database (including the name of the database) can be specified in several ways. - If the parameterless DbContext constructor is called from a derived context, then the name of the derived context - is used to find a connection string in the app.config or web.config file. If no connection string is found, then - the name is passed to the DefaultConnectionFactory registered on the class. The connection - factory then uses the context name as the database name in a default connection string. (This default connection - string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) - Instead of using the derived context name, the connection/database name can also be specified explicitly by - passing the name to one of the DbContext constructors that takes a string. The name can also be passed in - the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. - Note that the connection found in the app.config or web.config file can be a normal database connection - string (not a special Entity Framework connection string) in which case the DbContext will use Code First. - However, if the connection found in the config file is a special Entity Framework connection string, then the - DbContext will use Database/Model First and the model specified in the connection string will be used. - An existing or explicitly created DbConnection can also be used instead of the database/connection name. - A can be applied to a class derived from DbContext to set the - version of conventions used by the context when it creates a model. If no attribute is applied then the - latest version of conventions will be used. - - - - - Interface implemented by objects that can provide an instance. - The class implements this interface to provide access to the underlying - ObjectContext. - - - - - Gets the object context. - - The object context. - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made. The by-convention name is the full name (namespace + class name) - of the derived context class. - See the class remarks for how this is used to create a connection. - - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made, and initializes it from the given model. - The by-convention name is the full name (namespace + class name) of the derived context class. - See the class remarks for how this is used to create a connection. - - The model that will back this context. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made, and initializes it from the given model. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - The model that will back this context. - - - - Constructs a new context instance using the existing connection to connect to a database. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance using the existing connection to connect to a database, - and initializes it from the given model. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - The model that will back this context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance around an existing ObjectContext. - - An existing ObjectContext to wrap with the new context. - - If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. - - - - - This method is called when the model for a derived context has been initialized, but - before the model has been locked down and used to initialize the context. The default - implementation of this method does nothing, but it can be overridden in a derived class - such that the model can be further configured before it is locked down. - - - Typically, this method is called only once when the first instance of a derived context - is created. The model for that context is then cached and is for all further instances of - the context in the app domain. This caching can be disabled by setting the ModelCaching - property on the given ModelBuidler, but note that this can seriously degrade performance. - More control over caching is provided through use of the DbModelBuilder and DbContextFactory - classes directly. - - The builder that defines the model for the context being created. - - - - Returns a instance for access to entities of the given type in the context - and the underlying store. - - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the non-generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - The type entity for which a set should be returned. - A set for the given entity type. - - - - Returns a non-generic instance for access to entities of the given type in the context - and the underlying store. - - The type of entity for which a set should be returned. - A set for the given entity type. - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - - - - Saves all changes made in this context to the underlying database. - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Validates tracked entities and returns a Collection of containing validation results. - - Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. - - 1. This method calls DetectChanges() to determine states of the tracked entities unless - DbContextConfiguration.AutoDetectChangesEnabled is set to false. - 2. By default only Added on Modified entities are validated. The user is able to change this behavior - by overriding ShouldValidateEntity method. - - - - - Extension point allowing the user to override the default behavior of validating only - added and modified entities. - - DbEntityEntry instance that is supposed to be validated. - true to proceed with validation; false otherwise. - - - - Extension point allowing the user to customize validation of an entity or filter out validation results. - Called by . - - DbEntityEntry instance to be validated. - - User-defined dictionary containing additional info for custom validation. It will be passed to - - and will be exposed as - - . This parameter is optional and can be null. - - Entity validation result. Possibly null when overridden. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The type of the entity. - The entity. - An entry for the entity. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The entity. - An entry for the entity. - - - - Calls the protected Dispose method. - - - - - Disposes the context. The underlying is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - The connection to the database ( object) is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Creates a Database instance for this context that allows for creation/deletion/existence checks - for the underlying database. - - - - - Returns the Entity Framework ObjectContext that is underlying this context. - - Thrown if the context has been disposed. - - - - Provides access to features of the context that deal with change tracking of entities. - - An object used to access features that deal with change tracking. - - - - Provides access to configuration options for the context. - - An object used to access configuration options. - - - - Initializes a new instance of the class. - - The connection used by the context for which the transactions will be recorded. - - - - - - - Gets or sets a that can be used to read and write instances. - - - - - A transaction handler that allows to gracefully recover from connection failures - during transaction commit by storing transaction tracing information in the database. - It needs to be registered by using . - - - This transaction handler uses to store the transaction information - the schema used can be configured by creating a class derived from - that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. - - - - - Initializes a new instance of the class using the default . - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes a new instance of the class. - - The transaction context factory. - - One of the Initialize methods needs to be called before this instance can be used. - - - - - - - - - - - - - - - - - Stores the tracking information for the new transaction to the database in the same transaction. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - If there was an exception thrown checks the database for this transaction and rethrows it if not found. - Otherwise marks the commit as succeeded and queues the transaction information to be deleted. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was rolled back. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was disposed. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - - - - Adds the specified transaction to the list of transactions that can be removed from the database - - The transaction to be removed from the database. - - - - Removes the transactions marked for deletion. - - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the transaction context. - - - The transaction context. - - - - - Gets the number of transactions to be executed on the context before the transaction log will be cleaned. - The default value is 20. - - - - - An implementation of this interface is used to initialize the underlying database when - an instance of a derived class is used for the first time. - This initialization can conditionally create the database and/or seed it with data. - The strategy used is set using the static InitializationStrategy property of the - class. - The following implementations are provided: , - , . - - The type of the context. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - Rrepresents a transaction - - - - - - - - - - - A unique id assigned to a transaction object. - - - - - The local time when the transaction was started. - - - - - Helper class that is used to configure a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new parameter definition to pass Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The numeric precision of the parameter. - The numeric scale of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the parameter supports Unicode content. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Represents altering an existing stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - A migration operation that affects stored procedures. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents an operation to modify a database schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MigrationOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" - }'. - - - - - Gets additional arguments that may be processed by providers. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure. - - - The name of the stored procedure. - - - - - Gets the body of the stored procedure expressed in SQL. - - - The body of the stored procedure expressed in SQL. - - - - - Gets the parameters of the stored procedure. - - - The parameters of the stored procedure. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Represents changes made to custom annotations on a table. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterTableOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table on which annotations have changed. - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets the name of the table on which annotations have changed. - - - - - Gets the columns to be included in the table for which annotations have changed. - - - - - Gets the custom annotations that have changed on the table. - - - - - Gets an operation that is the inverse of this one such that annotations will be changed back to how - they were before this operation was applied. - - - - - - - - Represents renaming an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the index belongs to. - Name of the index to be renamed. - New name for the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the index belongs to. - - - - - Gets the name of the index to be renamed. - - - - - Gets the new name for the index. - - - - - Gets an operation that reverts the rename. - - - - - - - - Used when scripting an update database operation to store the operations that would have been performed against the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Adds a migration to this update database operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The id of the migration. - The individual operations applied by the migration. - - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Gets the migrations applied during the update database operation. - - - The migrations applied during the update database operation. - - - - - Gets a value indicating if any of the operations may result in data loss. - - - - - Represents a migration to be applied to the database. - - - - - Gets the id of the migration. - - - The id of the migration. - - - - - Gets the individual operations applied by this migration. - - - The individual operations applied by this migration. - - - - - Represents moving a stored procedure to a new schema in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to move. - The new schema for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to move. - - - The name of the stored procedure to move. - - - - - Gets the new schema for the stored procedure. - - - The new schema for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents renaming a stored procedure in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to rename. - The new name for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to rename. - - - The name of the stored procedure to rename. - - - - - Gets the new name for the stored procedure. - - - The new name for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents information about a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents information about a property of an entity. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the PropertyModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this property model. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets the data type for this property model. - - - - - Gets additional details about the data type of this property model. - This includes details such as maximum length, nullability etc. - - - - - Gets or sets the name of the property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a provider specific data type to use for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the maximum length for this property model. - Only valid for array data types. - - - - - Gets or sets the precision for this property model. - Only valid for decimal data types. - - - - - Gets or sets the scale for this property model. - Only valid for decimal data types. - - - - - Gets or sets a constant value to use as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a SQL expression used as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if this property model is fixed length. - Only valid for array data types. - - - - - Gets or sets a value indicating if this property model supports Unicode characters. - Only valid for textual data types. - - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets or sets a value indicating whether this instance is out parameter. - - - true if this instance is out parameter; otherwise, false. - - - - - Drops a stored procedure from the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to drop. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to drop. - - - The name of the stored procedure to drop. - - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model. - - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type. - - The common type of the entity types that this convention applies to. - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type and a - captured value. - - The common type of the entity types that this convention applies to. - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model and a captured value. - - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The name of the property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Configures a property that is defined on this type. - - The name of the property being configured. - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The property being configured. - A configuration object that can be used to configure the property. - - - - Configures the primary key property for this entity type. - - The name of the property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property for this entity type. - - The property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The names of the properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured or if any - property does not exist. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - A type inherited by the entity type. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - - The same instance so that multiple calls can be chained. - - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Identifies conventions that can be added to or removed from a instance. - - - Note that implementations of this interface must be immutable. - - - - - A general purpose class for Code First conventions that read attributes from .NET properties - and generate column annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - A convention that doesn't override configuration. - - - - - The derived class can use the default constructor to apply a set rule of that change the model configuration. - - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model that derive from or implement the specified type. - - The type of the entities that this convention will apply to. - A configuration object for the convention. - This method does not add new types to the model. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Constructs a convention that will create column annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each column. - - - - A general purpose class for Code First conventions that read attributes from .NET types - and generate table annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - Constructs a convention that will create table annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each table. - - - - A convention for discovering attributes on properties and generating - column annotations in the model. - - - - - Constructs a new instance of the convention. - - - - - Base class for conventions that process CLR attributes found on primitive properties in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The configuration for the property that has the attribute. - The attribute. - - - - Base class for conventions that process CLR attributes found on properties of types in the model. - - - Note that the derived convention will be applied for any non-static property on the mapped type that has - the specified attribute, even if it wasn't included in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The member info for the property that has the attribute. - The configuration for the class that contains the property. - The attribute. - - - - Base class for conventions that process CLR attributes found in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a class that has an attribute of type TAttribute applied. - - The configuration for the class that contains the property. - The attribute. - - - - Used to configure a property in a mapping fragment. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the database column used to store the property, in a mapping fragment. - - The name of the column. - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Convention to introduce indexes for foreign keys. - - - - - A convention that operates on the database section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - - - - A convention that operates on the conceptual section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - Useful extension methods for use with Entity Framework LINQ queries. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - The type of entity being queried. - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - The path expression must be composed of simple property access expressions together with calls to Select for - composing additional includes after including a collection proprty. Examples of possible include paths are: - To include a single reference: query.Include(e => e.Level1Reference) - To include a single collection: query.Include(e => e.Level1Collection) - To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) - To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) - To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) - This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. - If the source IQueryable does not have a matching method, then this method does nothing. - The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. - When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other - instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the - query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. - - The type of entity being queried. - The type of navigation property being included. - The source IQueryable on which to call Include. - A lambda expression representing the path to include. - - A new IQueryable<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The element type. - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - The type of the elements of . - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - - - Bypasses a specified number of elements in a sequence and then returns the remaining elements. - - The type of the elements of source. - A sequence to return elements from. - An expression that evaluates to the number of elements to skip. - A sequence that contains elements that occur after the specified index in the - input sequence. - - - - Returns a specified number of contiguous elements from the start of a sequence. - - The type of the elements of source. - The sequence to return elements from. - An expression that evaluates to the number of elements - to return. - A sequence that contains the specified number of elements from the - start of the input sequence. - - - - Controls the transaction creation behavior while executing a database command or query. - - - - - If no transaction is present then a new transaction will be used for the operation. - - - - - If an existing transaction is present then use it, otherwise execute the command or query without a transaction. - - - - - Specifies a structural type mapping. - - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents the base item class for all the metadata - - - Represents the base item class for all the metadata - - - - - Adds or updates an annotation with the specified name and value. - - - If an annotation with the given name already exists then the value of that annotation - is updated to the given value. If the given value is null then the annotation will be - removed. - - The name of the annotation property. - The value of the annotation property. - - - - Removes an annotation with the specified name. - - The name of the annotation property. - true if an annotation was removed; otherwise, false. - - - - Returns a conceptual model built-in type that matches one of the - - values. - - - An object that represents the built-in type in the EDM. - - - One of the values. - - - - Returns the list of the general facet descriptions for a specified type. - - A object that represents the list of the general facet descriptions for a specified type. - - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - Gets the list of properties of the current type. - - A collection of type that contains the list of properties of the current type. - - - - Gets or sets the documentation associated with this type. - - A object that represents the documentation on this type. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this attribute has been replaced by the starting with EF6. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. - - - - - Initializes a new instance of the class. - - The namespace of the mapped-to function. - The name of the mapped-to function. - - - The namespace of the mapped-to function. - The namespace of the mapped-to function. - - - The name of the mapped-to function. - The name of the mapped-to function. - - - - Creates a new DbFunctionAttribute instance. - - The namespace name of the EDM function represented by the attributed method. - The function name of the EDM function represented by the attributed method. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that these functions have been moved to the class starting with EF6. - The functions are retained here only to help in the migration of older EF apps to EF6. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Options for query execution. - - - - - Creates a new instance of . - - Merge option to use for entity results. - - - - Creates a new instance of . - - Merge option to use for entity results. - Whether the query is streaming or buffering. - - - Determines whether the specified objects are equal. - true if the two objects are equal; otherwise, false. - The left object to compare. - The right object to compare. - - - - Determines whether the specified objects are not equal. - - The left object to compare. - The right object to compare. - true if the two objects are not equal; otherwise, false. - - - - - - - - - - Merge option to use for entity results. - - - - - Whether the query is streaming or buffering. - - - - - DataRecord interface supporting structured types and rich metadata information. - - - - - Gets a object with the specified index. - - - A object. - - The index of the row. - - - - Returns nested readers as objects. - - - Nested readers as objects. - - The ordinal of the column. - - - - Gets for this - - . - - - A object. - - - - - DataRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new object for a specific type with an enumerable collection of data fields. - - - The metadata for the type represented by this object, supplied by - - . - - - An enumerable collection of objects that represent column information. - - - - - Gets for this - - object. - - - A object. - - - - - Gets type info for this object as a object. - - - A value. - - - - - A prepared command definition, can be cached and reused to avoid - repreparing a command. - - - - - Initializes a new instance of the class using the supplied - - . - - - The supplied . - - method used to clone the - - - - Initializes a new instance of the class. - - - - - Creates and returns a object that can be executed. - - The command for database. - - - - Metadata Interface for all CLR types types - - - - - Value to pass to GetInformation to get the StoreSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaMapping - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 - - - - - Value to pass to GetInformation to get the StoreSchemaMappingVersion3 - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 - - - - - Name of the MaxLength Facet - - - - - Name of the Unicode Facet - - - - - Name of the FixedLength Facet - - - - - Name of the Precision Facet - - - - - Name of the Scale Facet - - - - - Name of the Nullable Facet - - - - - Name of the DefaultValue Facet - - - - - Name of the Collation Facet - - - - - Name of the SRID Facet - - - - - Name of the IsStrict Facet - - - - When overridden in a derived class, returns the set of primitive types supported by the data source. - The set of types supported by the data source. - - - When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. - A collection of EDM functions. - - - Returns the FacetDescription objects for a particular type. - The FacetDescription objects for the specified EDM type. - The EDM type to return the facet description for. - - - When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. - - The instance that describes an EDM type and a set of facets for that type. - - The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. - - - When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. - The TypeUsage instance that describes a storage type and a set of facets for that type. - The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. - - - When overridden in a derived class, this method returns provider-specific information. - The XmlReader object that represents the mapping to the underlying data store catalog. - The type of the information to return. - - - Gets the provider-specific information. - The provider-specific information. - The type of the information to return. - - - Indicates if the provider supports escaping strings to be used as patterns in a Like expression. - True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. - If the provider supports escaping, the character that would be used as the escape character. - - - Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. - The argument with the wildcards and the escape character escaped. - The argument to be escaped. - - - - Returns a boolean that specifies whether the provider can handle expression trees - containing instances of DbInExpression. - The default implementation returns false for backwards compatibility. Derived classes can override this method. - - - false - - - - - Returns a boolean that specifies whether the provider can process expression trees not having DbProjectExpression - nodes directly under both Left and Right sides of DbUnionAllExpression and DbIntersectExpression - - - false - - - - Gets the namespace used by this provider manifest. - The namespace used by this provider manifest. - - - - The factory for building command definitions; use the type of this object - as the argument to the IServiceProvider.GetService method on the provider - factory; - - - - - Constructs an EF provider that will use the obtained from - the app domain Singleton for resolving EF dependencies such - as the instance to use. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object given a command tree. - - command tree for the statement - an executable command definition object - - This method simply delegates to the provider's implementation of CreateDbCommandDefinition. - - - - Creates command definition from specified manifest and command tree. - The created command definition. - The manifest. - The command tree. - - - Creates a command definition object for the specified provider manifest and command tree. - An executable command definition object. - Provider manifest previously retrieved from the store provider. - Command tree for the statement. - - - - Create the default DbCommandDefinition object based on the prototype command - This method is intended for provider writers to build a default command definition - from a command. - Note: This will clone the prototype - - the prototype command - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - DbCommand can cause deadlocks. So here allow sub-classes to override. - - the object to clone - a clone of the - - - Returns provider manifest token given a connection. - The provider manifest token. - Connection to provider. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - Returns the provider manifest by using the specified version information. - The provider manifest by using the specified version information. - The token information associated with the provider manifest. - - - When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. - A DbProviderManifest object that represents the provider manifest. - The token information associated with the provider manifest. - - - - Gets the that will be used to execute methods that use the specified connection. - - The database connection - - A new instance of - - - - - Gets the that will be used to execute methods that use the specified connection. - This overload should be used by the derived classes for compatability with wrapping providers. - - The database connection - The provider invariant name - - A new instance of - - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - Gets the spatial services for the . - The spatial services. - Information about the database that the spatial services will be used for. - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The token information associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - Returns providers given a connection. - - The instanced based on the specified connection. - - Connection to provider. - - - Retrieves the DbProviderFactory based on the specified DbConnection. - The retrieved DbProviderFactory. - The connection to use. - - - - Return an XML reader which represents the CSDL description - - The name of the CSDL description. - An XmlReader that represents the CSDL description - - - Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - The provider manifest token identifying the target version. - The structure of the database. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Creates a database indicated by connection and creates schema objects - (tables, primary keys, foreign keys) based on the contents of storeItemCollection. - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - - Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, - or returns the given string if it does not start with |DataDirectory|. - - The path to expand. - The expanded path. - - - - Adds an that will be used to resolve additional default provider - services when a derived type is registered as an EF provider either using an entry in the application's - config file or through code-based registration in . - - The resolver to add. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - - Use this method to set, add, or change other provider-related services. Note that this method - will only be called for such services if they are not already explicitly configured in some - other way by the application. This allows providers to set default services while the - application is still able to override and explicitly configure each service if required. - See and for more details. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - An instance of the given type, or null if the service could not be resolved. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - All registered services that satisfy the given type and key, or an empty enumeration if there are none. - - - - A specialization of the ProviderManifest that accepts an XmlReader - - - - - Initializes a new instance of the class. - - - An object that provides access to the XML data in the provider manifest file. - - - - Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. - - A collection of type that contains the list of facet descriptions for the specified EDM type. - - - An for which the facet descriptions are to be retrieved. - - - - Returns the list of primitive types supported by the storage provider. - - A collection of type that contains the list of primitive types supported by the storage provider. - - - - Returns the list of provider-supported functions. - - A collection of type that contains the list of provider-supported functions. - - - - Gets the namespace name supported by this provider manifest. - The namespace name supported by this provider manifest. - - - Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. - The best mapped equivalent EDM type for a specified storage type name. - - - Gets the best mapped equivalent storage primitive type for a specified storage type name. - The best mapped equivalent storage primitive type for a specified storage type name. - - - - Class for representing a collection of items. - Most of the implementation for actual maintenance of the collection is - done by MetadataCollection - - - - - Class representing a read-only wrapper around MetadataCollection - - The type of items in this collection - - - Retrieves an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - - - Determines whether the collection contains an item with the specified identity. - true if the collection contains the item to be searched for; otherwise, false. The default is false. - The identity of the item. - - - Retrieves an item from this collection by using the specified identity. - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. - - - Returns an enumerator that can iterate through this collection. - - A that can be used to iterate through this - - . - - - - Returns the index of the specified value in this collection. - The index of the specified value in this collection. - A value to seek. - - - Gets a value indicating whether this collection is read-only. - true if this collection is read-only; otherwise, false. - - - Gets an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - - - - The enumerator for MetadataCollection - - - - Disposes of this enumerator. - - - - Moves to the next member in the collection of type - - . - - - true if the enumerator is moved in the collection of type - - ; otherwise, false. - - - - - Positions the enumerator before the first position in the collection of type - - . - - - - Gets the member at the current position. - The member at the current position. - - - - Gets the member at the current position - - - - - Returns a strongly typed object by using the specified identity. - - The item that is specified by the identity. - The identity of the item. - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. - - The item that is specified by the identity. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The type returned by the method. - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all the items of the specified type. - - The type returned by the method. - - - - Returns an object by using the specified type name and the namespace name in this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - Returns all the overloads of the functions by using the specified name from this item collection. - A collection of type ReadOnlyCollection that contains all the functions that have the specified name. - A dictionary of functions. - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first one. - The name of the entity container. - - - - Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - Gets the data model associated with this item collection. - The data model associated with this item collection. - - - - EntityRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. - - - The of the entity represented by the - - described by this - - object. - - - An enumerable collection of objects that represent column information. - - The key for the entity. - The entity set to which the entity belongs. - - - - Gets the for the entity. - - The key for the entity. - - - - Public Entity SQL Parser class. - - - - Parse the specified query with the specified parameters. - - The containing - - and information describing inline function definitions if any. - - The EntitySQL query to be parsed. - The optional query parameters. - - - - Parse a specific query with a specific set variables and produce a - - . - - - The containing - - and information describing inline function definitions if any. - - The query to be parsed. - The optional query variables. - - - - Entity SQL query inline function definition, returned as a part of . - - - - Function name. - - - Function body and parameters. - - - Start position of the function definition in the eSQL query text. - - - End position of the function definition in the eSQL query text. - - - - Entity SQL Parser result information. - - - - A command tree produced during parsing. - - - - List of objects describing query inline function definitions. - - - - - Compares objects using reference equality. - - - - - Gets the default instance. - - - - - Specifies the maximum length of array/string data allowed in a property. - - - - - Initializes a new instance of the class. - - The maximum allowable length of array/string data. Value must be greater than zero. - - - - Initializes a new instance of the class. - The maximum allowable length supported by the database will be used. - - - - - Determines whether a specified object is valid. (Overrides ) - - - This method returns true if the is null. - It is assumed the is used if the value may not be null. - - The object to validate. - true if the value is null or less than or equal to the specified maximum length, otherwise false - Length is zero or less than negative one. - - - - Applies formatting to a specified error message. (Overrides ) - - The name to include in the formatted string. - A localized string to describe the maximum acceptable length. - - - - Checks that Length has a legal value. Throws InvalidOperationException if not. - - - - - Gets the maximum allowable length of the array/string data. - - - - - Specifies the minimum length of array/string data allowed in a property. - - - - - Initializes a new instance of the class. - - The minimum allowable length of array/string data. Value must be greater than or equal to zero. - - - - Determines whether a specified object is valid. (Overrides ) - - - This method returns true if the is null. - It is assumed the is used if the value may not be null. - - The object to validate. - true if the value is null or greater than or equal to the specified minimum length, otherwise false - Length is less than zero. - - - - Applies formatting to a specified error message. (Overrides ) - - The name to include in the formatted string. - A localized string to describe the minimum acceptable length. - - - - Checks that Length has a legal value. Throws InvalidOperationException if not. - - - - - Gets the minimum allowable length of the array/string data. - - - - - Specifies the database column that a property is mapped to. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The name of the column the property is mapped to. - - - - The name of the column the property is mapped to. - - - - - The zero-based order of the column the property is mapped to. - - - - - The database provider specific data type of the column the property is mapped to. - - - - - Denotes that the class is a complex type. - Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. - Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object. - - - - - Specifies how the database generates values for a property. - - - - - Initializes a new instance of the class. - - The pattern used to generate values for the property in the database. - - - - The pattern used to generate values for the property in the database. - - - - - The pattern used to generate values for a property in the database. - - - - - The database does not generate values. - - - - - The database generates a value when a row is inserted. - - - - - The database generates a value when a row is inserted or updated. - - - - - Denotes a property used as a foreign key in a relationship. - The annotation may be placed on the foreign key property and specify the associated navigation property name, - or placed on a navigation property and specify the associated foreign key name. - - - - - Initializes a new instance of the class. - - If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). If a navigation property has multiple foreign keys, a comma separated list should be supplied. - - - - If placed on a foreign key property, the name of the associated navigation property. - If placed on a navigation property, the name of the associated foreign key(s). - - - - - Specifies the inverse of a navigation property that represents the other end of the same relationship. - - - - - Initializes a new instance of the class. - - The navigation property representing the other end of the same relationship. - - - - The navigation property representing the other end of the same relationship. - - - - - Denotes that a property or class should be excluded from database mapping. - - - - - Specifies the database table that a class is mapped to. - - - - - Initializes a new instance of the class. - - The name of the table the class is mapped to. - - - - The name of the table the class is mapped to. - - - - - The schema of the table the class is mapped to. - - - - - Wraps access to the transaction object on the underlying store connection and ensures that the - Entity Framework executes commands on the database within the context of that transaction. - An instance of this class is retrieved by calling BeginTransaction() on the - - object. - - - - - Commits the underlying store transaction - - - - - Rolls back the underlying store transaction - - - - - Cleans up this transaction object and ensures the Entity Framework - is no longer using that transaction. - - - - - Releases the resources used by this transaction object - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Gets the database (store) transaction that is underlying this context transaction. - - - - - A service for obtaining the correct from a given - . - - - On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the - default implementation of this service uses some heuristics to find the matching - provider. If these fail then a new implementation of this service can be registered - on to provide an appropriate resolution. - - - - - Returns the for the given connection. - - The connection. - The provider factory for the connection. - - - - Explicitly implemented by to prevent certain members from showing up - in the IntelliSense of scaffolded migrations. - - - - - Adds a custom to the migration. - Custom operation implementors are encouraged to create extension methods on - that provide a fluent-style API for adding new operations. - - The operation to add. - - - - A default implementation of that uses the - underlying provider to get the manifest token. - Note that to avoid multiple queries, this implementation using caching based on the actual type of - instance, the property, - and the property. - - - - - A service for getting a provider manifest token given a connection. - The class is used by default and makes use of the - underlying provider to get the token which often involves opening the connection. - A different implementation can be used instead by adding an - to that may use any information in the connection to return - the token. For example, if the connection is known to point to a SQL Server 2008 database then - "2008" can be returned without opening the connection. - - - - - Returns the manifest token to use for the given connection. - - The connection for which a manifest token is required. - The manifest token to use. - - - - - - - A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. - - - - - Executes the specified operation. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Indicates whether this might retry the execution after a failure. - - - - - Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses - exponentially increasing delays between retries. - - - A new instance will be created each time an operation is executed. - The following formula is used to calculate the delay after retryCount number of attempts: - min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) - The retryCount starts at 0. - The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - A delegate representing an executable operation that doesn't return any results. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - The type of result expected from the executable operation. - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Determines whether the operation should be retried and the delay before the next attempt. - - The exception thrown during the last execution attempt. - - Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; - null otherwise - - - - - Recursively gets InnerException from as long as it's an - , or - and passes it to - - The type of the unwrapped exception. - The exception to be unwrapped. - A delegate that will be called with the unwrapped exception. - - The result from . - - - - - Determines whether the specified exception represents a transient failure that can be compensated by a retry. - - The exception object to be verified. - - true if the specified exception is considered as transient, otherwise false. - - - - - Returns true to indicate that might retry the execution after a failure. - - - - - A key used for resolving . It consists of the ADO.NET provider invariant name - and the database server name as specified in the connection string. - - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A string that will be matched against the server name in the connection string. - - - - - - - - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - - - A string that will be matched against the server name in the connection string. - - - - - Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. - This interface allows you to have a single context type that can be used with different models in the same AppDomain, - or multiple context types that use the same model. - - - - Gets the cached key associated with the provider. - The cached key associated with the provider. - - - - Used by and when resolving - a provider invariant name from a . - - - - Gets the name of the provider. - The name of the provider. - - - - Represents a custom pluralization term to be used by the - - - - - Create a new instance - - A non null or empty string representing the singular. - A non null or empty string representing the plural. - - - - Get the singular. - - - - - Get the plural. - - - - - Default pluralization service implementation to be used by Entity Framework. This pluralization - service is based on English locale. - - - - - Pluralization services to be used by the EF runtime implement this interface. - By default the is used, but the pluralization service to use - can be set in a class derived from . - - - - - Pluralize a word using the service. - - The word to pluralize. - The pluralized word - - - - Singularize a word using the service. - - The word to singularize. - The singularized word. - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - A collection of user dictionary entries to be used by this service.These inputs - can customize the service according the user needs. - - - - Returns the plural form of the specified word. - The plural form of the input parameter. - The word to be made plural. - - - Returns the singular form of the specified word. - The singular form of the input parameter. - The word to be made singular. - - - - The exception that is thrown when the action failed again after being retried the configured number of times. - - - - - Provider exception - Used by the entity client. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the class with no error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The exception that is the cause of the current exception. - - - - An that doesn't retry operations if they fail. - - - - - Executes the specified operation once. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation once and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Returns false to indicate that will not retry the execution after a failure. - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a generic version of this class. - - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a generic version of this class. - - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking - and AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the results of the query will not be tracked by the associated - . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a non-generic version of this class. - - The type of entities returned by the query. - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a non-generic version of this class. - - The type of elements returned by the query. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking and - AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. - - - - Determines whether the current cached model key is equal to the specified cached model key. - true if the current cached model key is equal to the specified cached model key; otherwise, false. - The cached model key to compare to the current cached model key. - - - Returns the hash function for this cached model key. - The hash function for this cached model key. - - - - Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. - - - - - Represents errors that occur inside the Code First Migrations pipeline. - - - - - Initializes a new instance of the MigrationsException class. - - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the MigrationsException class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the MigrationsPendingException class. - - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - A migration operation to add a new stored procedure to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the stored procedure. - - - - - Allows configuration to be performed for a lightweight convention based on - the properties in a model. - - - - - Filters the properties that this convention applies to based on a predicate. - - A function to test each property for a condition. - - A instance so that multiple calls can be chained. - - - - - Filters the properties that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each property. If the value is null, the - property will be filtered out. - - - A instance so that multiple calls can be chained. - - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the properties of entity types in a model and a captured value. - - The type of the captured value. - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to modify a relationship. - - The type of the entity that the relationship is being configured from. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Creates a convention that configures stored procedures to be used to delete entities in the database. - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to insert entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a convention that configures stored procedures to be used to update entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - - Performs configuration of a stored procedure uses to modify an entity in the database. - - - - - Sets the name of the stored procedure. - - Name of the procedure. - The same configuration instance so that multiple calls can be chained. - - - - Sets the name of the stored procedure. - - Name of the procedure. - Name of the schema. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - Configures stored procedure used to insert relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to delete entities. - - The type of the entity that the stored procedure can be used to delete. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to insert entities. - - The type of the entity that the stored procedure can be used to insert. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to update entities. - - The type of the entity that the stored procedure can be used to update. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify entities. - - The type of the entity that the stored procedure can be used to modify. - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via lightweight conventions. - - - - - Configures the name of the database column used to store the property. - - The name of the column. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - - The same instance so that multiple calls can be chained. - - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be used as an optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures how values for the property are generated by the database. - - The pattern used to generate values for the property in the database. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to support Unicode string content. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to be variable length. - Properties are variable length by default. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to allow the maximum length supported by the database provider. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures this property to be part of the entity type's primary key. - - - The same instance so that - multiple calls can be chained. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the for this property. - - - - - An implementation of that does nothing. Using this - initializer disables database initialization for the given context type. Passing an instance - of this class to is equivalent to passing null. - When is being used to resolve initializers an instance of - this class must be used to disable initialization. - - The type of the context. - - - - - - - FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. - - - - - Initializes a new object with the specified ordinal value and field type. - - An integer specified the location of the metadata. - The field type. - - - - Gets the type of field for this object. - - - The type of field for this object. - - - - - Gets the ordinal for this object. - - An integer representing the ordinal value. - - - - Class representing a parameter collection used in EntityCommand - - - - - Adds the specified object to the . - - - The index of the new object. - - - An . - - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Removes all the objects from the - - . - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified one-dimensional - - starting at the specified destination index. - - - The one-dimensional that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the at which copying starts. - - - - - Returns an enumerator that iterates through the - - . - - - An for the - - . - - - - - - - - - - - Gets the location of the specified with the specified name. - - - The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the - - . - - - The case-sensitive name of the to find. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts an into the - - at the specified index. - - The zero-based index at which value should be inserted. - - An to be inserted in the - - . - - - - Removes the specified parameter from the collection. - - A object to remove from the collection. - - - - - Removes the from the - - at the specified index. - - - The zero-based index of the object to remove. - - - - - Removes the from the - - at the specified parameter name. - - - The name of the to remove. - - - - - - - - - - - Adds the specified object to the - - . - - - A new object. - - - The to add to the collection. - - - The specified in the value parameter is already added to this or another - - . - - - The parameter passed was not a . - - The value parameter is null. - - - - Adds a value to the end of the . - - - A object. - - The name of the parameter. - The value to be added. - - - - Adds a to the - - given the parameter name and the data type. - - - A new object. - - The name of the parameter. - - One of the values. - - - - - Adds a to the - - with the parameter name, the data type, and the column length. - - - A new object. - - The name of the parameter. - - One of the values. - - The column length. - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified - - starting at the specified destination index. - - - The that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the - - at which copying starts. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts a object into the - - at the specified index. - - The zero-based index at which value should be inserted. - - A object to be inserted in the - - . - - - - - Removes the specified from the collection. - - - A object to remove from the collection. - - - The parameter is not a . - - The parameter does not exist in the collection. - - - - Gets an Integer that contains the number of elements in the - - . - - - The number of elements in the as an Integer. - - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true if the has a fixed size; otherwise false. - - - - - Gets a value that indicates whether the - - is read-only. - - - Returns true if the is read only; otherwise false. - - - - - Gets a value that indicates whether the - - is synchronized. - - - Returns true if the is synchronized; otherwise false. - - - - - Gets an object that can be used to synchronize access to the - - . - - - An object that can be used to synchronize access to the - - . - - - - - Gets the at the specified index. - - - The at the specified index. - - The zero-based index of the parameter to retrieve. - The specified index does not exist. - - - - Gets the with the specified name. - - - The with the specified name. - - The name of the parameter to retrieve. - The specified name does not exist. - - - - Class representing a command for the conceptual layer - - - - - Initializes a new instance of the class using the specified values. - - - - - Initializes a new instance of the class with the specified statement. - - The text of the command. - - - - Constructs the EntityCommand object with the given eSQL statement and the connection object to use - - The eSQL command text to execute - The connection object - Resolver used to resolve DbProviderServices - - - - Initializes a new instance of the class with the specified statement and connection. - - The text of the command. - A connection to the data source. - - - - Initializes a new instance of the class with the specified statement, connection and transaction. - - The text of the command. - A connection to the data source. - The transaction in which the command executes. - - - - Cancels the execution of an . - - - - - Creates a new instance of an object. - - - A new instance of an object. - - - - - Create and return a new parameter object representing a parameter in the eSQL statement - - The parameter object. - - - Executes the command and returns a data reader. - - The that contains the results. - - - - - Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an - - out of the produced result set using the specified - - . - - - The that contains the results. - - - One of the values. - - - - - Executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - A DbDataReader object - - - Executes the current command. - The number of rows affected. - - - Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. - The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. - - - Compiles the entity-level command and creates a prepared version of the command. - - - Compiles the entity-level command and returns the store command text. - The store command text. - - - - Gets or sets the used by the - - . - - The connection used by the entity command. - - - - The connection object used for executing the command - - - - Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. - The Entity SQL statement that specifies a command or stored procedure to execute. - - - Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. - The command tree to execute. - - - Gets or sets the amount of time to wait before timing out. - The time in seconds to wait for the command to execute. - - - - Gets or sets a value that indicates how the - - property is to be interpreted. - - - One of the enumeration values. - - - - Gets the parameters of the Entity SQL statement or stored procedure. - The parameters of the Entity SQL statement or stored procedure. - - - - The collection of parameters for this command - - - - - Gets or sets the transaction within which the executes. - - - The transaction within which the executes. - - - - - The transaction that this command executes in - - - - Gets or sets how command results are applied to rows being updated. - - One of the values. - - - - Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. - true if the command object should be visible in a Windows Form Designer control; otherwise, false. - - - Gets or sets a value that indicates whether the query plan caching is enabled. - true if the query plan caching is enabled; otherwise, false. - - - - Class representing a connection for the conceptual layer. An entity connection may only - be initialized once (by opening the connection). It is subsequently not possible to change - the connection string, attach a new store connection, or change the store connection string. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, based on the connection string. - - The provider-specific connection string. - An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. - - - - Initializes a new instance of the class with a specified - and - . - - - A to be associated with this - . - - - The underlying data source connection for this object. - - The workspace or connection parameter is null. - The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. - The connection is not from an ADO.NET Entity Framework-compatible provider. - - - - Constructs the EntityConnection from Metadata loaded in memory - - Workspace containing metadata information. - Store connection. - If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. - - - - Returns the associated with this - - . - - - The associated with this - - . - - The inline connection string contains an invalid Metadata keyword value. - - - Establishes a connection to the data source by calling the underlying data provider's Open method. - An error occurs when you open the connection, or the name of the underlying data provider is not known. - The inline connection string contains an invalid Metadata keyword value. - - - - Creates a new instance of an , with the - - set to this - - . - - - An object. - - The name of the underlying data provider is not known. - - - - Create a new command object that uses this connection object - - The command object. - - - Closes the connection to the database. - An error occurred when closing the connection. - - - Not supported. - Not supported. - When the method is called. - - - Begins a transaction by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - Begins a transaction with the specified isolation level by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - The isolation level of the transaction. - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - - Begins a database transaction - - The isolation level of the transaction - An object representing the new transaction - - - - Enlists this in the specified transaction. - - The transaction object to enlist into. - - The state of the is not - - . - - - - - Cleans up this connection object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets or sets the connection string. - - The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. - - An attempt was made to set the property after the - - ’s was initialized. The - - is initialized either when the instance is constructed through the overload that takes a - - as a parameter, or when the - - instance has been opened. - - An invalid connection string keyword has been provided or a required connection string keyword has not been provided. - - - Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. - The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. - The value set is less than 0. - - - Gets the name of the current database, or the database that will be used after a connection is opened. - The value of the Database property of the underlying data provider. - The underlying data provider is not known. - - - - Gets the state of the EntityConnection, which is set up to track the state of the underlying - database connection that is wrapped by this EntityConnection. - - - - Gets the name or network address of the data source to connect to. - The name of the data source. The default value is an empty string. - The underlying data provider is not known. - - - Gets a string that contains the version of the data source to which the client is connected. - The version of the data source that is contained in the provider connection string. - The connection is closed. - - - - Gets the provider factory associated with EntityConnection - - - - - Provides access to the underlying data source connection that is used by the - - object. - - - The for the data source connection. - - - - - Gets the current transaction that this connection is enlisted in. May be null. - - - - - Class representing a connection string builder for the entity client provider - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class using the supplied connection string. - - A provider-specific connection string to the underlying data source. - - - - Clears the contents of the instance. - - - - - Determines whether the contains a specific key. - - - Returns true if the contains an element that has the specified key; otherwise, false. - - - The key to locate in the . - - - - - Retrieves a value corresponding to the supplied key from this - - . - - Returns true if keyword was found in the connection string; otherwise, false. - The key of the item to retrieve. - The value corresponding to keyword. - keyword contains a null value (Nothing in Visual Basic). - - - - Removes the entry with the specified key from the - - instance. - - Returns true if the key existed in the connection string and was removed; false if the key did not exist. - - The key of the keyword/value pair to be removed from the connection string in this - - . - - keyword is null (Nothing in Visual Basic) - - - Gets or sets the name of a section as defined in a configuration file. - The name of a section in a configuration file. - - - Gets or sets the name of the underlying .NET Framework data provider in the connection string. - The invariant name of the underlying .NET Framework data provider. - - - Gets or sets the metadata locations in the connection string. - Gets or sets the metadata locations in the connection string. - - - Gets or sets the inner, provider-specific connection string. - The inner, provider-specific connection string. - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true in every case, because the - - supplies a fixed-size collection of keyword/value pairs. - - - - - Gets an that contains the keys in the - - . - - - An that contains the keys in the - - . - - - - Gets or sets the value associated with the specified key. In C#, this property is the indexer. - The value associated with the specified key. - The key of the item to get or set. - keyword is a null reference (Nothing in Visual Basic). - Tried to add a key that does not exist in the available keys. - Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). - - - - A data reader class for the entity client provider - - - - - Closes the object. - - - - - Releases the resources consumed by this and calls - - . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the value of the specified column as a Boolean. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a byte. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of bytes read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the value of the specified column as a single character. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of characters read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the name of the data type of the specified column. - The name of the data type. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - - Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. - - A data reader. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a double-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the data type of the specified column. - The data type of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a single-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a globally-unique identifier (GUID). - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 16-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 32-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 64-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the name of the column, given the zero-based column ordinal. - The name of the specified column. - The zero-based column ordinal. - - - Gets the column ordinal given the name of the column. - The zero-based column ordinal. - The name of the column. - The name specified is not a valid column name. - - - Returns the provider-specific field type of the specified column. - - The object that describes the data type of the specified column. - - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Gets all provider-specific attribute columns in the collection for the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - - Returns a that describes the column metadata of the - - . - - - A that describes the column metadata. - - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Populates an array of objects with the column values of the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - Gets a value that indicates whether the column contains nonexistent or missing values. - - true if the specified column is equivalent to ; otherwise, false. - - The zero-based column ordinal. - - - Advances the reader to the next result when reading the results of a batch of statements. - true if there are more result sets; otherwise, false. - - - Advances the reader to the next record in a result set. - true if there are more rows; otherwise, false. - - - - Returns an that can be used to iterate through the rows in the data reader. - - - An that can be used to iterate through the rows in the data reader. - - - - - Returns a nested . - - The nested data record. - The number of the DbDataRecord to return. - - - - Returns nested readers as objects. - - - The nested readers as objects. - - The ordinal of the column. - - - Gets a value indicating the depth of nesting for the current row. - The depth of nesting for the current row. - - - Gets the number of columns in the current row. - The number of columns in the current row. - - - - Gets a value that indicates whether this contains one or more rows. - - - true if the contains one or more rows; otherwise, false. - - - - - Gets a value indicating whether the is closed. - - - true if the is closed; otherwise, false. - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The name of the column. - - - - Gets the number of fields in the that are not hidden. - - The number of fields that are not hidden. - - - - Gets for this - - . - - The information of a data record. - - - - Class representing a parameter used in EntityCommand - - - - - Initializes a new instance of the class using the default values. - - - - - Initializes a new instance of the class using the specified parameter name and data type. - - The name of the parameter. - - One of the values. - - - - - Initializes a new instance of the class using the specified parameter name, data type and size. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - The name of the source column. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - One of the values. - - true to indicate that the parameter accepts null values; otherwise, false. - The number of digits used to represent the value. - The number of decimal places to which value is resolved. - The name of the source column. - - One of the values. - - The value of the parameter. - - - - Resets the type associated with the . - - - - Returns a string representation of the parameter. - A string representation of the parameter. - - - Gets or sets the name of the entity parameter. - The name of the entity parameter. - - - - Gets or sets the of the parameter. - - - One of the values. - - - - Gets or sets the type of the parameter, expressed as an EdmType. - The type of the parameter, expressed as an EdmType. - - - - Gets or sets the number of digits used to represent the - - property. - - The number of digits used to represent the value. - - - - Gets or sets the number of decimal places to which - - is resolved. - - The number of decimal places to which value is resolved. - - - Gets or sets the value of the parameter. - The value of the parameter. - - - Gets or sets the direction of the parameter. - - One of the values. - - - - Gets or sets a value that indicates whether the parameter accepts null values. - true if null values are accepted; otherwise, false. - - - Gets or sets the maximum size of the data within the column. - The maximum size of the data within the column. - - - - Gets or sets the name of the source column mapped to the and used for loading or returning the - - . - - The name of the source column mapped to the dataset and used for loading or returning the value. - - - Gets or sets a value that indicates whether source column is nullable. - true if source column is nullable; otherwise, false. - - - - Gets or sets the to use when loading the value. - - - One of the values. - - - - - Class representing a provider factory for the entity client provider - - - - - A singleton object for the entity client provider factory object. - This remains a public field (not property) because DbProviderFactory expects a field. - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - This method is currently not supported. - - - - Returns the requested class. - - - A new instance of . The supported types are - - , - - , and - - . Returns null (or Nothing in Visual Basic) for every other type. - - - The to return. - - - - - Class representing a transaction for the conceptual layer - - - - Commits the underlying transaction. - - - Rolls back the underlying transaction. - - - - Cleans up this transaction object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets for this - - . - - - An to the underlying data source. - - - - - The connection object owning this transaction object - - - - - Gets the isolation level of this . - - - An enumeration value that represents the isolation level of the underlying transaction. - - - - - Gets the DbTransaction for the underlying provider transaction. - - - - - Represents a failure while trying to prepare or execute a CommandCompilation - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents a failure while trying to prepare or execute a CommandExecution - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - An identifier for an entity. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with an entity set name and a generic - - collection. - - - A that is the entity set name qualified by the entity container name. - - - A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the - - . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. - - - - - Initializes a new instance of the class with an entity set name and an - - collection of - - objects. - - - A that is the entity set name qualified by the entity container name. - - - An collection of - - objects with which to initialize the key. - - - - - Initializes a new instance of the class with an entity set name and specific entity key pair. - - - A that is the entity set name qualified by the entity container name. - - - A that is the name of the key. - - - An that is the key value. - - - - Gets the entity set for this entity key from the given metadata workspace. - - The for the entity key. - - The metadata workspace that contains the entity. - The entity set could not be located in the specified metadata workspace. - - - Returns a value that indicates whether this instance is equal to a specified object. - true if this instance and obj have equal values; otherwise, false. - - An to compare with this instance. - - - - - Returns a value that indicates whether this instance is equal to a specified - - . - - true if this instance and other have equal values; otherwise, false. - - An object to compare with this instance. - - - - - Serves as a hash function for the current object. - - is suitable for hashing algorithms and data structures such as a hash table. - - - A hash code for the current . - - - - - Compares two objects. - - true if the key1 and key2 values are equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Compares two objects. - - true if the key1 and key2 values are not equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream and provides an additional caller-defined context. - - - - Gets a singleton EntityKey by which a read-only entity is identified. - - - - - Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. - - - - Gets or sets the name of the entity set. - - A value that is the name of the entity set for the entity to which the - - belongs. - - - - Gets or sets the name of the entity container. - - A value that is the name of the entity container for the entity to which the - - belongs. - - - - - Gets or sets the key values associated with this . - - - A of key values for this - - . - - - - - Gets a value that indicates whether the is temporary. - - - true if the is temporary; otherwise, false. - - - - - Information about a key that is part of an EntityKey. - A key member contains the key name and value. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified entity key pair. - - The name of the key. - The key value. - - - Returns a string representation of the entity key. - A string representation of the entity key. - - - Gets or sets the name of the entity key. - The key name. - - - Gets or sets the value of the entity key. - The key value. - - - - Kind of collection (applied to Properties) - - - - - Property is not a Collection - - - - - Collection has Bag semantics( unordered and duplicates ok) - - - - - Collection has List semantics - (Order is deterministic and duplicates ok) - - - - - The concurrency mode for properties. - - - - - Default concurrency mode: the property is never validated - at write time - - - - - Fixed concurrency mode: the property is always validated at - write time - - - - - The pattern for Server Generated Properties. - - - - - Not a Server Generated Property. This is the default. - - - - - A value is generated on INSERT, and remains unchanged on update. - - - - - A value is generated on both INSERT and UPDATE. - - - - - Represents an eSQL Query compilation exception; - The class of exceptional conditions that may cause this exception to be raised are mainly: - 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; - 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information - not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. - For more information, see eSQL Language Spec. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - Gets a description of the error. - A string that describes the error. - - - Gets the approximate context where the error occurred, if available. - A string that describes the approximate context where the error occurred, if available. - - - Gets the approximate line number where the error occurred. - An integer that describes the line number where the error occurred. - - - Gets the approximate column number where the error occurred. - An integer that describes the column number where the error occurred. - - - - Thrown to indicate that a command tree is invalid. - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - Mapping exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Class for representing a collection of mapping items in Edm space. - - - - - Base class for the type created at design time to store the generated views. - - - - Returns the key/value pair at the specified index, which contains the view and its key. - The key/value pair at index , which contains the view and its key. - The index of the view. - - - - Gets or sets the name of . - - The container name. - - - - Gets or sets in storage schema. - - Container name. - - - Hash value. - Hash value. - - - Hash value of views. - Hash value. - - - Gets or sets view count. - View count. - - - - Attribute to mark the assemblies that contain the generated views type. - - - - - Initializes a new instance of the class. - - The view type. - - - Gets the T:System.Type of the view. - The T:System.Type of the view. - - - - Represents a complex type mapping for a function import result. - - - - - Specifies a function import structural type mapping. - - - - - Gets the property mappings for the result type of a function import. - - - - - Initializes a new FunctionImportComplexTypeMapping instance. - - The return type. - The property mappings for the result type of a function import. - - - - Ges the return type. - - - - - Represents a function import entity type mapping. - - - - - Initializes a new FunctionImportEntityTypeMapping instance. - - The entity types at the base of - the type hierarchies to be mapped. - The entity types to be mapped. - The property mappings for the result types of a function import. - The mapping conditions. - - - - Gets the entity types being mapped. - - - - - Gets the entity types at the base of the hierarchies being mapped. - - - - - Gets the mapping conditions. - - - - - Represents a mapping condition for a function import result. - - - - - - - - Gets the name of the column used to evaluate the condition. - - - - - Represents a mapping condition for the result of a function import - evaluated by checking null or not null. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. - - The name of the column used to evaluate the condition. - Flag that indicates whether a null or not null check is performed. - - - - Gets a flag that indicates whether a null or not null check is performed. - - - - - Represents a mapping condition for the result of a function import, - evaluated by comparison with a specified value. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionValue instance. - - The name of the column used to evaluate the condition. - The value to compare with. - - - - Gets the value used for comparison. - - - - - Represents a mapping from a model function import to a store composable or non-composable function. - - - - - Gets model function (or source of the mapping) - - - - - Gets store function (or target of the mapping) - - - - - Represents a mapping from a model function import to a store composable function. - - - - - Initializes a new FunctionImportMappingComposable instance. - - The model function import. - The store composable function. - The result mapping for the function import. - The parent container mapping. - - - - Gets the result mapping for the function import. - - - - - Represents a mapping from a model function import to a store non-composable function. - - - - - Initializes a new FunctionImportMappingNonComposable instance. - - The model function import. - The store non-composable function. - The function import result mappings. - The parent container mapping. - - - - Gets the function import result mappings. - - - - - Base class for mapping a property of a function import return type. - - - - - Maps a function import return type property to a table column. - - - - - Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. - - The mapped property name. - The mapped column name. - - - - Gets the mapped property name. - - - - - Gets the mapped column name. - - - - - Represents the base item class for all the mapping metadata - - - - - Represents the base item class for all the metadata - - - - - Describes modification function mappings for an association set. - - - - - Initalizes a new AssociationSetModificationFunctionMapping instance. - - An association set. - A delete function mapping. - An insert function mapping. - - - - - - - Gets the association set. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Describes modification function mappings for an entity type within an entity set. - - - - - Initializes a new EntityTypeModificationFunctionMapping instance. - - An entity type. - A delete function mapping. - An insert function mapping. - An updated function mapping. - - - - - - - Gets the entity type. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Gets hte update function mapping. - - - - - Describes the location of a member within an entity or association type structure. - - - - - Initializes a new ModificationFunctionMemberPath instance. - - Gets the members in the path from the leaf (the member being bound) - to the root of the structure. - Gets the association set to which we are navigating - via this member. If the value is null, this is not a navigation member path. - - - - - - - Gets the members in the path from the leaf (the member being bound) - to the Root of the structure. - - - - - Gets the association set to which we are navigating via this member. If the value - is null, this is not a navigation member path. - - - - - Binds a modification function parameter to a member of the entity or association being modified. - - - - - Initializes a new ModificationFunctionParameterBinding instance. - - The parameter taking the value. - The path to the entity or association member defining the value. - A flag indicating whether the current or original member value is being bound. - - - - - - - Gets the parameter taking the value. - - - - - Gets the path to the entity or association member defining the value. - - - - - Gets a flag indicating whether the current or original - member value is being bound. - - - - - Defines a binding from a named result set column to a member taking the value. - - - - - Initializes a new ModificationFunctionResultBinding instance. - - The name of the column to bind from the function result set. - The property to be set on the entity. - - - - - - - Gets the name of the column to bind from the function result set. - - - - - Gets the property to be set on the entity. - - - - - Represents the Mapping metadata for an AssociationSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the AssociationSetMapping elements in the - above example. And it is possible to access the AssociationTypeMap underneath it. - There will be only one TypeMap under AssociationSetMap. - - - - - Represents the Mapping metadata for an Extent in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for all the extent map elements in the - above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - - - Gets the parent container mapping. - - - - - Gets or sets the query view associated with this mapping. - - - - - Initializes a new AssociationSetMapping instance. - - The association set to be mapped. - The store entity set to be mapped. - The parent container mapping. - - - - Adds a property mapping condition. - - The condition to add. - - - - Removes a property mapping condition. - - The property mapping condition to remove. - - - - Gets the association set that is mapped. - - - - - Gets the contained association type mapping. - - - - - Gets or sets the corresponding function mapping. Can be null. - - - - - Gets the store entity set that is mapped. - - - - - Gets or sets the source end property mapping. - - - - - Gets or sets the target end property mapping. - - - - - Gets the property mapping conditions. - - - - - Represents the Mapping metadata for an association type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all association Type map elements in the - above example. Users can access the table mapping fragments under the - association type mapping through this class. - - - - - Represents the Mapping metadata for a type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all the Type map elements in the - above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. - The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. - - - - - Creates an AssociationTypeMapping instance. - - The AssociationSetMapping that - the contains this AssociationTypeMapping. - - - - Gets the AssociationSetMapping that contains this AssociationTypeMapping. - - - - - Gets the association type being mapped. - - - - - Gets the single mapping fragment. - - - - - Mapping metadata for Complex properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the complex property map elements in the - above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based - on the type of the ComplexProperty in case of inheritance. - - - - - Construct a new Complex Property mapping object - - The MemberMetadata object that represents this Complex member - - - - Adds a type mapping corresponding to a nested complex type. - - The complex type mapping to be added. - - - - Removes a type mapping corresponding to a nested complex type. - - The complex type mapping to be removed. - - - - Gets a read only collections of type mappings corresponding to the - nested complex types. - - - - - Mapping metadata for Complex Types. - - - - - Creates a ComplexTypeMapping instance. - - The ComplexType being mapped. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the ComplexType being mapped. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Mapping metadata for End property of an association. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the end property map elements in the - above example. EndPropertyMaps provide mapping for each end of the association. - - - - - Creates an association end property mapping. - - An AssociationEndMember that specifies - the association end to be mapped. - - - - Adds a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be added. - - - - Removes a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be removed. - - - - Gets an AssociationEndMember that specifies the mapped association end. - - - - - Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children - of this association end property mapping. - - - - - Represents the Mapping metadata for the EntityContainer map in CS space. - Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. - - - For Example if conceptually you could represent the CS MSL file as following - ---Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --AssociationSetMapping - The type represents the metadata for EntityContainerMapping element in the above example. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - We currently assume that an Entity Container on the C side - is mapped to a single Entity Container in the S - space. - - - - - Initializes a new EntityContainerMapping instance. - - The conceptual entity container to be mapped. - The store entity container to be mapped. - The parent mapping item collection. - Flag indicating whether to generate update views. - - - - Adds an entity set mapping. - - The entity set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds an association set mapping. - - The association set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds a function import mapping. - - The function import mapping to add. - - - - Removes a function import mapping. - - The function import mapping to remove. - - - - Gets the parent mapping item collection. - - - - - Gets the type kind for this item - - - - - Gets the conceptual entity container. - - - - - Gets the store entity container. - - - - - Gets the entity set mappings. - - - - - Gets the association set mappings. - - - - - Gets the function import mappings. - - - - - Gets a flag that indicates whether to generate the update views or not. - - - - - Represents the Mapping metadata for an EnitytSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the EntitySetMapping elements in the - above example. And it is possible to access the EntityTypeMaps underneath it. - - - - - Initialiazes a new EntitySetMapping instance. - - The entity set to be mapped. - The parent container mapping. - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Adds a function mapping. - - The function mapping to add. - - - - Removes a function mapping. - - The function mapping to remove. - - - - Gets the entity set that is mapped. - - - - - Gets the contained entity type mappings. - - - - - Gets the corresponding function mappings. - - - - - Mapping metadata for Entity type. - If an EntitySet represents entities of more than one type, than we will have - more than one EntityTypeMapping for an EntitySet( For ex : if - PersonSet Entity extent represents entities of types Person and Customer, - than we will have two EntityType Mappings under mapping for PersonSet). - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all entity Type map elements in the - above example. Users can access the table mapping fragments under the - entity type mapping through this class. - - - - - Creates an EntityTypeMapping instance. - - The EntitySetMapping that contains this EntityTypeMapping. - - - - Adds an entity type to the mapping. - - The EntityType to be added. - - - - Removes an entity type from the mapping. - - The EntityType to be removed. - - - - Adds an entity type hierarchy to the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be added. - - - - Removes an entity type hierarchy from the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be removed. - - - - Adds a mapping fragment. - - The mapping fragment to be added. - - - - Removes a mapping fragment. - - The mapping fragment to be removed. - - - - Gets the EntitySetMapping that contains this EntityTypeMapping. - - - - - Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. - - - - - Gets a flag that indicates whether this is a type hierarchy mapping. - - - - - Gets a read-only collection of mapping fragments. - - - - - Gets the mapped entity types. - - - - - Gets the mapped base types for a hierarchy mapping. - - - - - Represents the metadata for mapping fragment. - A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) - Each MappingFragment provides mapping for those properties of a type that map to a single table. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the mapping fragment elements in the - above example. Users can access all the top level constructs of - MappingFragment element like EntityKey map, Property Maps, Discriminator - property through this mapping fragment class. - - - - - Creates a MappingFragment instance. - - The EntitySet corresponding to the table of view being mapped. - The TypeMapping that contains this MappingFragment. - Flag that indicates whether to include 'DISTINCT' when generating queries. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the EntitySet corresponding to the table or view being mapped. - - - - - Gets the TypeMapping that contains this MappingFragment. - - - - - Gets a flag that indicates whether to include 'DISTINCT' when generating queries. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents a collection of items in Storage Mapping (CS Mapping) space. - - - - Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. - The that this mapping is to use. - The that this mapping is to use. - The file paths that this mapping is to use. - - - Initializes a new instance of the class using the specified , and XML readers. - The that this mapping is to use. - The that this mapping is to use. - The XML readers that this mapping is to use. - - - - Computes a hash value for the container mapping specified by the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A string that specifies the computed hash value. - - - - Computes a hash value for the single container mapping in the collection. - - A string that specifies the computed hash value. - - - - Creates a dictionary of (extent, generated view) for a container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Creates a dictionary of (extent, generated view) for the single container mapping - in the collection. - - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Factory method that creates a . - - - The edm metadata collection to map. Must not be null. - - - The store metadata collection to map. Must not be null. - - - MSL artifacts to load. Must not be null. - - - Paths to MSL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - - Gets or sets a for creating instances - that are used to retrieve pre-generated mapping views. - - - - Gets the version of this represents. - The version of this represents. - - - - Describes modification function binding for change processing of entities or associations. - - - - - Initializes a new ModificationFunctionMapping instance. - - The entity or association set. - The entity or association type. - The metadata of function to which we should bind. - Bindings for function parameters. - The output parameter producing number of rows affected. - Bindings for the results of function evaluation - - - - - - - Gets output parameter producing number of rows affected. May be null. - - - - - Gets Metadata of function to which we should bind. - - - - - Gets bindings for function parameters. - - - - - Gets bindings for the results of function evaluation. - - - - - Mapping metadata for scalar properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the scalar property map elements in the - above example. - - - - - Creates a mapping between a simple property and a column. - - The property to be mapped. - The column to be mapped. - - - - Gets an EdmProperty that specifies the mapped column. - - - - - metadata exception class - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - DataSpace - - - - - OSpace indicates the item in the clr space - - - - - CSpace indicates the item in the CSpace - edm primitive types + - types defined in csdl - - - - - SSpace indicates the item in the SSpace - - - - - Mapping between OSpace and CSpace - - - - - Mapping between CSpace and SSpace - - - - - This class encapsulates the error information for a generic EDM error. - - - - Gets the error message. - The error message. - - - - Class for representing a collection of items in Edm space. - - - - - Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - - Initializes a new instance of the class. - The entity data model. - - - - Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. - - The paths where the conceptual schema definition language (CSDL) files exist. - - - - Returns a collection of the objects. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - - - - Returns a collection of the objects with the specified conceptual model version. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - The conceptual model version. - - - - Factory method that creates an . - - - CSDL artifacts to load. Must not be null. - - - Paths to CSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the conceptual model version for this collection. - The conceptual model version for this collection. - - - - This class encapsulates the error information for a schema error that was encountered. - - - - - Constructs a EdmSchemaError object. - - The explanation of the error. - The code associated with this error. - The severity of the error. - - - Returns the error message. - The error message. - - - Gets the error code. - The error code. - - - Gets the severity level of the error. - - One of the values. The default is - - . - - - - Gets the line number where the error occurred. - The line number where the error occurred. - - - Gets the column where the error occurred. - The column where the error occurred. - - - Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. - The location of the schema that contains the error. - - - Gets the name of the schema that contains the error. - The name of the schema that contains the error. - - - Gets a string representation of the stack trace at the time the error occurred. - A string representation of the stack trace at the time the error occurred. - - - - Defines the different severities of errors that can occur when validating an Entity Framework model. - - - - - A warning that does not prevent the model from being used. - - - - - An error that prevents the model from being used. - - - - - Represents a end of a Association Type - - - - - Initializes a new instance of the RelationshipEndMember class - - - - - Represents the edm member class - - - - Returns the name of this member. - The name of this member. - - - - Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database - column for this property. In the conceptual model, this should align with the corresponding property from the entity class - and should not be changed. - - The name of this member. - - - Gets the type on which this member is declared. - - A object that represents the type on which this member is declared. - - - - - Gets the instance of the class that contains both the type of the member and facets for the type. - - - A object that contains both the type of the member and facets for the type. - - - - - Tells whether this member is marked as a Computed member in the EDM definition - - - - - Tells whether this member's Store generated pattern is marked as Identity in the EDM definition - - - - Access the EntityType of the EndMember in an association. - The EntityType of the EndMember in an association. - - - Gets the operational behavior of this relationship end member. - - One of the values. The default is - - . - - - - Gets the multiplicity of this relationship end member. - - One of the values. - - - - - Creates a read-only AssociationEndMember instance. - - The name of the association end member. - The reference type for the end. - The multiplicity of the end. - Flag that indicates the delete behavior of the end. - Metadata properties to be associated with the instance. - The newly created AssociationEndMember instance. - The specified name is null or empty. - The specified reference type is null. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Class for representing an Association set - - - - - Class for representing a relationship set - - - - - Class for representing a entity set - - - - Returns the name of the current entity or relationship set. - The name of the current entity or relationship set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets escaped provider specific SQL describing this entity set. - - - - - Gets or sets the name of the current entity or relationship set. - If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. - To change the table name of a store space use the Table property. - - The name of the current entity or relationship set. - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - Gets the entity container of the current entity or relationship set. - - An object that represents the entity container of the current entity or relationship set. - - Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database table name for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database schema for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets the relationship type of this . - - - An object that represents the relationship type of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Creates a read-only AssociationSet instance from the specified parameters. - - The name of the association set. - The association type of the elements in the association set. - The entity set for the source association set end. - The entity set for the target association set end. - Metadata properties to be associated with the instance. - The newly created AssociationSet instance. - The specified name is null or empty. - The specified association type is null. - - The entity type of one of the ends of the specified - association type does not match the entity type of the corresponding entity set end. - - - - - Gets the association related to this . - - - An object that represents the association related to this - - . - - - - - Gets the ends of this . - - - A collection of type that contains the ends of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents built-in type kind for this - - . - - - - - Class representing a AssociationSet End - - - - - Returns the name of the End role for this . - - - The name of the End role for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the parent association set of this . - - - An object that represents the parent association set of this - - . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the End member that this object corresponds to. - - - An object that represents the End member that this - - object corresponds to. - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the name of the End for this . - - - The name of the End for this . - - - - - Gets the name of the End role for this . - - - The name of the End role for this . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - Gets the entity set referenced by this End role. - - An object that represents the entity set referred by this End role. - - - - - Describes an association/relationship between two entities in the conceptual model or a foreign key relationship - between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. - If a foreign key is defined the property will be true and the property will contain details of the foreign keys - - - - - Represents the Relationship type - - - - - Represents the Entity Type - - - - - Represents the Structural Type - - - - - Base EdmType class for all the model types - - - - Returns the full name of this type. - The full name of this type. - - - - Returns an instance of the whose element type is this type. - - - The object whose element type is this type. - - - - Gets the name of this type. - The name of this type. - - - Gets the namespace of this type. - The namespace of this type. - - - Gets a value indicating whether this type is abstract or not. - true if this type is abstract; otherwise, false. - Thrown if the setter is called on instance that is in ReadOnly state - - - Gets the base type of this type. - The base type of this type. - Thrown if the setter is called on instance that is in ReadOnly state - Thrown if the value passed in for setter will create a loop in the inheritance chain - - - Gets the full name of this type. - The full name of this type. - - - - Adds a member to this type - - The member to add - - - Removes a member from this type. - The member to remove. - - - Gets the list of members on this type. - - A collection of type that contains a set of members on this type. - - - - - Adds the specified property to the list of keys for the current entity. - - The property to add. - if member argument is null - Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type - If the EntityType instance is in ReadOnly state - - - Removes the specified key member from the collection. - The key member to remove. - - - Gets the list of all the key members for the current entity or relationship type. - - A object that represents the list of key members for the current entity or relationship type. - - - - Gets the list of all the key properties for this entity type. - The list of all the key properties for this entity type. - - - Gets the list of ends for this relationship type. - - A collection of type that contains the list of Ends for this relationship type. - - - - - Creates a read-only AssociationType instance from the specified parameters. - - The name of the association type. - The namespace of the association type. - Flag that indicates a foreign key (FK) relationship. - The data space for the association type. - The source association end member. - The target association end member. - A referential constraint. - Metadata properties to be associated with the instance. - The newly created AssociationType instance. - The specified name is null or empty. - The specified namespace is null or empty. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of ends for this . - - - A collection of type that contains the list of ends for this - - . - - - - Gets or sets the referential constraint. - The referential constraint. - - - - Gets the list of constraints for this . - - - A collection of type that contains the list of constraints for this - - . - - - - Gets the Boolean property value that specifies whether the column is a foreign key. - A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. - - - - Represents the structure of an . In the conceptual-model this represents the shape and structure - of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. - - - - - Returns a object that references this - - . - - - A object that references this - - . - - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - The base type. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - Adds the specified navigation property to the members of this type. - The navigation property is added regardless of the read-only flag. - - The navigation property to be added. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the declared navigation properties associated with the entity type. - The declared navigation properties associated with the entity type. - - - - Gets the navigation properties of this . - - - A collection of type that contains the list of navigation properties on this - - . - - - - Gets the list of declared properties for the entity type. - The declared properties for the entity type. - - - Gets the collection of declared members for the entity type. - The collection of declared members for the entity type. - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Represents an enumeration type. - - - - - Class representing a simple type - - - - - Creates a read-only EnumType instance. - - The name of the enumeration type. - The namespace of the enumeration type. - The underlying type of the enumeration type. - Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. - The members of the enumeration type. - Metadata properties to be associated with the enumeration type. - The newly created EnumType instance. - underlyingType is null. - - name is null or empty. - -or- - namespaceName is null or empty. - -or- - underlyingType is not a supported underlying type. - -or- - The specified members do not have unique names. - -or- - The value of a specified member is not in the range of the underlying type. - - - - Returns the kind of the type - - - Gets a collection of enumeration members for this enumeration type. - - - Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) - - - Gets the underlying type for this enumeration type. - - - - Specifies the kinds of item attributes in the conceptual model. - - - - - An enumeration member indicating that an item attribute is System - - - - - An enumeration member indicating that an item attribute is Extended. - - - - - List of all the built in types - - - - - Association Type Kind - - - - - AssociationSetEnd Kind - - - - - AssociationSet Kind - - - - - Association Type Kind - - - - - EntitySetBase Kind - - - - - Entity Type Base Kind - - - - - Collection Type Kind - - - - - Collection Kind - - - - - Complex Type Kind - - - - - Documentation Kind - - - - - DeleteAction Type Kind - - - - - Edm Type Kind - - - - - Entity Container Kind - - - - - Entity Set Kind - - - - - Entity Type Kind - - - - - Enumeration Type Kind - - - - - Enum Member Kind - - - - - Facet Kind - - - - - EdmFunction Kind - - - - - Function Parameter Kind - - - - - Global Item Type Kind - - - - - Metadata Property Kind - - - - - Navigation Property Kind - - - - - Metadata Item Type Kind - - - - - EdmMember Type Kind - - - - - Parameter Mode Kind - - - - - Primitive Type Kind - - - - - Primitive Type Kind Kind - - - - - EdmProperty Type Kind - - - - - ProviderManifest Type Kind - - - - - Referential Constraint Type Kind - - - - - Ref Type Kind - - - - - RelationshipEnd Type Kind - - - - - Relationship Multiplicity Type Kind - - - - - Relationship Set Type Kind - - - - - Relationship Type - - - - - Row Type Kind - - - - - Simple Type Kind - - - - - Structural Type Kind - - - - - Type Information Kind - - - - - Represents the Edm Collection Type - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - The instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - - - Represents the Edm Complex Type. This can be used to configure complex types - from a conceptual-space model-based convention. Complex types are not supported in the store model. - - - - - Creates a new instance of the type. - - The name of the complex type. - The namespace of the complex type. - The dataspace to which the complex type belongs to. - Members of the complex type. - Metadata properties to be associated with the instance. - Thrown if either name, namespace or members argument is null. - - A new instance a the type. - - - The newly created will be read only. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Class representing the Documentation associated with an item - - - - - Initializes a new Documentation instance. - - A summary string. - A long description string. - - - - Returns the summary for this . - - - The summary for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the summary for this . - - - The summary for this . - - - - - Gets the long description for this . - - - The long description for this . - - - - - Gets a value indicating whether this object contains only a null or an empty - - and a - - . - - - true if this object contains only a null or an empty - - and a - - ; otherwise, false. - - - - - Class for representing a function - - - - - Adds a parameter to this function. - - The parameter to be added. - - - - The factory method for constructing the object. - - The name of the function. - The namespace of the function. - The namespace the function belongs to. - Additional function attributes and properties. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - One of the enumeration values of the enumeration. - - - - Returns the full name (namespace plus name) of this type. - The full name of the type. - - - - Gets the parameters of this . - - - A collection of type that contains the parameters of this - - . - - - - - Gets the return parameter of this . - - - A object that represents the return parameter of this - - . - - - - - Gets the return parameters of this . - - - A collection of type that represents the return parameters of this - - . - - - - Gets the store function name attribute of this function. - - - Gets the parameter type semantics attribute of this function. - - - Gets the aggregate attribute of this function. - - - - Gets a value indicating whether built in attribute is present on this function. - - - true if the attribute is present; otherwise, false. - - - - - Gets a value indicating whether this instance is from the provider manifest. - - - true if this instance is from the provider manifest; otherwise, false. - - - - - Gets a value indicating whether the is a niladic function (a function that accepts no arguments). - - - true if the function is niladic; otherwise, false. - - - - Gets whether this instance is mapped to a function or to a stored procedure. - true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. - - - Gets a query in the language that is used by the database management system or storage model. - - A string value in the syntax used by the database management system or storage model that contains the query or update statement of the - - . - - - - Gets or sets the schema associated with the function. - The schema associated with the function. - - - - In conceptual-space, EdmProperty represents a property on an Entity. - In store-space, EdmProperty represents a column in a table. - - - - Creates a new primitive property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new enum property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new complex property. - The newly created property. - The name of the property. - The type of the property. - - - - Creates a new instance of EdmProperty type. - - Name of the property. - - Property - - A new instance of EdmProperty type - - - Sets the metadata properties. - The metadata properties to be set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a value indicating whether this can have a null value. - - - Nullability in the conceptual model and store model is a simple indication of whether or not - the property is considered nullable. Nullability in the object model is more complex. - When using convention based mapping (as usually happens with POCO entities), a property in the - object model is considered nullable if and only if the underlying CLR type is nullable and - the property is not part of the primary key. - When using attribute based mapping (usually used with entities that derive from the EntityObject - base class), a property is considered nullable if the IsNullable flag is set to true in the - attribute. This flag can - be set to true even if the underlying type is not nullable, and can be set to false even if the - underlying type is nullable. The latter case happens as part of default code generation when - a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. - In such a case, the Entity Framework treats the property as non-nullable even though the CLR would - allow null to be set. - There is no good reason to set a non-nullable CLR type as nullable in the object model and this - should not be done even though the attribute allows it. - - - true if this can have a null value; otherwise, false. - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets the type name of the property. - The type name of the property. - - - - Gets the default value for this . - - - The default value for this . - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets whether the property is a collection type property. - true if the property is a collection type property; otherwise, false. - - - Gets whether this property is a complex type property. - true if this property is a complex type property; otherwise, false. - - - Gets whether this property is a primitive type. - true if this property is a primitive type; otherwise, false. - - - Gets whether this property is an enumeration type property. - true if this property is an enumeration type property; otherwise, false. - - - Gets whether this property is an underlying primitive type. - true if this property is an underlying primitive type; otherwise, false. - - - Gets the complex type information for this property. - The complex type information for this property. - - - Gets the primitive type information for this property. - The primitive type information for this property. - - - Gets the enumeration type information for this property. - The enumeration type information for this property. - - - Gets the underlying primitive type information for this property. - The underlying primitive type information for this property. - - - Gets or sets the concurrency mode for the property. - The concurrency mode for the property. - - - Gets or sets the database generation method for the database column associated with this property - The store generated pattern for the property. - - - Gets or sets the kind of collection for this model. - The kind of collection for this model. - - - Gets whether the maximum length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the maximum length of the property. - The maximum length of the property. - - - Gets or sets whether this property uses the maximum length supported by the provider. - true if this property uses the maximum length supported by the provider; otherwise, false. - - - Gets whether the fixed length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether the length of this property is fixed. - true if the length of this property is fixed; otherwise, false. - - - Gets whether the Unicode facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether this property is a Unicode property. - true if this property is a Unicode property; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the precision of this property. - The precision of this property. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the scale of this property. - The scale of this property. - - - - Class for representing an entity container - - - - - Creates an entity container with the specified name and data space. - - The entity container name. - The entity container data space. - Thrown if the name argument is null. - Thrown if the name argument is empty string. - - - - Returns an object by using the specified name for the entity set. - - - An object that represents the entity set that has the specified name. - - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified name for the entity set. - - true if there is an entity set that matches the search criteria; otherwise, false. - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains an object. If there is no entity set, this output parameter contains null. - - - - - Returns a object by using the specified name for the relationship set. - - - An object that represents the relationship set that has the specified name. - - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns a object by using the specified name for the relationship set. - - true if there is a relationship set that matches the search criteria; otherwise, false. - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains a object. - - - - - Returns the name of this . - - - The name of this . - - - - - Adds the specified entity set to the container. - - The entity set to add. - - - Removes a specific entity set from the container. - The entity set to remove. - - - - Adds a function import to the container. - - The function import to add. - - - - The factory method for constructing the EntityContainer object. - - The name of the entity container to be created. - DataSpace in which this entity container belongs to. - Entity sets that will be included in the new container. Can be null. - Functions that will be included in the new container. Can be null. - Metadata properties to be associated with the instance. - The EntityContainer object. - Thrown if the name argument is null or empty string. - The newly created EntityContainer will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets a list of entity sets and association sets that this - - includes. - - - A object that contains a list of entity sets and association sets that this - - includes. - - - - Gets the association sets for this entity container. - The association sets for this entity container . - - - Gets the entity sets for this entity container. - The entity sets for this entity container . - - - - Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. - - - A that contains - - elements. - - - - - Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can - query and persist entities. In the store-model it represents a table. - From a store-space model-convention it can be used to configure - table name with property and table schema with property. - - - - - The factory method for constructing the EntitySet object. - - The name of the EntitySet. - The db schema. Can be null. - The db table. Can be null. - - The provider specific query that should be used to retrieve data for this EntitySet. Can be null. - - The entity type of the entities that this entity set type contains. - - Metadata properties that will be added to the newly created EntitySet. Can be null. - - The EntitySet object. - Thrown if the name argument is null or empty string. - The newly created EntitySet will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - - - - Represents an enumeration member. - - - - Overriding System.Object.ToString to provide better String representation for this type. - The name of this enumeration member. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - Gets the kind of this type. - - - Gets the name of this enumeration member. - - - Gets the value of this enumeration member. - - - - Class for representing a Facet object - This object is Immutable (not just set to readonly) and - some parts of the system are depending on that behavior - - - - - Returns the name of this . - - - The name of this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the description of this . - - - The object that represents the description of this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the type of this . - - - The object that represents the type of this - - . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the Facet instance is in ReadOnly state - - - Gets a value indicating whether the value of the facet is unbounded. - true if the value of the facet is unbounded; otherwise, false. - - - - Class for representing a FacetDescription object - - - - Returns the name of this facet. - The name of this facet. - - - Gets the name of this facet. - The name of this facet. - - - Gets the type of this facet. - - An object that represents the type of this facet. - - - - Gets the minimum value for this facet. - The minimum value for this facet. - - - Gets the maximum value for this facet. - The maximum value for this facet. - - - Gets the default value of a facet with this facet description. - The default value of a facet with this facet description. - - - Gets a value indicating whether the value of this facet is a constant. - true if this facet is a constant; otherwise, false. - - - Gets a value indicating whether this facet is a required facet. - true if this facet is a required facet; otherwise, false. - - - - Class representing a function parameter - - - - - Returns the name of this . - - - The name of this . - - - - - The factory method for constructing the object. - - The name of the parameter. - The EdmType of the parameter. - - The of the parameter. - - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the mode of this . - - - One of the values. - - Thrown if the FunctionParameter instance is in ReadOnly state - - - - Gets the name of this . - - - The name of this . - - - - - Gets the instance of the class that contains both the type of the parameter and facets for the type. - - - A object that contains both the type of the parameter and facets for the type. - - - - Gets the type name of this parameter. - The type name of this parameter. - - - Gets whether the max length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the maximum length of the parameter. - The maximum length of the parameter. - - - Gets whether the parameter uses the maximum length supported by the database provider. - true if parameter uses the maximum length supported by the database provider; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the precision value of the parameter. - The precision value of the parameter. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the scale value of the parameter. - The scale value of the parameter. - - - - Gets the on which this parameter is declared. - - - A object that represents the function on which this parameter is declared. - - - - - Class representing a metadata attribute for an item - - - - - The factory method for constructing the MetadataProperty object. - - The name of the metadata property. - The type usage of the metadata property. - The value of the metadata property. - The MetadataProperty object. - - Thrown is null. - - The newly created MetadataProperty will be read only. - - - - Creates a metadata annotation having the specified name and value. - - The annotation name. - The annotation value. - A MetadataProperty instance representing the created annotation. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the instance of the class that contains both the type of this - - and facets for the type. - - - A object that contains both the type of this - - and facets for the type. - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the value of this . - - - The value of this . - - - - - Gets a boolean that indicates whether the metadata property is an annotation. - - - - - Represent the edm navigation property class - - - - - Where the given navigation property is on the dependent end of a referential constraint, - returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order - of the principal end key properties. - - A collection of the foreign key properties. - - - - Creates a NavigationProperty instance from the specified parameters. - - The name of the navigation property. - Specifies the navigation property type and its facets. - The relationship type for the navigation. - The source end member in the navigation. - The target end member in the navigation. - The metadata properties of the navigation property. - The newly created NavigationProperty instance. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the relationship type that this navigation property operates on. - The relationship type that this navigation property operates on. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "to" relationship end member of this navigation. - The "to" relationship end member of this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "from" relationship end member in this navigation. - The "from" relationship end member in this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - - Represents the list of possible actions for delete operation - - - - - no action - - - - - Cascade to other ends - - - - - The enumeration defining the mode of a parameter - - - - - In parameter - - - - - Out parameter - - - - - Both in and out parameter - - - - - Return Parameter - - - - - Class representing a primitive type - - - - - Returns the equivalent of this - - . - - - For example if this instance is nvarchar and it's - base type is Edm String then the return type is Edm String. - If the type is actually already a model type then the - return type is "this". - - - An object that is an equivalent of this - - . - - - - Returns the list of primitive types. - - A collection of type that contains the list of primitive types. - - - - - Returns the equivalent of a - - . - - - An object that is an equivalent of a specified - - . - - - A value of type . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a enumeration value that indicates a primitive type of this - - . - - - A enumeration value that indicates a primitive type of this - - . - - - - - Gets the list of facet descriptions for this . - - - A collection of type that contains the list of facet descriptions for this - - . - - - - - Returns an equivalent common language runtime (CLR) type of this - - . Note that the - - property always returns a non-nullable type value. - - - A object that represents an equivalent common language runtime (CLR) type of this - - . - - - - - Primitive Types as defined by EDM - - - - - Binary Type Kind - - - - - Boolean Type Kind - - - - - Byte Type Kind - - - - - DateTime Type Kind - - - - - Decimal Type Kind - - - - - Double Type Kind - - - - - Guid Type Kind - - - - - Single Type Kind - - - - - SByte Type Kind - - - - - Int16 Type Kind - - - - - Int32 Type Kind - - - - - Int64 Type Kind - - - - - String Type Kind - - - - - Time Type Kind - - - - - DateTimeOffset Type Kind - - - - - Geometry Type Kind - - - - - Geography Type Kind - - - - - Geometric point type kind - - - - - Geometric linestring type kind - - - - - Geometric polygon type kind - - - - - Geometric multi-point type kind - - - - - Geometric multi-linestring type kind - - - - - Geometric multi-polygon type kind - - - - - Geometric collection type kind - - - - - Geographic point type kind - - - - - Geographic linestring type kind - - - - - Geographic polygon type kind - - - - - Geographic multi-point type kind - - - - - Geographic multi-linestring type kind - - - - - Geographic multi-polygon type kind - - - - - Geographic collection type kind - - - - - This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. - - - - - Constructs a new constraint on the relationship - - role from which the relationship originates - role to which the relationship is linked/targeted to - properties on entity type of to role which take part in the constraint - properties on entity type of from role which take part in the constraint - Argument Null exception if any of the arguments is null - - - - Returns the combination of the names of the - - and the - - . - - - The combination of the names of the - - and the - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the "from role" that takes part in this - - . - - - A object that represents the "from role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the "to role" that takes part in this . - - - A object that represents the "to role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the list of properties for the "from role" on which this - - is defined. - - - A collection of type that contains the list of properties for "from role" on which this - - is defined. - - - - - Gets the list of properties for the "to role" on which this - - is defined. - - - A collection of type that contains the list of properties for the "to role" on which this - - is defined. - - - - - Class representing a ref type - - - - - - - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type referenced by this . - - - An object that represents the entity type referenced by this - - . - - - - - Represents the multiplicity information about the end of a relationship type - - - - - Lower Bound is Zero and Upper Bound is One - - - - - Both lower bound and upper bound is one - - - - - Lower bound is zero and upper bound is null - - - - - Represents the Edm Row Type - - - - - The factory method for constructing the object. - - Properties of the row type object. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the object. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties on this . - - - A collection of type that contains the list of properties on this - - . - - - - Gets a collection of the properties defined by the current type. - A collection of the properties defined by the current type. - - - - Class representing a type information for an item - - - - - Factory method for creating a TypeUsage with specified EdmType and facets - - EdmType for which to create a type usage - facets to be copied into the new TypeUsage - new TypeUsage instance - - - - Creates a object with the specified conceptual model type. - - - A object with the default facet values for the specified - - . - - - A for which the - - object is created. - - - - - Creates a object to describe a string type by using the specified facet values. - - - A object describing a string type by using the specified facet values. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false. - - - - Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. - - - A object describing a string type by using the specified facet values and unbounded MaxLength. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - The maximum length of the binary type. - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - The simple type that defines the units of measurement of the offset. - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object to describe a decimal type by using the specified facet values. - - - A object describing a decimal type by using the specified facet values. - - - A for which the - - object is created. - - - The precision of the decimal type as type . - - - The scale of the decimal type as type . - - - - - Creates a object to describe a decimal type with unbounded precision and scale facet values. - - - A object describing a decimal type with unbounded precision and scale facet values. - - - A for which the - - object is created. - - - - - Checks whether this is a subtype of the specified - - . - - - true if this is a subtype of the specified - - ; otherwise, false. - - - The object to be checked. - - - - - Returns the full name of the type described by this . - - - The full name of the type described by this as string. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the type information described by this . - - - An object that represents the type information described by this - - . - - - - - Gets the list of facets for the type that is described by this - - . - - - A collection of type that contains the list of facets for the type that is described by this - - . - - - - - Returns a Model type usage for a provider type - - Model (CSpace) type usage - - - - Do not perform any extension check - - - - - Check the extension against a specific value - - - - - Check the extension against the set of acceptable extensions - - - - - Runtime Metadata Workspace - - - - - Initializes a new instance of the class. - - - - - Constructs a with loaders for all item collections () - needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space - loaders. The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - Delegate to return the o-space item collection. - - - - Constructs a with loaders for all item collections () - that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. - The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - - - - Initializes a new instance of the class using the specified paths and assemblies. - - The paths to workspace metadata. - The names of assemblies used to construct workspace. - - - - Creates an configured to use the - - data space. - - The created parser object. - - - - Creates a new bound to this metadata workspace based on the specified query expression. - - - A new with the specified expression as it's - - property. - - - A that defines the query. - - - If - - is null - - - If - - contains metadata that cannot be resolved in this metadata workspace - - - If - - is not structurally valid because it contains unresolvable variable references - - - - - Gets items. - - - The items. - - - The from which to retrieve items. - - - - Registers the item collection with each associated data model. - The output parameter collection that needs to be filled up. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The delegate for logging the load messages. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - The conceptual model in which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - true to perform the case-insensitive search; otherwise, false. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns the list of primitive types in the specified data model. - - A collection of type that contains all the primitive types in the specified data model. - - The data model for which you need the list of primitive types. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Tests the retrieval of . - - true if the retrieval was successful; otherwise, false. - - The from which to attempt retrieval of - - . - - When this method returns, contains the item collection. This parameter is passed uninitialized. - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true on success, false on failure. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - Clears all the metadata cache entries. - - - Gets original value members from an entity set and entity type. - The original value members from an entity set and entity type. - The entity set from which to retrieve original values. - The entity type of which to retrieve original values. - - - - Returns members of a given / - - for which original values are needed when modifying an entity. - - - The s for which original value is required. - - - An belonging to the C-Space. - - - An that participates in the given - - . - - true if entities may be updated partially; otherwise, false. - - - - The Max EDM version thats going to be supported by the runtime. - - - - - Class for representing a collection of items for the object layer. - Most of the implementation for actual maintenance of the collection is - done by ItemCollection - - - - - Initializes a new instance of the class. - - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - The delegate to which log messages are sent. - - - Loads metadata from the specified assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - - - Returns a collection of primitive type objects. - A collection of primitive type objects. - - - - Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. - - The CLR type of the OSpace argument. - - A that represents the object space type. - - - - - Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. - - true if there is a type that matches the search criteria; otherwise, false. - - A that represents the object space type. - - The CLR type. - - - The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. - The CLR type of the OSpace argument. - The OSpace type to look up. - - - Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. - true on success, false on failure - The OSpace enum type to look up - The CLR enum type of the OSpace argument - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all items of the specified type. - - The type returned by the method. - - - - The enumeration defining the type semantics used to resolve function overloads. - These flags are defined in the provider manifest per function definition. - - - - - Allow Implicit Conversion between given and formal argument types (default). - - - - - Allow Type Promotion between given and formal argument types. - - - - - Use strict Equivalence only. - - - - - Class for representing a collection of items in Store space. - - - - - Initializes a new instance of the class using the specified XMLReader. - - The XMLReader used to create metadata. - - - Initializes a new instances of the class. - The model of the . - - - - Initializes a new instance of the class using the specified file paths. - - The file paths used to create metadata. - - - - Returns a collection of the objects. - - - A object that represents the collection of the - - objects. - - - - - Factory method that creates a . - - - SSDL artifacts to load. Must not be null. - - - Paths to SSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - Custom resolver. Currently used to resolve DbProviderServices implementation. If null - the default resolver will be used. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the provider factory of the StoreItemCollection. - The provider factory of the StoreItemCollection. - - - Gets the provider manifest of the StoreItemCollection. - The provider manifest of the StoreItemCollection. - - - Gets the manifest token of the StoreItemCollection. - The manifest token of the StoreItemCollection. - - - Gets the invariant name of the StoreItemCollection. - The invariant name of the StoreItemCollection. - - - Gets the version of the store schema for this collection. - The version of the store schema for this collection. - - - - This exception is thrown when a requested object is not found in the store. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of class that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Caches an ELinq query - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - - The values currently assigned to the properties of an entity. - - - - - Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. - - - - Retrieves the field value as a Boolean. - The field value as a Boolean. - The ordinal of the field. - - - Retrieves the field value as a byte. - The field value as a byte. - The ordinal of the field. - - - Retrieves the field value as a byte array. - The number of bytes copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of bytes to copy. - - - Retrieves the field value as a char. - The field value as a char. - The ordinal of the field. - - - Retrieves the field value as a char array. - The number of characters copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of characters to copy. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as a - - - The field value as a . - - The ordinal of the field. - - - Retrieves the name of the field data type. - The name of the field data type. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Retrieves the field value as a decimal. - The field value as a decimal. - The ordinal of the field. - - - Retrieves the field value as a double. - The field value as a double. - The ordinal of the field. - - - Retrieves the type of a field. - The field type. - The ordinal of the field. - - - Retrieves the field value as a float. - The field value as a float. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - Retrieves the name of a field. - The name of the field. - The ordinal of the field. - - - Retrieves the ordinal of a field by using the name of the field. - The ordinal of the field. - The name of the field. - - - Retrieves the field value as a string. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Populates an array of objects with the field values of the current record. - The number of field values returned. - An array of objects to store the field values. - - - - Returns whether the specified field is set to . - - - true if the field is set to ; otherwise false. - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets field values in a record. - The number of the fields that were set. - The values of the field. - - - - Sets a field to the value. - - The ordinal of the field. - - - - Retrieves a field value as a . - - - A field value as a . - - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Gets the number of fields in the record. - An integer value that is the field count. - - - Returns a value that has the given field ordinal. - The value that has the given field ordinal. - The ordinal of the field. - - - Gets a value that has the given field name. - The field value. - The name of the field. - - - Gets data record information. - - A object. - - - - - This is the interface that represent the minimum interface required - to be an entity in ADO.NET. - - - - - This class contains the common methods need for an date object. - - - - - Public constant name used for change tracking - Providing this definition allows users to use this constant instead of - hard-coding the string. This helps to ensure the property name is correct - and allows faster comparisons in places where we are looking for this specific string. - Users can still use the case-sensitive string directly instead of the constant, - it will just be slightly slower on comparison. - Including the dash (-) character around the name ensures that this will not conflict with - a real data property, because -EntityKey- is not a valid identifier name - - - - - Raises the event. - - The name of the changed property. - - - - Raises the event. - - The name of the property changing. - - - Returns the minimum date time value supported by the data source. - - A value that is the minimum date time that is supported by the data source. - - - - Raises an event that is used to report that a property change is pending. - The name of the changing property. - - - Raises an event that is used to report that a property change has occurred. - The name for the changed property. - - - Returns a complex type for the specified property. - - Unlike most of the other helper methods in this class, this one is not static - because it references the SetValidValue for complex objects, which is also not static - because it needs a reference to this. - - A complex type object for the property. - A complex object that inherits from complex object. - The name of the complex property that is the complex object. - Indicates whether the type supports null values. - Indicates whether the type is initialized. - The type of the complex object being requested. - - - Determines whether the specified byte arrays contain identical values. - true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. - The first byte array value to compare. - The second byte array to compare. - - - Returns a copy of the current byte value. - - A copy of the current value. - - The current byte array value. - - - - Makes sure the value being set for a property is valid. - - - The value being validated. - - The value passed into the property setter. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - If value is null for a non nullable value. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - The value being set. - Indicates whether the property is nullable. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - A that is set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value that is set. - - The value that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - The name of the property that is being validated. - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - Name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - The name of the property that is being validated. - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - The name of the property that is being validated. - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - - - Validates that the property is not null, and throws if it is. - The validated property. - The string value to be checked. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The string value is null for a non-nullable string. - - - Validates that the property is not null, and throws if it is. - - The validated value. - - The string value to be checked. - Flag indicating if this property is allowed to be null. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - Name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Sets a complex object for the specified property. - A complex type that derives from complex object. - The original complex object for the property, if any. - The complex object is being set. - The complex property that is being set to the complex object. - The type of the object being replaced. - - - Verifies that a complex object is not null. - The complex object being validated. - The complex object that is being validated. - The complex property on the parent object that is associated with complexObject . - The type of the complex object being verified. - - - - Notification that a property has been changed. - - - The PropertyChanged event can indicate all properties on the - object have changed by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangedEventArgs. - - - - - Notification that a property is about to be changed. - - - The PropertyChanging event can indicate all properties on the - object are changing by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangingEventArgs. - - - - Notifies the change tracker that a property change is pending on a complex object. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property of a complex object has changed. - The name of the changed property. - property is null. - - - - Attribute for complex properties - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Base attribute for properties mapped to store elements. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - attribute for complex types - - - - - Base attribute for schematized types - - - - The name of the type in the conceptual schema that maps to the class to which this attribute is applied. - - A that is the name. - - - - The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. - - A that is the namespace name. - - - - - Attribute identifying the Edm base class - - - - - Attribute indicating an enum type. - - - - - Attribute identifying the Ends defined for a RelationshipSet - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Initializes a new instance of the - - class. - - The namespace name of the relationship property. - The name of the relationship. The relationship name is not namespace qualified. - The role name at the other end of the relationship. - - - The namespace name of the navigation property. - - A that is the namespace name. - - - - Gets the unqualified relationship name. - The relationship name. - - - Gets the role name at the other end of the relationship. - The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). - - - - Defines a relationship between two entity types based on an association in the conceptual model. - - - - - Creates an instance of the class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - - - - Initializes a new instance of the - - class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - A value that indicates whether the relationship is based on the foreign key value. - - - The namespace for the relationship. - - A that is the namespace for the relationship. - - - - Name of the relationship. - - A that is the name of a relationship that is defined by this - - . - - - - Name of the role at one end of the relationship. - - A that is the name of the role. - - - - Multiplicity at one end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at one end of the relationship. - - A that is the type of the object at this end of the association. - - - - Name of the role at the other end of the relationship. - - A that is the name of the role. - - - - Multiplicity at the other end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at the other end of the relationship. - - A that is the type of the object t the other end of the association. - - - - Gets a Boolean value that indicates whether the relationship is based on the foreign key value. - true if the relationship is based on the foreign key value; otherwise false. - - - - Attribute for scalar properties in an IEntity. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - Gets or sets the value that indicates whether the property can have a null value. - The value that indicates whether the property can have a null value. - - - Gets or sets the value that indicates whether the property is part of the entity key. - The value that indicates whether the property is part of the entity key. - - - - Attribute for static types - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a unique value for each model referenced by the assembly. - - - Setting this parameter to a unique value for each model file in a Visual Basic - assembly will prevent the following error: - "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." - - A string that is a unique GUID value for the model in the assembly. - - - - Collection of entities modeling a particular EDM construct - which can either be all entities of a particular type or - entities participating in a particular relationship. - - The type of entities in this collection. - - - - Base class for EntityCollection and EntityReference - - - - - Represents one end of a relationship. - - - - Loads the related object or objects into this related end with the default merge option. - - - Loads the related object or objects into the related end with the specified merge option. - - The to use when merging objects into an existing - . - - - - Adds an object to the related end. - - An object to add to the collection. entity must implement - - . - - - - Adds an object to the related end. - An object to add to the collection. - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed, false if entity was not part of the - - . - - - The object to remove from the collection. entity must implement - - . - - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed; false if entity was not part of the - - . - - An object to remove from the collection. - - - Defines a relationship between two attached objects. - - The object being attached. entity must implement - - . - - - - Defines a relationship between two attached objects. - The object being attached. - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Gets or sets a value indicating whether the entity (for an or all entities - in the collection (for an have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded - and wants to prevent any other entities from being loaded automatically. - Note that explicit loading using will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities - are now loaded. - - - True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. - - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this is participating. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - The role name at the source end of the relationship. - - - Gets the role name at the target end of the relationship. - The role name at the target end of the relationship. - - - Returns a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Loads the related object or objects into the related end with the default merge option. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Loads an object or objects from the related end with the specified merge option. - - - The to use when merging objects into an existing - . - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Attaches an entity to the related end. This method works in exactly the same way as Attach(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Attaches an entity to the related end. If the related end is already filled - or partially filled, this merges the existing entities with the given entity. The given - entity is not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. - Deleted elements are allowed only when the state manager is already tracking the relationship - instance. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Adds an entity to the related end. This method works in exactly the same way as Add(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to add to the related end - - - - Adds an entity to the related end. If the owner is - attached to a cache then the all the connected ends are - added to the object cache and their corresponding relationships - are also added to the ObjectStateManager. The RelatedEnd of the - relationship is also fixed. - - Entity instance to add to the related end - - - - Removes an entity from the related end. This method works in exactly the same way as Remove(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Removes an entity from the related end. If owner is - attached to a cache, marks relationship for deletion and if - the relationship is composition also marks the entity for deletion. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - Occurs when a change is made to a related end. - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this participates. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - - A that is the role name. - - - - Gets the role name at the target end of the relationship. - - A that is the role name. - - - - Gets a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - - - - Initializes a new instance of the class. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Loads related objects into the collection, using the specified merge option. - - Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same - - . - - - - Defines relationships between an object and a collection of related objects in an object context. - - Loads related entities into the local collection. If the collection is already filled - or partially filled, merges existing entities with the given entities. The given - entities are not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. We allow - deleted elements only when the state manager is already tracking the relationship - instance. - - Collection of objects in the object context that are related to the source object. - entities collection is null. - - The source object or an object in the entities collection is null or is not in an - - or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - - Defines a relationship between two attached objects in an object context. - The object being attached. - When the entity is null. - - When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an - - or state. - - - - Adds an object to the collection. - - An object to add to the collection. entity must implement - - . - - entity is null. - - - Removes an object from the collection and marks the relationship for deletion. - true if item was successfully removed; otherwise, false. - The object to remove from the collection. - entity object is null. - The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. - - - Returns an enumerator that is used to iterate through the objects in the collection. - - An that iterates through the set of values cached by - - . - - - - - Returns an enumerator that is used to iterate through the set of values cached by - - . - - - An that iterates through the set of values cached by - - . - - - - Removes all entities from the collection. - - - Determines whether a specific object exists in the collection. - - true if the object is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies all the contents of the collection to an array, starting at the specified index of the target array. - The array to copy to. - The zero-based index in the array at which copying begins. - - - Used internally to serialize entity objects. - The streaming context. - - - Used internally to deserialize entity objects. - The streaming context. - - - Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. - - An that represents the entity collection. - - - When the object is in an state - or when the object is in a - state with a - other than - . - - - - Gets the number of objects that are contained in the collection. - - The number of elements that are contained in the - - . - - - - - Gets a value that indicates whether the - - is read-only. - - Always returns false. - - - - IListSource.ContainsListCollection implementation. Always returns false. - This means that the IList we return is the one which contains our actual data, - it is not a list of collections. - - - - - This is the class is the basis for all perscribed EntityObject classes. - - - - - Interface that defines an entity containing a key. - - - - - Gets or sets the for instances of entity types that implement this interface. - - - If an object is being managed by a change tracker, it is expected that - IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be - used to report changes on EntityKey. This allows the change tracker to validate the - EntityKey's new value and to verify if the change tracker is in a state where it can - allow updates to the EntityKey. - - - The for instances of entity types that implement this interface. - - - - - Minimum interface that a data class must implement in order to be managed by a change tracker. - - - - - Gets or sets the used to report changes. - - - The used to report changes. - - - - - Interface that a data class must implement if exposes relationships - - - - Returns the relationship manager that manages relationships for an instance of an entity type. - - Classes that expose relationships must implement this property - by constructing and setting RelationshipManager in their constructor. - The implementation of this property should use the static method RelationshipManager.Create - to create a new RelationshipManager when needed. Once created, it is expected that this - object will be stored on the entity and will be provided through this property. - - - The for this entity. - - - - - Used by the ObjectStateManager to attach or detach this EntityObject to the cache. - - Reference to the ObjectStateEntry that contains this entity - - - Notifies the change tracker that a property change is pending. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property has changed. - The name of the changed property. - property is null. - - - Gets the entity state of the object. - - The of this object. - - - - Gets or sets the key for this object. - - The for this object. - - - - - Returns the container for the lazily created relationship - navigation property objects, collections and refs. - - - - - This interface is implemented by a change tracker and is used by data classes to report changes - - - - Notifies the change tracker of a pending change to a property of an entity type. - The name of the property that is changing. - - - Notifies the change tracker that a property of an entity type has changed. - The name of the property that has changed. - - - Notifies the change tracker of a pending change to a complex property. - The name of the top-level entity property that is changing. - The complex type that contains the property that is changing. - The name of the property that is changing on complex type. - - - Notifies the change tracker that a property of a complex type has changed. - The name of the complex property of the entity type that has changed. - The complex type that contains the property that changed. - The name of the property that changed on complex type. - - - Gets current state of a tracked object. - - An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. - - - - - Models a relationship end with multiplicity 1. - - - - Returns the key for the related object. - - Returns the EntityKey of the target entity associated with this EntityReference. - Is non-null in the following scenarios: - (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the - same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting - the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. - (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation - occurs that would set it to null, as described below. - (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. - (d) Entity graph was created using a NoTracking query with full span - Is null in the following scenarios: - (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the - same RelationshipName and source role. - (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key - is one of the special keys - (c) Entities are detached and the relationship was explicitly created by the user. - - - An that is the key of the related object. - - - - - Models a relationship end with multiplicity 1. - - The type of the entity being referenced. - - - - Creates a new instance of . - - - The default constructor is required for some serialization scenarios. It should not be used to - create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager - class instead. - - - - - Loads the related object for this with the specified merge option. - - - Specifies how the object should be returned if it already exists in the - - . - - - The source of the is null - or a query returned more than one related end - or a query returned zero related ends, and one related end was expected. - - - - Creates a many-to-one or one-to-one relationship between two objects in the object context. - The object being attached. - When the entity is null. - When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - Creates an equivalent object query that returns the related object. - - An that returns the related object. - - - When the object is in an state - or when the object is in a - state with a - other than . - - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - - Gets or sets the related object returned by this - - . - - - The object returned by this . - - - - - Identifies the kind of a relationship - - - - - The relationship is an Association - - - - - Container for the lazily created relationship navigation - property objects (collections and refs). - - - - - Creates a new object. - - - Used by data classes that support relationships. If the change tracker - requests the RelationshipManager property and the data class does not - already have a reference to one of these objects, it calls this method - to create one, then saves a reference to that object. On subsequent accesses - to that property, the data class should return the saved reference. - The reason for using a factory method instead of a public constructor is to - emphasize that this is not something you would normally call outside of a data class. - By requiring that these objects are created via this method, developers should - give more thought to the operation, and will generally only use it when - they explicitly need to get an object of this type. It helps define the intended usage. - - - The requested . - - Reference to the entity that is calling this method. - - - - Returns either an or - - of the correct type for the specified target role in a relationship. - - - representing the - - or - - that was retrieved. - - Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. - Target role to use to retrieve the other end of relationshipName . - relationshipName or targetRoleName is null. - The source type does not match the type of the owner. - targetRoleName is invalid or unable to find the relationship type in the metadata. - - - - Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, - if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W - - The relationship name. - The role name of the related end. - - The to initialize. - - - The type of the being initialized. - - - When the provided - is already initialized.-or-When the relationship manager is already attached to an - - or when the relationship manager already contains a relationship with this name and target role. - - - - - Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, - or if the relationship manager is already attached to a ObjectContext. - - The relationship name. - The target role name. - An existing EntityCollection. - Type of the entity represented by targetRoleName - - - - Gets an of related objects with the specified relationship name and target role name. - - - The of related objects. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - - Gets the for a related object by using the specified combination of relationship name and target role name. - - - The of a related object. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - Returns an enumeration of all the related ends managed by the relationship manager. - - An of objects that implement - - . An empty enumeration is returned when the relationships have not yet been populated. - - - - - Called by Object Services to prepare an for binary serialization with a serialized relationship. - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - - Represents either a entity, entity stub or relationship - - - - - Gets the updatable version of original values of the object associated with this - - . - - The updatable original values of object data. - - - Accepts the current values as original values. - - - Marks an entity as deleted. - - - - Returns the names of an object’s properties that have changed since the last time - - was called. - - - An collection of names as string. - - - - Sets the state of the object or relationship to modify. - If State is not Modified or Unchanged - - - Marks the specified property as modified. - The name of the property. - If State is not Modified or Unchanged - - - Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. - The name of the property to change. - - - Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. - - Note that this property always returns the same result as the modified state of the property for change tracking - proxies and entities that derive from the EntityObject base class. This is because original values are not tracked - for these entity types and hence there is no way to know if the current value is really different from the - original value. - - true if the property has changed; otherwise, false. - The name of the property. - - - - Changes state of the entry to the specified value. - - - The value to set for the - - property of the entry. - - - - Sets the current values of the entry to match the property values of a supplied object. - The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. - - - Sets the original values of the entry to match the property values of a supplied object. - The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. - - - - Used to report that a scalar entity property is about to change - The current value of the specified property is cached when this method is called. - - The name of the entity property that is changing - - - - Used to report that a scalar entity property has been changed - The property value that was cached during EntityMemberChanging is now - added to OriginalValues - - The name of the entity property that has changing - - - - Used to report that a complex property is about to change - The current value of the specified property is cached when this method is called. - - The name of the top-level entity property that is changing - The complex object that contains the property that is changing - The name of the property that is changing on complexObject - - - - Used to report that a complex property has been changed - The property value that was cached during EntityMemberChanging is now added to OriginalValues - - The name of the top-level entity property that has changed - The complex object that contains the property that changed - The name of the property that changed on complexObject - - - - Gets the for the - - . - - - The for the - - . - - - - - Gets the for the object or relationship. - - - The for the object or relationship. - - - - - Gets the state of the . - - - The state of the . - - - - Gets the entity object. - The entity object. - - - Gets the entity key. - The entity key. - - - - Gets a value that indicates whether the represents a relationship. - - - true if the represents a relationship; otherwise, false. - - - - Gets the read-only version of original values of the object or relationship. - The read-only version of original values of the relationship set entry or entity. - - - - Gets the current property values of the object or relationship associated with this - - . - - - A that contains the current values of the object or relationship associated with this - - . - - - - - Gets the instance for the object represented by entry. - - - The object. - - The entry is a stub or represents a relationship - - - - Returns the EntityState from the ObjectStateEntry - - - - - Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. - - Type of entities returned from the queryable. - - - Notifies the set that an object that represents a new entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The new object to add to the set. - - - Notifies the set that an object that represents an existing entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to add to the set. - - - Notifies the set that an object that represents an existing entity must be deleted from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to delete from the set. - - - Notifies the set that an object that represents an existing entity must be detached from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The object to detach from the set. - - - - The different ways that new objects loaded from the database can be merged with existing objects already in memory. - - - - - Will only append new (top level-unique) rows. This is the default behavior. - - - - - Same behavior as LoadOption.OverwriteChanges. - - - - - Same behavior as LoadOption.PreserveChanges. - - - - - Will not modify cache. - - - - - ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, - serving as a gateway for Create, Read, Update, and Delete operations. - - - - - Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the - - object. - - - An that contains references to the model and to the data source connection. - - The connection is null. - The connection is invalid or the metadata workspace is invalid. - - - - Creates an ObjectContext with the given connection and metadata workspace. - - connection to the store - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - Initializes a new instance of the class with the given connection string and default entity container name. - - The connection string, which also provides access to the metadata information. - The connectionString is null. - The connectionString is invalid or the metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection string and entity container name. - - The connection string, which also provides access to the metadata information. - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connectionString is null. - The connectionString , defaultContainerName , or metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection and entity container name. - - - An that contains references to the model and to the data source connection. - - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connection is null. - The connection , defaultContainerName , or metadata workspace is not valid. - - - Accepts all changes made to objects in the object context. - - - Adds an object to the object context. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to add. - - The entity parameter is null or the entitySetName does not qualify. - - - Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The value to use when you load the related objects. - - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - - The value to use when you load the related objects. - - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Applies property changes from a detached object to an object already attached to the object context. - The name of the entity set to which the object belongs. - The detached object that has property updates to apply to the original object. - When entitySetName is null or an empty string or when changed is null. - - When the from entitySetName does not match the - - of the object - - or when the entity is in a state other than - - or - - or the original object is not attached to the context. - - When the type of the changed object is not the same type as the original object. - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - The entity type of the object. - entitySetName or current is null. - - The from entitySetName does not match the - - of the object - - or the object is not in the - - or it is in a - - state or the entity key of the supplied object is invalid. - - entitySetName is an empty string. - - - - Copies the scalar values from the supplied object into set of original values for the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has original values to apply to the object. The entity key of originalEntity must match the - - property of an entry in the - - . - - The type of the entity object. - entitySetName or original is null. - - The from entitySetName does not match the - - of the object - - or an - - for the object cannot be found in the - - or the object is in an - - or a - - state or the entity key of the supplied object is invalid or has property changes. - - entitySetName is an empty string. - - - Attaches an object or object graph to the object context in a specific entity set. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to attach. - - The entity is null. - - Invalid entity set or the object has a temporary key or the object has an - - and the - - does not match with the entity set passed in as an argument of the method or the object does not have an - - and no entity set is provided or any object from the object graph has a temporary - - or any object from the object graph has an invalid - - (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. - - - - Attaches an object or object graph to the object context when the object has an entity key. - The object to attach. - The entity is null. - Invalid entity key. - - - Creates the entity key for a specific object, or returns the entity key if it already exists. - - The of the object. - - The fully qualified name of the entity set to which the entity object belongs. - The object for which the entity key is being retrieved. - When either parameter is null. - When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. - When the entity key cannot be constructed successfully based on the supplied parameters. - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. - - - The new instance. - - - Entity type of the requested . - - - The property is not set on the - - or the specified type belongs to more than one entity set. - - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. - - - The new instance. - - - Name of the entity set for the returned . The string must be qualified by the default container name if the - - property is not set on the - - . - - - Entity type of the requested . - - - The from entitySetName does not match the - - of the object - - or the - - property is not set on the - - and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. - - - - - Creates an in the current object context by using the specified query string. - - - An of the specified type. - - The query string to be executed. - Parameters to pass to the query. - - The entity type of the returned . - - The queryString or parameters parameter is null. - - - Marks an object for deletion. - - An object that specifies the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - The entity is null. - - The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). - - - - - Finalizes an instance of the class. - - - - Releases the resources used by the object context. - - - - Releases the resources used by the object context. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns an object that has the specified entity key. - - An that is an instance of an entity type. - - The key of the object to be found. - The key parameter is null. - - The object is not found in either the or the data source. - - - - Updates a collection of objects in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Updates an object in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Persists all updates to the database and resets change tracking in the object context. - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after - - finishes. If false, you must call the - method after . - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - A value that determines the behavior of the operation. - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - - Ensures that changes are synchronized with changes in all objects that are tracked by the - - . - - - - Returns an object that has the specified entity key. - true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. - The key of the object to be found. - When this method returns, contains the object. - Incompatible metadata for key . - key is null. - - - - Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - The to use when executing the query. - - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given function on the default container. - - Element type for function results. - - Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. - - The options for executing this function. - - The parameter values to use for the function. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - An object representing the result of executing this function. - If function is null or empty - - If function is invalid (syntax, - does not exist, refers to a function with return type incompatible with T) - - - - Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. - The number of rows affected. - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. - - An enumeration of objects that represent custom data classes that map to the conceptual model. - - - - Returns all the existing proxy types. - - An of all the existing proxy types. - - - - Returns the entity type of the POCO entity associated with a proxy object of a specified type. - - The of the associated POCO entity. - - - The of the proxy object. - - - - Creates and returns an instance of the requested type . - An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. - Type of object to be returned. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior of - DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - - The to use when executing the query. The default is - . - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Translates a that contains rows of entity data to objects of the requested entity type. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - When reader is null. - - - - Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - The entity set of the TResult type. - - The to use when translated objects are added to the object context. The default is - - . - - When reader is null. - - When the supplied mergeOption is not a valid value. - - When the supplied entitySetName is not a valid entity set for the TResult type. - - - - Creates the database by using the current data source connection and the metadata in the - - . - - - - Deletes the database that is specified as the database in the current data source connection. - - - - Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work - is done by the DbProviderServices implementation for the current store connection. - - true if the database exists; otherwise, false. - - - - Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the - - . The - - loads metadata from store schema definition language (SSDL) files. - - - A DDL script that creates schema objects for the metadata in the - - . - - - - Gets the connection used by the object context. - - A object that is the connection. - - - When the instance has been disposed. - - - - Gets or sets the default container name. - - A that is the default container name. - - - - Gets the metadata workspace used by the object context. - - The object associated with this - - . - - - - Gets the object state manager used by the object context to track object changes. - - The used by this - - . - - - - Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. - - An value that is the timeout value, in seconds. - - The timeout value is less than 0. - - - Gets the LINQ query provider associated with this object context. - - The instance used by this object context. - - - - - Gets the instance that contains options that affect the behavior of the - - . - - - The instance that contains options that affect the behavior of the - - . - - - - - Returns itself. ObjectContext implements to provide a common - interface for and ObjectContext both of which will return the underlying - ObjectContext. - - - - - Gets the transaction handler in use by this context. May be null if no transaction have been started. - - - The transaction handler. - - - - - Returns the being used for this context. - - - - Occurs when changes are saved to the data source. - - - Occurs when a new entity object is created from data in the data source as part of a query or load operation. - - - - Defines options that affect the behavior of the ObjectContext. - - - - - Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. - - - This flag determines whether a new transaction will be started when methods such as - and are executed outside of a transaction. - Note that this does not change the behavior of . - - - The default transactional behavior. - - - - Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. - true if lazy loading is enabled; otherwise, false. - - - Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. - true if proxies are created; otherwise, false. The default value is true. - - - Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. - true if the legacy PreserveChanges behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. - - If this flag is set to false then setting the Value property of the for an - FK relationship to null when it is already null will have no effect. When this flag is set to true, then - setting the value to null will always cause the FK to be nulled and the relationship to be deleted - even if the value is currently null. The default value is false when using ObjectContext and true - when using DbContext. - - true if the consistent NullReference behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. - - This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. - If this flag is set, then any equality comparison between two operands, both of which are potentially - nullable, will be rewritten to show C# null comparison semantics. As an example: - (operand1 = operand2) will be rewritten as - (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) - The default value is false when using . - - true if the C# NullComparison behavior should be used; otherwise, false. - - - - EventArgs for the ObjectMaterialized event. - - - - Gets the entity object that was created. - The entity object that was created. - - - - Delegate for the ObjectMaterialized event. - - The ObjectContext responsable for materializing the object. - EventArgs containing a reference to the materialized object. - - - - This class represents a query parameter at the object layer, which consists - of a Name, a Type and a Value. - - - - - Initializes a new instance of the class with the specified name and type. - - The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The common language runtime (CLR) type of the parameter. - If the value of either argument is null. - If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - - Initializes a new instance of the class with the specified name and value. - - The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The initial value (and inherently, the type) of the parameter. - If the value of either argument is null. - If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - Gets the parameter name, which can only be set through a constructor. - The parameter name, which can only be set through a constructor. - - - Gets the parameter type. - - The of the parameter. - - - - Gets or sets the parameter value. - The parameter value. - - - - This class represents a collection of query parameters at the object layer. - - - - - Adds the specified to the collection. - - The parameter to add to the collection. - The parameter argument is null. - - The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a - - . - - The type of the parameter is not valid. - - - - Deletes all instances from the collection. - - - - - Checks for the existence of a specified in the collection by reference. - - Returns true if the parameter object was found in the collection; otherwise, false. - - The to find in the collection. - - The parameter argument is null. - - - - Determines whether an with the specified name is in the collection. - - Returns true if a parameter with the specified name was found in the collection; otherwise, false. - The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - The name parameter is null. - - - Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. - The array into which to copy the parameters. - The index in the array at which to start copying the parameters. - - - - Removes an instance of an from the collection by reference if it exists in the collection. - - Returns true if the parameter object was found and removed from the collection; otherwise, false. - An object to remove from the collection. - The parameter argument is null. - - - - These methods return enumerator instances, which allow the collection to - be iterated through and traversed. - - An object that can be used to iterate through the collection. - - - Returns an untyped enumerator over the collection. - - An instance. - - - - Gets the number of parameters currently in the collection. - - The number of objects that are currently in the collection. - - - - - This collection is read-write - parameters may be added, removed - and [somewhat] modified at will (value only) - provided that the - implementation the collection belongs to has not locked its parameters - because it's command definition has been prepared. - - - - Provides an indexer that allows callers to retrieve parameters by name. - - The instance. - - The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - No parameter with the specified name is found in the collection. - - - - This class implements untyped queries at the object-layer. - - - - Returns the commands to execute against the data source. - A string that represents the commands that the query executes against the data source. - - - Returns information about the result type of the query. - - A value that contains information about the result type of the query. - - - - Executes the untyped object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Returns an enumerator that iterates through a collection. - - An that can be used to iterate through the collection. - - - - Returns the command text for the query. - A string value. - - - Gets the object context associated with this object query. - - The associated with this - - instance. - - - - Gets or sets how objects returned from a query are added to the object context. - - The query . - - - - - Whether the query is streaming or buffering - - - - Gets the parameter collection for this object query. - - The parameter collection for this . - - - - Gets or sets a value that indicates whether the query plan should be cached. - A value that indicates whether the query plan should be cached. - - - - Gets the result element type for this query instance. - - - - - Gets the expression describing this query. For queries built using - LINQ builder patterns, returns a full LINQ expression tree; otherwise, - returns a constant expression wrapping this query. Note that the - default expression is not cached. This allows us to differentiate - between LINQ and Entity-SQL queries. - - - - - Gets the associated with this query instance. - - - - - ObjectQuery implements strongly-typed queries at the object-layer. - Queries are specified using Entity-SQL strings and may be created by calling - the Entity-SQL-based query builder methods declared by ObjectQuery. - - The result type of this ObjectQuery - - - - Creates a new instance using the specified Entity SQL command as the initial query. - - The Entity SQL query. - - The on which to execute the query. - - - - - Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. - - The Entity SQL query. - - The on which to execute the query. - - - Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same - - . - - - - Executes the object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - Specifies the related objects to include in the query results. - - A new with the defined query path. - - Dot-separated list of related objects to return in the query results. - path is null. - path is empty. - - - Limits the query to unique results. - - A new instance that is equivalent to the original instance with SELECT DISTINCT applied. - - - - - This query-builder method creates a new query whose results are all of - the results of this query, except those that are also part of the other - query specified. - - A query representing the results to exclude. - a new ObjectQuery instance. - If the query parameter is null. - - - Groups the query results by the specified criteria. - - A new instance of type - - that is equivalent to the original instance with GROUP BY applied. - - The key columns by which to group the results. - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - The query parameter is null or an empty string - or the projection parameter is null or an empty string. - - - - This query-builder method creates a new query whose results are those that - are both in this query and the other query specified. - - A query representing the results to intersect with. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to only results of a specific type. - - A new instance that is equivalent to the original instance with OFTYPE applied. - - - The type of the returned when the query is executed with the applied filter. - - The type specified is not valid. - - - Orders the query results by the specified criteria. - - A new instance that is equivalent to the original instance with ORDER BY applied. - - The key columns by which to order the results. - Zero or more parameters that are used in this method. - The keys or parameters parameter is null. - The key is an empty string. - - - Limits the query results to only the properties that are defined in the specified projection. - - A new instance of type - - that is equivalent to the original instance with SELECT applied. - - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - projection is null or parameters is null. - The projection is an empty string. - - - Limits the query results to only the property specified in the projection. - - A new instance of a type compatible with the specific projection. The returned - - is equivalent to the original instance with SELECT VALUE applied. - - The projection list. - An optional set of query parameters that should be in scope when parsing. - - The type of the returned by the - - method. - - projection is null or parameters is null. - The projection is an empty string. - - - Orders the query results by the specified criteria and skips a specified number of results. - - A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. - - The key columns by which to order the results. - The number of results to skip. This must be either a constant or a parameter reference. - An optional set of query parameters that should be in scope when parsing. - Any argument is null. - keys is an empty string or count is an empty string. - - - Limits the query results to a specified number of items. - - A new instance that is equivalent to the original instance with TOP applied. - - The number of items in the results as a string. - An optional set of query parameters that should be in scope when parsing. - count is null. - count is an empty string. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - without duplicates (i.e., results are unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - including any duplicates (i.e., results are not necessarily unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to results that match specified filtering criteria. - - A new instance that is equivalent to the original instance with WHERE applied. - - The filter predicate. - Zero or more parameters that are used in this method. - predicate is null or parameters is null. - The predicate is an empty string. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Gets or sets the name of this object query. - - A string value that is the name of this . - - The value specified on set is not valid. - - - - This class implements IEnumerable and IDisposable. Instance of this class - is returned from ObjectQuery.Execute method. - - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Returns the results in a format useful for data binding. - - An of entity objects. - - - - Performs tasks associated with freeing, releasing, or resetting resources. - - - Releases the resources used by the object result. - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the next result set of a stored procedure. - An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. - The type of the element. - - - - IListSource.ContainsListCollection implementation. Always returns false. - - - - - When overridden in a derived class, gets the type of the generic - - . - - - The type of the generic . - - - - - This class represents the result of the method. - - The type of the result. - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the type of the . - - - A that is the type of the . - - - - - Represents a typed entity set that is used to perform create, read, update, and delete operations. - - The type of the entity. - - - Adds an object to the object context in the current entity set. - The object to add. - - - Attaches an object or object graph to the object context in the current entity set. - The object to attach. - - - Marks an object for deletion. - - An object that represents the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - - - - Sets the property of an - - to match the property values of a supplied object. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the - - property of an entry in the - - . - - - - Creates a new entity type object. - The new entity type object, or an instance of a proxy type that corresponds to the entity type. - - - Creates an instance of the specified type. - An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . - Type of object to be returned. - - - - Gets the metadata of the entity set represented by this instance. - - - An object. - - - - - The original values of the properties of an entity when it was retrieved from the database. - - - - - Maintains object state and identity management for entity type instances and relationship instances. - - - - - Initializes a new instance of the class. - - - The , which supplies mapping and metadata information. - - - - - Returns a collection of objects for objects or relationships with the given state. - - - A collection of objects in the given - - . - - - An used to filter the returned - - objects. - - - When state is . - - - - - Changes state of the for a specific object to the specified entityState . - - - The for the supplied entity . - - The object for which the state must be changed. - The new state of the object. - When entity is null. - - When the object is not detached and does not have an entry in the state manager - or when you try to change the state to - from any other - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - When source or target is null. - - When trying to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - A LINQ expression that selects the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - The entity type of the source object. - When source , target , or selector is null. - selector is malformed or cannot return a navigation property. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a - state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the relationship. - The role name at the target end of the relationship. - - The requested of the specified relationship. - - When source or target is null. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an - state - or when state is not a valid value. - - - - - Returns an for the object or relationship entry with the specified key. - - - The corresponding for the given - - . - - - The . - - When key is null. - When the specified key cannot be found in the state manager. - - No entity with the specified exists in the - - . - - - - - Returns an for the specified object. - - - The corresponding for the given - - . - - - The to which the retrieved - - belongs. - - - No entity for the specified exists in the - - . - - - - - Tries to retrieve the corresponding for the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given object; otherwise, false. - - - The to which the retrieved - - belongs. - - - When this method returns, contains the for the given - - This parameter is passed uninitialized. - - - - - Tries to retrieve the corresponding for the object or relationship with the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given - - ; otherwise, false. - - - The given . - - - When this method returns, contains an for the given - - This parameter is passed uninitialized. - - A null (Nothing in Visual Basic) value is provided for key . - - - - Returns the that is used by the specified object. - - - The for the specified object. - - - The object for which to return the . - - - The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager - - - - - Returns the that is used by the specified object. - - - true if a instance was returned for the supplied entity ; otherwise false. - - - The object for which to return the . - - - When this method returns, contains the - - for the entity . - - - - - Gets the associated with this state manager. - - - The associated with this - - . - - - - Occurs when entities are added to or removed from the state manager. - - - - A DataContractResolver that knows how to resolve proxy types created for persistent - ignorant classes to their base types. This is used with the DataContractSerializer. - - - - During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. - Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. - The xsi:type information to map. - The namespace of the xsi:type. - The declared type. - - An instance of . - - - - During serialization, maps actual types to xsi:type information. - true if the type was resolved; otherwise, false. - The actual type of the persistence-ignorant object. - The declared type. - - An instance of . - - When this method returns, contains a list of xsi:type declarations. - When this method returns, contains a list of namespaces used. - - - - Defines the different ways to handle modified properties when refreshing in-memory data from the database. - - - - - For unmodified client objects, same behavior as StoreWins. For modified client - objects, Refresh original values with store value, keeping all values on client - object. The next time an update happens, all the client change units will be - considered modified and require updating. - - - - - Discard all changes on the client and refresh values with store values. - Client original values is updated to match the store. - - - - - Flags used to modify behavior of ObjectContext.SaveChanges() - - - - - Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. - - - - - After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. - - - - - Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. - - - - - This exception is thrown when a update operation violates the concurrency constraint. - - - - - Exception during save changes to store - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The collection of objects. - - - - - Initializes a new instance of with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Gets the objects for this - - . - - - A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The enumerable collection of objects. - - - - - Property constraint exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of the class with default message. - - - - - Initializes a new instance of the class with supplied message. - - A localized error message. - - - - Initializes a new instance of the class with supplied message and inner exception. - - A localized error message. - The inner exception. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - The inner exception. - - - Gets the name of the property that violated the constraint. - The name of the property that violated the constraint. - - - - This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that this class was called EntityFunctions in some previous versions of Entity Framework. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Describes the state of an entity. - - - - - The entity is not being tracked by the context. - An entity is in this state immediately after it has been created with the new operator - or with one of the Create methods. - - - - - The entity is being tracked by the context and exists in the database, and its property - values have not changed from the values in the database. - - - - - The entity is being tracked by the context but does not yet exist in the database. - - - - - The entity is being tracked by the context and exists in the database, but has been marked - for deletion from the database the next time SaveChanges is called. - - - - - The entity is being tracked by the context and exists in the database, and some or all of its - property values have been modified. - - - - - Represents information about a database connection. - - - - - Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. - - The name of the connection string in the application configuration. - - - - Creates a new instance of DbConnectionInfo based on a connection string. - - The connection string to use for the connection. - The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Instances of this class are used to create DbConnection objects for - SQL Server LocalDb based on a given database name or connection string. - - - An instance of this class can be set on the class or in the - app.config/web.config for the application to cause all DbContexts created with no - connection information or just a database name to use SQL Server LocalDb by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Implementations of this interface are used to create DbConnection objects for - a type of database server based on a given database name. - An Instance is set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use a certain type of database server by default. - Two implementations of this interface are provided: - is used to create connections to Microsoft SQL Server, including EXPRESS editions. - is used to create connections to Microsoft SQL - Server Compact Editions. - Other implementations for other database servers can be added as needed. - Note that implementations should be thread safe or immutable since they may - be accessed by multiple threads at the same time. - - - - - Creates a connection based on the given database name or connection string. - - The database name or connection string. - An initialized DbConnection. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. - - - - Creates a connection for SQL Server LocalDb based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog', - 'Data Source', and 'AttachDbFilename'. - The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the - database name when CreateConnection is called. - The 'Data Source' will be set based on the LocalDbVersion argument. - The default is 'Integrated Security=True;'. - - - - - An implementation of that will use Code First Migrations - to update the database to the latest version. - - The type of the context. - The type of the migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use - the connection information from a context constructed using the default constructor - or registered factory if applicable - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - Also allows specifying migrations configuration to use during initialization. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - Migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will - use a specific connection string from the configuration file to connect to - the database to perform the migration. - - The name of the connection string to use for migration. - - - - - - - Helper class that is used to configure a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new column definition to store Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - Value indicating whether or not this column should be configured as a timestamp. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The numeric precision of the column. - The numeric scale of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Value indicating whether or not the database will generate values for this column during insert. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the column supports Unicode content. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Helper class that is used to further configure a table being created from a CreateTable call on - - . - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The type that represents the table's columns. - - - - Initializes a new instance of the TableBuilder class. - - The table creation operation to be further configured. - The migration the table is created in. - - - - Specifies a primary key for the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The name of the primary key. If null is supplied, a default name will be generated. - A value indicating whether or not this is a clustered primary key. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies an index to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - The name of the index. - A value indicating whether or not this is a unique index. - A value indicating whether or not this is a clustered index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies a foreign key constraint to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table that the foreign key constraint targets. - A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - A value indicating whether or not cascade delete should be configured on the foreign key constraint. - The name of this foreign key constraint. If no name is supplied, a default name will be calculated. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Base class for code-based migrations. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Operations to be performed during the upgrade process. - - - - - Operations to be performed during the downgrade process. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - The parameters in this create stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The parameters in this alter stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing stored procedure with the specified name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - Custom annotations that exist on the table to be created. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to handle changes in the annotations defined on tables. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The column this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The columns this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The name of the foreign key constraint in the database. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. - Schema name is optional, if no schema is specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. - Schema name is optional, if no schema is specified then dbo is assumed. - - The columns this foreign key references. - - Additional arguments that may be processed by providers. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a table to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is - assumed. - - The schema the table is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a stored procedure to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be moved. Schema name is optional, if no schema is specified - then dbo is assumed. - - The schema the stored procedure is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a table. To change the schema of a table use MoveTable. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The new name for the table. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified - then dbo is assumed. - - - The new name for the stored procedure. Schema name is optional, if no schema is specified then - dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the column to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the column to be renamed. - The new name for the column. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to add a column to an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to add the column to. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be added. - - An action that specifies the column to be added. i.e. c => c.Int(nullable: false, - defaultValue: 3) - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter the definition of an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table the column exists in. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be changed. - - An action that specifies the new definition for the column. i.e. c => c.String(nullable: - false, defaultValue: "none") - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The primary key column. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key based on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The primary key columns. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that does not have the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the primary key to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that was created with the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on a single column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the columns to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the index to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column(s) the index targets. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename an index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the index to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the index to be renamed. - The new name for the index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL command or set of SQL commands. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL resource file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The manifest resource name of the SQL resource file to be executed. - - The assembly containing the resource file. The calling assembly is assumed if not provided. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - - - - - - - - - - - - - - - - - - - Configuration relating to the use of migrations for a given model. - You will typically create a configuration class that derives - from rather than - using this class. - - - - - The default directory that migrations are stored in. - - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Adds a new SQL generator to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - The SQL generator to be used. - - - - Gets the SQL generator that is set to be used with a given database provider. - - Name of the database provider to get the SQL generator for. - The SQL generator that is set for the database provider. - - - - Adds a new factory for creating instances to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - - A factory for creating instances for a given and - representing the default schema. - - - - - Gets the history context factory that is set to be used with a given database provider. - - Name of the database provider to get thefactory for. - The history context factory that is set for the database provider. - - - - Gets or sets a value indicating if automatic migrations can be used when migrating the database. - - - - - Gets or sets the string used to distinguish migrations belonging to this configuration - from migrations belonging to other configurations using the same database. - This property enables migrations from multiple different models to be applied to applied to a single database. - - - - - Gets or sets a value indicating if data loss is acceptable during automatic migration. - If set to false an exception will be thrown if data loss may occur as part of an automatic migration. - - - - - Gets or sets the derived DbContext representing the model to be migrated. - - - - - Gets or sets the namespace used for code-based migrations. - - - - - Gets or sets the sub-directory that code-based migrations are stored in. - Note that this property must be set to a relative path for a sub-directory under the - Visual Studio project root; it cannot be set to an absolute path. - - - - - Gets or sets the code generator to be used when scaffolding migrations. - - - - - Gets or sets the assembly containing code-based migrations. - - - - - Gets or sets a value to override the connection of the database to be migrated. - - - - - Gets or sets the timeout value used for the individual commands within a - migration. A null value indicates that the default value of the underlying - provider will be used. - - - - - Configuration relating to the use of migrations for a given model. - - The context representing the model that this configuration applies to. - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Runs after upgrading to the latest migration to allow seed data to be updated. - - - Note that the database may already contain seed data when this method runs. This means that - implementations of this method must check whether or not seed data is present and/or up-to-date - and then only make changes if necessary and in a non-destructive way. The - - can be used to help with this, but for seeding large amounts of data it may be necessary to do less - granular checks if performance is an issue. - If the database - initializer is being used, then this method will be called each time that the initializer runs. - If one of the , , - or initializers is being used, then this method will not be - called and the Seed method defined in the initializer should be used instead. - - Context to be used for updating seed data. - - - - - - - - - - - - - - - - - - - DbMigrator is used to apply existing migrations to a database. - DbMigrator can be used to upgrade and downgrade to any given migration. - To scaffold migrations based on changes to your model use - - - - - Base class for decorators that wrap the core - - - - - Initializes a new instance of the MigratorBase class. - - The migrator that this decorator is wrapping. - - - - Gets a list of the pending migrations that have not been applied to the database. - - List of migration Ids - - - - Updates the target database to the latest migration. - - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets a list of the migrations that are defined in the assembly. - - List of migration Ids - - - - Gets a list of the migrations that have been applied to the database. - - List of migration Ids - - - - Gets the configuration being used for the migrations process. - - - - - Migration Id representing the state of the database before any migrations are applied. - - - - - Initializes a new instance of the DbMigrator class. - - Configuration to be used for the migration process. - - - - Gets all migrations that are defined in the configured migrations assembly. - - The list of migrations. - - - - Gets all migrations that have been applied to the target database. - - The list of migrations. - - - - Gets all migrations that are defined in the assembly but haven't been applied to the target database. - - The list of migrations. - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets the configuration that is being used for the migration process. - - - - - A set of extension methods for - - - - - Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation - from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Adds or updates entities by a custom identification expression when SaveChanges is called. - Equivalent to an "upsert" operation from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Generates C# code for a code-based migration. - - - - - Base class for providers that generate code for code-based migrations. - - - - - Generates the code that should be added to the users project. - - Unique identifier of the migration. - Operations to be performed by the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Gets the namespaces that must be output as "using" or "Imports" directives to handle - the code generated by the given operations. - - The operations for which code is going to be generated. - An ordered list of namespace names. - - - - Gets the default namespaces that must be output as "using" or "Imports" directives for - any code generated. - - A value indicating if this class is being generated for a code-behind file. - An ordered list of namespace names. - - - - Gets the instances that are being used. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to specify the definition for a . - The parameter definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Scaffolds code-based migrations to apply pending model changes to the database. - - - - - Initializes a new instance of the MigrationScaffolder class. - - Configuration to be used for scaffolding. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - The scaffolded migration. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The scaffolded migration. - - - - Gets or sets the namespace used in the migration's generated code. - By default, this is the same as MigrationsNamespace on the migrations - configuration object passed into the constructor. For VB.NET projects, this - will need to be updated to take into account the project's root namespace. - - - - - Represents a code-based migration that has been scaffolded and is ready to be written to a file. - - - - - Gets or sets the unique identifier for this migration. - Typically used for the file name of the generated code. - - - - - Gets or sets the scaffolded migration code that the user can edit. - - - - - Gets or sets the scaffolded migration code that should be stored in a code behind file. - - - - - Gets or sets the programming language used for this migration. - Typically used for the file extension of the generated code. - - - - - Gets or sets the subdirectory in the user's project that this migration should be saved in. - - - - - Gets a dictionary of string resources to add to the migration resource file. - - - - - Gets or sets whether the migration was re-scaffolded. - - - - - Helper class that is used by design time tools to run migrations related - commands that need to interact with an application that is being edited - in Visual Studio. - Because the application is being edited the assemblies need to - be loaded in a separate AppDomain to ensure the latest version - is always loaded. - The App/Web.config file from the startup project is also copied - to ensure that any configuration is applied. - - - - - Initializes a new instance of the ToolingFacade class. - - The name of the assembly that contains the migrations configuration to be used. - The name of the assembly that contains the DbContext to be used. - The namespace qualified name of migrations configuration to be used. - The working directory containing the compiled assemblies. - The path of the config file from the startup project. - The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. - The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. - - - - Releases all unmanaged resources used by the facade. - - - - - Gets the fully qualified name of all types deriving from . - - All context types found. - - - - Gets the fully qualified name of a type deriving from . - - The name of the context type. If null, the single context type found in the assembly will be returned. - The context type found. - - - - Gets a list of all migrations that have been applied to the database. - - Ids of applied migrations. - - - - Gets a list of all migrations that have not been applied to the database. - - Ids of pending migrations. - - - - Updates the database to the specified migration. - - The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. - Value indicating if data loss during automatic migration is acceptable. - - - - Generates a SQL script to migrate between two migrations. - - The migration to update from. If null is supplied, a script to update the current database will be produced. - The migration to update to. If null is supplied, a script to update to the latest migration will be produced. - Value indicating if data loss during automatic migration is acceptable. - The generated SQL script. - - - - Scaffolds a code-based migration to apply any pending model changes. - - The name for the generated migration. - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - The scaffolded migration. - - - - - - - Releases all resources used by the facade. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Gets or sets an action to be run to log information. - - - - - Gets or sets an action to be run to log warnings. - - - - - Gets or sets an action to be run to log verbose information. - - - - - Base class for loggers that can be used for the migrations process. - - - - - Logs an informational message. - - The message to be logged. - - - - Logs a warning that the user should be made aware of. - - The message to be logged. - - - - Logs some additional information that should only be presented to the user if they request verbose output. - - The message to be logged. - - - - Generates VB.Net code for a code-based migration. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The parameter model definition to generate code for. - Text writer to add the generated code to. - true to include the column name in the definition; otherwise, false. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - This class is used by Code First Migrations to read and write migration history - from the database. - To customize the definition of the migrations history table you can derive from - this class and override OnModelCreating. Derived instances can either be registered - on a per migrations configuration basis using , - or globally using . - - - - - The default name used for the migrations history table. - - - - - Initializes a new instance of the HistoryContext class. - If you are creating a derived history context you will generally expose a constructor - that accepts these same parameters and passes them to this base constructor. - - - An existing connection to use for the new context. - - - The default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Applies the default configuration for the migrations history table. If you override - this method it is recommended that you call this base implementation before applying your - custom configuration. - - The builder that defines the model for the context being created. - - - - Gets the key used to locate a model that was previously built for this context. This is used - to avoid processing OnModelCreating and calculating the model every time a new context instance is created. - By default this property returns the default schema. - In most cases you will not need to override this property. However, if your implementation of OnModelCreating - contains conditional logic that results in a different model being built for the same database provider and - default schema you should override this property and calculate an appropriate key. - - - - - Gets the default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Gets or sets a that can be used to read and write instances. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - - - - - Gets or sets the Id of the migration this row represents. - - - - - Gets or sets a key representing to which context the row applies. - - - - - Gets or sets the state of the model after this migration was applied. - - - - - Gets or sets the version of Entity Framework that created this entry. - - - - - Represents an error that occurs when an automatic migration would result in data loss. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides additional metadata about a code-based migration. - - - - - Gets the unique identifier for the migration. - - - - - Gets the state of the model before this migration is run. - - - - - Gets the state of the model after this migration is run. - - - - - Decorator to provide logging during migrations operations.. - - - - - Initializes a new instance of the MigratorLoggingDecorator class. - - The migrator that this decorator is wrapping. - The logger to write messages to. - - - - Decorator to produce a SQL script instead of applying changes to the database. - Using this decorator to wrap will prevent - from applying any changes to the target database. - - - - - Initializes a new instance of the MigratorScriptingDecorator class. - - The migrator that this decorator is wrapping. - - - - Produces a script to update the database. - - - The migration to update from. If null is supplied, a script to update the - current database will be produced. - - - The migration to update to. If null is supplied, - a script to update to the latest migration will be produced. - - The generated SQL script. - - - - Represents a column being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be added to. - Details of the column being added. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be added to. - - - - - Gets the details of the column being added. - - - - - Gets an operation that represents dropping the added column. - - - - - - - - Represents a foreign key constraint being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Base class for changes that affect foreign key constraints. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that the foreign key constraint targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the name of the table that the foreign key columns exist in. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - The names of the foreign key column(s). - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this foreign key constraint. - - - - - Gets or sets the name of this foreign key constraint. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddForeignKeyOperation class. - The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to create an index on the foreign key column(s). - - An operation to add the index. - - - - The names of the column(s) that the foreign key constraint should target. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. - - - - - Gets an operation to drop the foreign key constraint. - - - - - - - - Represents adding a primary key to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class to represent operations affecting primary keys. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Returns the default name for the primary key. - - The target table name. - The default primary key name. - - - - Initializes a new instance of the PrimaryKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that contains the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the column(s) that make up the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this primary key. - - - - - Gets or sets the name of this primary key. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - - - - Initializes a new instance of the AddPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the primary key. - - - - - Gets or sets whether this is a clustered primary key. - - - - - Represents altering an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - An operation to revert this alteration of the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table that the column belongs to. - - - - - Gets the new definition for the column. - - - - - Gets an operation that represents reverting the alteration. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents information about a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Determines if this column is a narrower data type than another column. - Used to determine if altering the supplied column definition to this definition will result in data loss. - - The column to compare to. - Details of the database provider being used. - True if this column is of a narrower data type. - - - - Gets the CLR type corresponding to the database type of this column. - - - - - Gets the default value for the CLR type corresponding to the database type of this column. - - - - - Gets or sets a value indicating if this column can store null values. - - - - - Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. - - - - - Gets or sets a value indicating if this property model should be configured as a timestamp. - - - - - Gets or sets the custom annotations that have changed on the column. - - - - - Represents creating a database index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class for operations affecting indexes. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a default index name based on the supplied column names. - - The column names used to create a default index name. - A default index name. - - - - Initializes a new instance of the IndexOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets or sets the table the index belongs to. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the columns that are indexed. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this index. - - - - - Gets or sets the name of this index. - If no name is supplied, a default name will be calculated. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateIndexOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets a value indicating if this is a unique index. - - - - - Gets an operation to drop this index. - - - - - - - - Gets or sets whether this is a clustered index. - - - - - Represents creating a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Custom annotations that exist on the table to be created. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be created. - - - - - Gets the columns to be included in the new table. - - - - - Gets or sets the primary key for the new table. - - - - - Gets custom annotations that exist on the table to be created. - - - - - Gets an operation to drop the table. - - - - - - - - Represents a column being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be dropped from. - - - - - Gets the name of the column to be dropped. - - - - - Gets custom annotations that exist on the column that is being dropped. - - - - - Gets an operation that represents reverting dropping the column. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents a foreign key constraint being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropForeignKeyOperation class. - The PrincipalTable, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc.. - - The operation that represents reverting dropping the foreign key constraint. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the associated index on the foreign key column(s). - - An operation to drop the index. - - - - Gets an operation that represents reverting dropping the foreign key constraint. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The operation that represents reverting dropping the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that represents reverting dropping the index. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping a primary key from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to add the primary key. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents dropping an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be dropped. - - - - - Gets custom annotations that exist on the table that is being dropped. - - - - - Gets custom annotations that exist on columns of the table that is being dropped. - - - - - Gets an operation that represents reverting dropping the table. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Operation representing DML changes to the migrations history table. - The migrations history table is used to store a log of the migrations that have been applied to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the HistoryOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A sequence of command trees representing the operations being applied to the history table. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - A sequence of commands representing the operations being applied to the history table. - - - - - - - - Represents moving a table from one schema to another. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MoveTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be moved. - Name of the schema to move the table to. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be moved. - - - - - Gets the name of the schema to move the table to. - - - - - Gets an operation that moves the table back to its original schema. - - - - - - - - Used when altering the migrations history table so that data can be moved to the new table. - - - The context key for the model. - - - - - Gets a value that indicates whether this is a system table. - - - true if the table is a system table; otherwise, false. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents renaming an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the column belongs to. - Name of the column to be renamed. - New name for the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column belongs to. - - - - - Gets the name of the column to be renamed. - - - - - Gets the new name for the column. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents renaming an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be renamed. - New name for the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be renamed. - - - - - Gets the new name for the table. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents a provider specific SQL statement to be executed directly against the target database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the SqlOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the SQL to be executed. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - - - - Common base class for providers that convert provider agnostic migration - operations into database provider specific SQL commands. - - - - - Converts a set of migration operations into database provider specific SQL. - - The operations to be converted. - Token representing the version of the database being targeted. - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Builds the store type usage for the specified using the facets from the specified . - - Name of the store type. - The target property. - A store-specific TypeUsage - - - - Gets or sets the provider manifest. - - - The provider manifest. - - - - - Represents a migration operation that has been translated into a SQL statement. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the SQL to be executed to perform this migration operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - Gets or sets the batch terminator for the database provider. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The batch terminator for the database provider. - - - - - Extension methods for . - - - - - Returns an implementation that stays in sync with the given - . - - The element type. - The collection that the binding list will stay in sync with. - The binding list. - - - - Represents data in a geodetic (round earth) coordinate system. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( - - ). - - A byte array that contains a well known binary representation of the geography value. - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified well known text value. - - - A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geography value. - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known text value. - The multi polygon value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. - A string containing the well known text representation of this DbGeography value. - - - Generates the well known binary representation of this DbGeography value. - The well-known binary representation of this DbGeography value. - - - Generates the Geography Markup Language (GML) representation of this DbGeography value. - A string containing the GML representation of this DbGeography value. - - - Determines whether this DbGeography is spatially equal to the specified DbGeography argument. - true if other is spatially equal to this geography value; otherwise false. - The geography value that should be compared with this geography value for equality. - - - Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. - true if other is disjoint from this geography value; otherwise false. - The geography value that should be compared with this geography value for disjointness. - - - Determines whether this DbGeography value spatially intersects the specified DbGeography argument. - true if other intersects this geography value; otherwise false. - The geography value that should be compared with this geography value for intersection. - - - Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. - A geography object that represents the union of all points - The distance. - - - Computes the distance between the closest points in this DbGeography value and another DbGeography value. - A double value that specifies the distance between the two closest points in this geography value and other. - The geography value for which the distance from this value should be computed. - - - Computes the intersection of this DbGeography value and another DbGeography value. - A new DbGeography value representing the intersection between this geography value and other. - The geography value for which the intersection with this value should be computed. - - - Computes the union of this DbGeography value and another DbGeography value. - A new DbGeography value representing the union between this geography value and other. - The geography value for which the union with this value should be computed. - - - Computes the difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the difference between this geography value and other. - The geography value for which the difference with this value should be computed. - - - Computes the symmetric difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the symmetric difference between this geography value and other. - The geography value for which the symmetric difference with this value should be computed. - - - Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns a string representation of the geography value. - A string representation of the geography value. - - - Gets the default coordinate system id (SRID) for geography values (WGS 84) - The default coordinate system id (SRID) for geography values (WGS 84) - - - Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. - A representation of this DbGeography value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeography value. - A data contract serializable well known representation of this DbGeography value. - - - Gets the identifier associated with the coordinate system. - The identifier associated with the coordinate system. - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of the given value. - - - - Gets the spatial type name of the DBGeography. - The spatial type name of the DBGeography. - - - Gets a nullable Boolean value indicating whether this DbGeography value is empty. - True if this DbGeography value is empty; otherwise, false. - - - Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> - The number of elements in this DbGeography value. - - - Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Latitude coordinate of this DbGeography value. - - - Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Longitude coordinate of this DbGeography value. - - - Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeography value. - - - Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The M (Measure) coordinate of this DbGeography value. - - - Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. - A nullable double value that indicates the length of this DbGeography value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. - True if this DbGeography value is closed; otherwise, false. - - - Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeography value. - - - Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeography value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - Represents geometric shapes. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( - - ). - - A byte array that contains a well known binary representation of the geometry value. - wellKnownBinary - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownBinary - coordinateSystemId - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownBinary - coordinateSystemId - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownBinary - coordinateSystemId - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownBinary - coordinateSystemId - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multipoint value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownBinary - coordinateSystemId - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - geometryMarkup - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryMarkup - coordinateSystemId - - - - Creates a new value based on the specified well known text value. - - - A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geometry value. - wellKnownText - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownText - coordinateSystemId - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownText - coordinateSystemId - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownText - coordinateSystemId - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownText - coordinateSystemId - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownText - coordinateSystemId - - - Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. - A string containing the well known text representation of this DbGeometry value. - - - Generates the well known binary representation of this DbGeometry value. - The well-known binary representation of this DbGeometry value. - - - Generates the Geography Markup Language (GML) representation of this DbGeometry value. - A string containing the GML representation of this DbGeometry value. - - - Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. - true if other is spatially equal to this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for equality. - other - - - Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. - true if other is disjoint from this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for disjointness. - other - - - Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. - true if other intersects this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for intersection. - other - - - Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. - true if other touches this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. - true if other crosses this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. - true if this geometry value is within other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. - true if this geometry value contains other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. - true if this geometry value overlaps other; otherwise false. - The geometry value that should be compared with this geometry value for overlap. - other - - - Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. - The geometry value that should be compared with this geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - othermatrix - - - Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. - A geometry object that represents the union of all points. - The distance. - - - Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. - A double value that specifies the distance between the two closest points in this geometry value and other. - The geometry value for which the distance from this value should be computed. - other - - - Computes the intersection of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the intersection between this geometry value and other. - The geometry value for which the intersection with this value should be computed. - other - - - Computes the union of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the union between this geometry value and other. - The geometry value for which the union with this value should be computed. - other - - - Computes the difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the difference between this geometry value and other. - The geometry value for which the difference with this value should be computed. - other - - - Computes the symmetric difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the symmetric difference between this geometry value and other. - The geometry value for which the symmetric difference with this value should be computed. - other - - - Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> - An interior ring from this DbGeometry value at a specific position. - The index. - - - Returns a string representation of the geometry value. - A string representation of the geometry value. - - - Gets the default coordinate system id (SRID) for geometry values. - The default coordinate system id (SRID) for geometry values. - - - Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. - A representation of this DbGeometry value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeometry value. - A data contract serializable well known representation of this DbGeometry value. - - - Gets the coordinate system identifier of the DbGeometry object. - The coordinate system identifier of the DbGeometry object. - - - Gets the boundary of the DbGeometry objects. - The boundary of the DbGeometry objects. - - - - Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. - - - The dimension of the given value. - - - - Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. - The envelope (minimum bounding box) of this DbGeometry value. - - - Gets a spatial type name representation of this DbGeometry value. - A spatial type name representation of this DbGeometry value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. - True if this DbGeometry value is empty; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is simple. - True if this DbGeometry value is simple; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is valid. - True if this DbGeometry value is valid; otherwise, false. - - - Gets the convex hull of this DbGeometry value as another DbGeometry value. - The convex hull of this DbGeometry value as another DbGeometry value. - - - Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> - The number of elements in this DbGeometry value. - - - Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The X coordinate of this DbGeometry value. - - - Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The Y coordinate of this DbGeometry value. - - - Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeometry value. - - - Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> - The Measure (M coordinate) of this DbGeometry value. - - - Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. - The length of this DbGeometry value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. - True if this DbGeometry value is closed; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. - True if this DbGeometry value is a ring; otherwise, false. - - - Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeometry value. - - - Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeometry value. - - - Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. - The DbGeometry value that represents the centroid of this DbGeometry value. - - - Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. - A point on the surface of this DbGeometry value. - - - Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. - The DbGeometry value that represents the exterior ring of this DbGeometry value. - - - Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> - The number of interior rings in this DbGeometry value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeography at the specified column value - The ordinal of the column that contains the geography value - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeometry at the specified column value - The ordinal of the data record column that contains the provider-specific geometry data - - - - Returns whether the column at the specified column ordinal is of geography type - - The column ordinal. - - true if the column at the specified column ordinal is of geography type; - false otherwise. - - - - - Returns whether the column at the specified column ordinal is of geometry type - - The column ordinal. - - true if the column at the specified column ordinal is of geometry type; - false otherwise. - - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - The provider value. - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. - A new DbGeography value backed by this spatial services implementation and the specified provider value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geography value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geographyValue, as a new - - . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geographyValue, or the largest element dimension if - - is a collection. - - The geography value for which the dimension value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. - - A string containing the well-known text representation of geographyValue. - The geography value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geography value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeography value. - The geography value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geographyValue is spatially equal to otherGeography; otherwise false. - The first geography value to compare for equality. - The second geography value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geographyValue is disjoint from otherGeography; otherwise false. - The first geography value to compare for disjointness. - The second geography value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geographyValue intersects otherGeography; otherwise false. - The first geography value to compare for intersection. - The second geography value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geography value representing all points less than or equal to distance from the given - - value. - - A new DbGeography value representing all points less than or equal to distance from geographyValue. - The geography value. - A double value specifying how far from geographyValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference of two values. - - A new DbGeography value representing the difference of geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference of two values. - - - A new value representing the symmetric difference of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geography collection. - - The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geography collection. - - The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Latitude coordinate of the given value, if it represents a point. - - - The Latitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Longitude coordinate of the given value, if it represents a point. - - - The Longitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z coordinate) of the given value, if it represents a point. - - The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. - - The end point of geographyValue, if it represents a curve; otherwise null. - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geography value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. - The geography value, which need not represent a linestring or linear ring. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geography value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - A provider value. - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geometry value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geometryValue, as a new - - . - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the boundary of the given - - value. - - - The boundary of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geometryValue, or the largest element dimension if - - is a collection. - - The geometry value for which the dimension value should be retrieved. - - - - Gets the envelope (minimum bounding box) of the given value, as a geometry value. - - - The envelope of geometryValue, as a value. - - The geometry value for which the envelope value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is simple. - - - True if the given value is simple; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is valid. - - - True if the given value is valid; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value, including only X and Y coordinates for points. - - A string containing the well-known text representation of geometryValue. - The geometry value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of with elevation and measure. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geometry value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeometry value. - The geometry value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geometryValue is spatially equal to otherGeometry; otherwise false. - The first geometry value to compare for equality. - The second geometry value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geometryValue is disjoint from otherGeometry; otherwise false. - The first geometry value to compare for disjointness. - The second geometry value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geometryValue intersects otherGeometry; otherwise false. - The first geometry value to compare for intersection. - The second geometry value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially touch. - - true if geometryValue touches otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially cross. - - true if geometryValue crosses otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value is spatially within the other. - - true if geometryValue is within otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value spatially contains the other. - - true if geometryValue contains otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially overlap. - - true if geometryValue overlaps otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - - true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. - The first geometry value. - The geometry value that should be compared with the first geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - - - , - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geometry value representing all points less than or equal to distance from the given - - value. - - A new DbGeometry value representing all points less than or equal to distance from geometryValue. - The geometry value. - A double value specifying how far from geometryValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the convex hull of the given - - value. - - - The convex hull of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference between two values. - - A new DbGeometry value representing the difference between geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference between two values. - - - A new value representing the symmetric difference between geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geometry collection. - - The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geometry collection. - - The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the X coordinate of the given value, if it represents a point. - - - The X coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Y coordinate of the given value, if it represents a point. - - - The Y coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z) of the given value, if it represents a point. - - The elevation (Z) of geometryValue, if it represents a point; otherwise null. - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. - - The end point of geometryValue, if it represents a curve; otherwise null. - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. - - - True if the given value is a ring; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geometry value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. - The geometry value, which need not represent a linestring or linear ring. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. - - The centroid of geometryValue, if it represents a surface; otherwise null. - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. - - - A value that represents a point on the surface of the given DbGeometry value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. - - A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of interior rings in the given value, if it represents a polygon. - - The number of elements in geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an interior ring from the given value, if it represents a polygon. - - The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the default services for the . - - The default services. - - - - Override this property to allow the spatial provider to fail fast when native types or other - resources needed for the spatial provider to function correctly are not available. - The default value is true which means that EF will continue with the assumption - that the provider has the necessary types/resources rather than failing fast. - - - - - The same as but works in partial trust and adds explicit caching of - generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure - we indent the next line properly. - - - - - Specifies the default tab string. This field is constant. - - - - - Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. - Note that any writer passed to one of the constructors of must use this - same culture. The culture is . - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - The tab string to use for indentation. - - - - Closes the document being written to. - - - - - Flushes the stream. - - - - - Outputs the tab string once for each level of indentation according to the - - property. - - - - - Builds a string representing the current indentation level for a new line. - - - Does NOT check if tabs are currently pending, just returns a string that would be - useful in replacing embedded newline characters. - - An empty string, or a string that contains .Indent level's worth of specified tab-string. - - - - Writes the specified string to the text stream. - - The string to write. - - - - Writes the text representation of a Boolean value to the text stream. - - The Boolean value to write. - - - - Writes a character to the text stream. - - The character to write. - - - - Writes a character array to the text stream. - - The character array to write. - - - - Writes a subarray of characters to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double to the text stream. - - The double to write. - - - - Writes the text representation of a Single to the text stream. - - The single to write. - - - - Writes the text representation of an integer to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object to the text stream. - - The object to write. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the specified string to a line without tabs. - - The string to write. - - - - Writes the specified string, followed by a line terminator, to the text stream. - - The string to write. - - - - Writes a line terminator. - - - - - Writes the text representation of a Boolean, followed by a line terminator, to the text stream. - - The Boolean to write. - - - - Writes a character, followed by a line terminator, to the text stream. - - The character to write. - - - - Writes a character array, followed by a line terminator, to the text stream. - - The character array to write. - - - - Writes a subarray of characters, followed by a line terminator, to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double, followed by a line terminator, to the text stream. - - The double to write. - - - - Writes the text representation of a Single, followed by a line terminator, to the text stream. - - The single to write. - - - - Writes the text representation of an integer, followed by a line terminator, to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object, followed by a line terminator, to the text stream. - - The object to write. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the text representation of a UInt32, followed by a line terminator, to the text stream. - - A UInt32 to output. - - - - Gets the encoding for the text writer to use. - - - An that indicates the encoding for the text writer to use. - - - - - Gets or sets the new line character to use. - - The new line character to use. - - - - Gets or sets the number of spaces to indent. - - The number of spaces to indent. - - - - Gets the to use. - - - The to use. - - - - - Convention to apply column ordering specified via - - or the API. This convention throws if a duplicate configured column order - is detected. - - - - - Convention to apply column ordering specified via - - or the API. - - - - - - - - Validates the ordering configuration supplied for columns. - This base implementation is a no-op. - - The name of the table that the columns belong to. - The definition of the table. - - - - Validates the ordering configuration supplied for columns to ensure - that the same ordinal was not supplied for two columns. - - The name of the table that the columns belong to. - The definition of the table. - - - - Represents a conceptual or store model. This class can be used to access information about the shape of the model - and the way the that it has been configured. - - - - - Adds an association type to the model. - - The AssociationType instance to be added. - - - - Adds a complex type to the model. - - The ComplexType instance to be added. - - - - Adds an entity type to the model. - - The EntityType instance to be added. - - - - Adds an enumeration type to the model. - - The EnumType instance to be added. - - - - Adds a function to the model. - - The EdmFunction instance to be added. - - - - Removes an association type from the model. - - The AssociationType instance to be removed. - - - - Removes a complex type from the model. - - The ComplexType instance to be removed. - - - - Removes an entity type from the model. - - The EntityType instance to be removed. - - - - Removes an enumeration type from the model. - - The EnumType instance to be removed. - - - - Removes a function from the model. - - The EdmFunction instance to be removed. - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - - Gets the data space associated with the model, which indicates whether - it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). - - - - - Gets the association types in the model. - - - - - Gets the complex types in the model. - - - - - Gets the entity types in the model. - - - - - Gets the enum types in the model. - - - - - Gets the functions in the model. - - - - - Gets the container that stores entity and association sets, and function imports. - - - - Gets the global items associated with the model. - The global items associated with the model. - - - - An implementation of IDatabaseInitializer that will recreate and optionally re-seed the - database only if the database does not exist. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An instance of this class is obtained from an object and can be used - to manage the actual database backing a DbContext or connection. - This includes creating, deleting, and checking for the existence of a database. - Note that deletion and checking for existence of a database can be performed using just a - connection (i.e. without a full context) by using the static methods of this class. - - - - - Enables the user to pass in a database transaction created outside of the object - if you want the Entity Framework to execute commands within that external transaction. - Alternatively, pass in null to clear the framework's knowledge of that transaction. - - the external transaction - Thrown if the transaction is already completed - - Thrown if the connection associated with the object is already enlisted in a - - transaction - - - Thrown if the connection associated with the object is already participating in a transaction - - Thrown if the connection associated with the transaction does not match the Entity Framework's connection - - - - Begins a transaction on the underlying store connection - - - a object wrapping access to the underlying store's transaction object - - - - - Begins a transaction on the underlying store connection using the specified isolation level - - The database isolation level with which the underlying store transaction will be created - - a object wrapping access to the underlying store's transaction object - - - - - Sets the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Runs the the registered on this context. - If "force" is set to true, then the initializer is run regardless of whether or not it - has been run before. This can be useful if a database is deleted while an app is running - and needs to be reinitialized. - If "force" is set to false, then the initializer is only run if it has not already been - run for this context, model, and connection in this app domain. This method is typically - used when it is necessary to ensure that the database has been created and seeded - before starting some operation where doing so lazily will cause issues, such as when the - operation is part of a transaction. - - - If set to true the initializer is run even if it has already been run. - - - - - Checks whether or not the database is compatible with the the current Code First model. - - - Model compatibility currently uses the following rules. - If the context was created using either the Model First or Database First approach then the - model is assumed to be compatible with the database and this method returns true. - For Code First the model is considered compatible if the model is stored in the database - in the Migrations history table and that model has no differences from the current model as - determined by Migrations model differ. - If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, - then this is used to check for compatibility. - - - If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. - - True if the model hash in the context and the database match; false otherwise. - - - - Creates a new database on the database server for the model defined in the backing context. - Note that calling this method before the database initialization strategy has run will disable - executing that strategy. - - - - - Creates a new database on the database server for the model defined in the backing context, but only - if a database with the same name does not already exist on the server. - - True if the database did not exist and was created; false otherwise. - - - - Checks whether or not the database exists on the server. - - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - Calling this method from outside of an initializer will mark the database as having - not been initialized. This means that if an attempt is made to use the database again - after it has been deleted, then any initializer set will run again and, usually, will - try to create the database again automatically. - - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - - An existing connection to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - - An existing connection to the database. - True if the database did exist and was deleted; false otherwise. - - - - Creates a raw SQL query that will return elements of the given generic type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Creates a raw SQL query that will return elements of the given type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local or ambient transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the transaction the underlying store connection is enlisted in. May be null. - - - - - Returns the connection being used by this context. This may cause the - connection to be created if it does not already exist. - - Thrown if the context has been disposed. - - - - The connection factory to use when creating a from just - a database name or a connection string. - - - This is used when just a database name or connection string is given to or when - the no database name or connection is given to DbContext in which case the name of - the context class is passed to this factory in order to generate a DbConnection. - By default, the instance to use is read from the application's .config - file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in - the config file then is used. Setting this property in code - always overrides whatever value is found in the config file. - - - - - Gets or sets the timeout value, in seconds, for all context operations. - The default value is null, where null indicates that the default value of the underlying - provider will be used. - - - The timeout, in seconds, or null to use the provider default. - - - - - Set this property to log the SQL generated by the to the given - delegate. For example, to log to the console, set this property to . - - - The format of the log text can be changed by creating a new formatter that derives from - and setting it with . - For more low-level control over logging/interception see and - . - - - - - DbModelBuilder is used to map CLR classes to a database schema. - This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. - - - DbModelBuilder is typically used to configure a model by overriding - DbContext.OnModelCreating(DbModelBuilder) - . - You can also use DbModelBuilder independently of DbContext to build a model and then construct a - or . - The recommended approach, however, is to use OnModelCreating in as - the workflow is more intuitive and takes care of common tasks, such as caching the created model. - Types that form your model are registered with DbModelBuilder and optional configuration can be - performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder - API. - When the Build method is called a set of conventions are run to discover the initial model. - These conventions will automatically discover aspects of the model, such as primary keys, and - will also process any data annotations that were specified on your classes. Finally - any configuration that was performed using the DbModelBuilder API is applied. - Configuration done via the DbModelBuilder API takes precedence over data annotations which - in turn take precedence over the default conventions. - - - - - Initializes a new instance of the class. - The process of discovering the initial model will use the set of conventions included - in the most recent version of the Entity Framework installed on your machine. - - - Upgrading to newer versions of the Entity Framework may cause breaking changes - in your application because new conventions may cause the initial model to be - configured differently. There is an alternate constructor that allows a specific - version of conventions to be specified. - - - - - Initializes a new instance of the class that will use - a specific set of conventions to discover the initial model. - - The version of conventions to be used. - - - - Excludes a type from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The type to be excluded. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Configures the default database schema name. This default database schema name is used - for database objects that do not have an explicitly configured schema name. - - The name of the default database schema. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Excludes the specified type(s) from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The types to be excluded from the model. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Registers an entity type as part of the model and returns an object that can be used to - configure the entity. This method can be called multiple times for the same entity to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified entity type. - - - - Registers an entity type as part of the model. - - The type to be registered. - - This method is provided as a convenience to allow entity types to be registered dynamically - without the need to use MakeGenericMethod in order to call the normal generic Entity method. - This method does not allow further configuration of the entity type using the fluent APIs since - these APIs make extensive use of generic type parameters. - - - - - Registers a type as a complex type in the model and returns an object that can be used to - configure the complex type. This method can be called multiple times for the same type to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified complex type. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types - in the model that inherit from or implement the type specified by the generic argument. - This method does not register types as part of the model. - - The type of the entities or complex types that this convention will apply to. - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Creates a based on the configuration performed using this builder. - The connection is used to determine the database provider being used as this - affects the database layer of the generated model. - - Connection to use to determine provider information. - The model that was built. - - - - Creates a based on the configuration performed using this builder. - Provider information must be specified because this affects the database layer of the generated model. - For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) - - The database provider that the model will be used with. - The model that was built. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to the settings of this DbModelBuilder that deal with conventions. - - - - - Gets the for this DbModelBuilder. - The registrar allows derived entity and complex type configurations to be registered with this builder. - - - - - A value from this enumeration can be provided directly to the - class or can be used in the applied to - a class derived from . The value used defines which version of - the DbContext and DbModelBuilder conventions should be used when building a model from - code--also known as "Code First". - - - Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available - when upgrading to a new release of the Entity Framework. However, it may result in an - application behaving differently with the new release than it did with a previous release. - This can be avoided by using a specific version of the conventions, but if a version - other than the latest is set then not all the latest functionality will be available. - - - - - Indicates that the latest version of the and - conventions should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v4.1 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - when targeting .Net Framework 4 should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v6.0 - should be used. - - - - - This attribute can be applied to a class derived from to set which - version of the DbContext and conventions should be used when building - a model from code--also known as "Code First". See the - enumeration for details about DbModelBuilder versions. - - - If the attribute is missing from DbContextthen DbContext will always use the latest - version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. - - - - - Initializes a new instance of the class. - - - The conventions version to use. - - - - - Gets the conventions version. - - - The conventions version. - - - - - A non-generic version of which can be used when the type of entity - is not known at build time. - - - - - Represents a non-generic LINQ to Entities query against a DbContext. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new DbQuery<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns the equivalent generic object. - - The type of element for which the query was created. - The generic set object. - - - - Returns a representation of the underlying query. - - The query string. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Returns the equivalent generic object. - - The type of entity for which the set was created. - The generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - A DbSet represents the collection of all entities in the context, or that can be queried from the - database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. - - - Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a - one-to-one correlation between a type and a set. - - The type that defines the set. - - - - Represents a LINQ to Entities query against a DbContext. - - The type of entity to query for. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns a representation of the underlying query. - - The query string. - - - - Returns a new instance of the non-generic class for this query. - - The query. - A non-generic version. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - An represents the collection of all entities in the context, or that - can be queried from the database, of a given type. is a concrete - implementation of IDbSet. - - - was originally intended to allow creation of test doubles (mocks or - fakes) for . However, this approach has issues in that adding new members - to an interface breaks existing code that already implements the interface without the new members. - Therefore, starting with EF6, no new members will be added to this interface and it is recommended - that be used as the base class for test doubles. - - The type that defines the set. - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - - - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - - - - - - - Returns the equivalent non-generic object. - - The generic set object. - The non-generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - - - - An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the - database the first time that a context is used in the app domain. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the - database only if the model has changed since the database was created. - - The type of the context. - - Whether or not the model has changed is determined by the - method. - To seed the database create a derived class and override the Seed method. - - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - Returned by the ChangeTracker method of to provide access to features of - the context that are related to change tracking of entities. - - - - - Gets objects for all the entities tracked by this context. - - The entries. - - - - Gets objects for all the entities of the given type - tracked by this context. - - The type of the entity. - The entries. - - - - Checks if the is tracking any new, deleted, or changed entities or - relationships that will be sent to the database if is called. - - - Functionally, calling this method is equivalent to checking if there are any entities or - relationships in the Added, Updated, or Deleted state. - Note that this method calls unless - has been set to false. - - - True if underlying have changes, else false. - - - - - Detects changes made to the properties and relationships of POCO entities. Note that some types of - entity (such as change tracking proxies and entities that derive from - ) - report changes automatically and a call to DetectChanges is not normally needed for these types of entities. - Also note that normally DetectChanges is called automatically by many of the methods of - and its related classes such that it is rare that this method will need to be called explicitly. - However, it may be desirable, usually for performance reasons, to turn off this automatic calling of - DetectChanges using the AutoDetectChangesEnabled flag from . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - A non-generic version of the class. - - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the name of the property. - - The property name. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the collection element. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Collection method of - and allow operations such as loading to - be performed on the an entity's collection navigation properties. - - The type of the entity to which this property belongs. - The type of the element in the collection of entities. - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Gets the name of the property. - The name of the property. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - An immutable representation of an Entity Data Model (EDM) model that can be used to create an - or can be passed to the constructor of a . - For increased performance, instances of this type should be cached and re-used to construct contexts. - - - - - Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance - of DbContext can be created instead by using the appropriate DbContext constructor. - If a derived ObjectContext is used, then it must have a public constructor with a single - EntityConnection parameter. - The connection passed is used by the ObjectContext created, but is not owned by the context. The caller - must dispose of the connection once the context has been disposed. - - The type of context to create. - An existing connection to a database for use by the context. - The context. - - - - A non-generic version of the class. - - - - - A non-generic version of the class. - - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - Setting this value to false for a modified property will revert the change by setting the - current value to the original value. If the result is that no properties of the entity are - marked as modified, then the entity will be marked as Unchanged. - Setting this value to false for properties of Added, Unchanged, or Deleted entities - is a no-op. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the complex property. - The equivalent generic object. - - - - Instances of this class are returned from the ComplexProperty method of - and allow access to the state of a complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Instances of this class are returned from the Property method of - and allow access to the state of the scalar - or complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Describes the origin of the database connection string associated with a . - - - - - The connection string was created by convention. - - - - - The connection string was read from external configuration. - - - - - The connection string was explicitly specified at runtime. - - - - - The connection string was overriden by connection information supplied to DbContextInfo. - - - - - Returned by the Configuration method of to provide access to configuration - options for the context. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. - - - This flag determines whether a new transaction will be started when methods such as - are executed outside of a transaction. - Note that this does not change the behavior of . - - - The default transactional behavior. - - - - - Gets or sets a value indicating whether lazy loading of relationships exposed as - navigation properties is enabled. Lazy loading is enabled by default. - - - true if lazy loading is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether or not the framework will create instances of - dynamically generated proxy classes whenever it creates an instance of an entity type. - Note that even if proxy creation is enabled with this flag, proxy instances will only - be created for entity types that meet the requirements for being proxied. - Proxy creation is enabled by default. - - - true if proxy creation is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is false. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets or sets a value indicating whether the - method is called automatically by methods of and related classes. - The default value is true. - - - true if should be called automatically; otherwise, false. - - - - - Gets or sets a value indicating whether tracked entities should be validated automatically when - is invoked. - The default value is true. - - - - - Provides runtime information about a given type. - - - - - Creates a new instance representing a given type. - - - The type deriving from . - - - - - Creates a new instance representing a given targeting a specific database. - - - The type deriving from . - - Connection information for the database to be used. - - - - Creates a new instance representing a given type. An external list of - connection strings can be supplied and will be used during connection string resolution in place - of any connection strings specified in external configuration files. - - - It is preferable to use the constructor that accepts the entire config document instead of using this - constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config - to be found in addition to explicitly specified connection strings. - - - The type deriving from . - - A collection of connection strings. - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - - - - Creates a new instance representing a given , targeting a specific database. - An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - Connection information for the database to be used. - - - - Creates a new instance representing a given type. A - can be supplied in order to override the default determined provider used when constructing - the underlying EDM model. - - - The type deriving from . - - - A specifying the underlying ADO.NET provider to target. - - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - A can be supplied in order to override the default determined - provider used when constructing the underlying EDM model. This can be useful to prevent EF from - connecting to discover a manifest token. - - - The type deriving from . - - An object representing the config file. - - A specifying the underlying ADO.NET provider to target. - - - - - If instances of the underlying type can be created, returns - a new instance; otherwise returns null. - - - A instance. - - - - - The concrete type. - - - - - Whether or not instances of the underlying type can be created. - - - - - The connection string used by the underlying type. - - - - - The connection string name used by the underlying type. - - - - - The ADO.NET provider name of the connection used by the underlying type. - - - - - The origin of the connection string used by the underlying type. - - - - - An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. - - - - - A non-generic version of the class. - - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Returns a new instance of the generic class for the given - generic type for the tracked entity represented by this object. - Note that the type of the tracked entity must be compatible with the generic type or - an exception will be thrown. - - The type of the entity. - A generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Instances of this class provide access to information about and control of entities that - are being tracked by the . Use the Entity or Entities methods of - the context to obtain objects of this type. - - The type of the entity. - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - An expression representing the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - An expression representing the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The type of the member. - The name of the member. - An object representing the member. - - - - Returns a new instance of the non-generic class for - the tracked entity represented by this object. - - The object representing the tracked entity. - A non-generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Represents an Entity Data Model (EDM) created by the . - The Compile method can be used to go from this EDM representation to a - which is a compiled snapshot of the model suitable for caching and creation of - or instances. - - - - - Creates a for this mode which is a compiled snapshot - suitable for caching and creation of instances. - - The compiled model. - - - - Gets the provider information. - - - - - Gets the provider manifest. - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Gets the mapping model. - - - - - A collection of all the properties for an underlying entity or complex object. - - - An instance of this class can be converted to an instance of the generic class - using the Cast method. - Complex properties in the underlying entity or complex object are represented in - the property values as nested instances of this class. - - - - - Creates an object of the underlying type for this dictionary and hydrates it with property - values from this dictionary. - - The properties of this dictionary copied into a new object. - - - - Sets the values of this dictionary by reading values out of the given object. - The given object can be of any type. Any property on the object with a name that - matches a property name in the dictionary and can be read will be read. Other - properties will be ignored. This allows, for example, copying of properties from - simple Data Transfer Objects (DTOs). - - The object to read values from. - - - - Creates a new dictionary containing copies of all the properties in this dictionary. - Changes made to the new dictionary will not be reflected in this dictionary and vice versa. - - A clone of this dictionary. - - - - Sets the values of this dictionary by reading values from another dictionary. - The other dictionary must be based on the same type as this dictionary, or a type derived - from the type for this dictionary. - - The dictionary to read values from. - - - - Gets the value of the property just like using the indexed property getter but - typed to the type of the generic parameter. This is useful especially with - nested dictionaries to avoid writing expressions with lots of casts. - - The type of the property. - Name of the property. - The value of the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the set of names of all properties in this dictionary as a read-only set. - - The property names. - - - - Gets or sets the value of the property with the specified property name. - The value may be a nested instance of this class. - - The property name. - The value of the property. - - - - Groups a pair of strings that identify a provider and server version together into a single object. - - - Instances of this class act as the key for resolving a for a specific - provider from a . This is typically used when registering spatial services - in or when the spatial services specific to a provider is - resolved by an implementation of . - - - - - Creates a new object for a given provider invariant name and manifest token. - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - The manifest token is sometimes referred to as a version hint. - - - - - - - - - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - - - - - A non-generic version of the class. - - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Reference method of - and allow operations such as loading to - be performed on the an entity's reference navigation properties. - - The type of the entity to which this property belongs. - The type of the property. - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Exception thrown by when it was expected that SaveChanges for an entity would - result in a database update but in fact no rows in the database were affected. This usually indicates - that the database has been concurrently updated such that a concurrency token that was expected to match - did not actually match. - Note that state entries referenced by this exception are not serialized due to security and accesses to - the state entries after serialization will return null. - - - - - Exception thrown by when the saving of changes to the database fails. - Note that state entries referenced by this exception are not serialized due to security and accesses to the - state entries after serialization will return null. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Gets objects that represents the entities that could not - be saved to the database. - - The entries representing the entities that could not be saved. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Represents an entity used to store metadata about an EDM in the database. - - - - - Attempts to get the model hash calculated by Code First for the given context. - This method will return null if the context is not being used in Code First mode. - - The context. - The hash string. - - - - Gets or sets the ID of the metadata entity, which is currently always 1. - - The id. - - - - Gets or sets the model hash which is used to check whether the model has - changed since the database was created from it. - - The model hash. - - - - Contains methods used to access the Entity Data Model created by Code First in the EDMX form. - These methods are typically used for debugging when there is a need to look at the model that - Code First creates internally. - - - - - Uses Code First with the given context and writes the resulting Entity Data Model to the given - writer in EDMX form. This method can only be used with context instances that use Code First - and create the model internally. The method cannot be used for contexts created using Database - First or Model First, for contexts created using a pre-existing , or - for contexts created using a pre-existing . - - The context. - The writer. - - - - Writes the Entity Data Model represented by the given to the - given writer in EDMX form. - - An object representing the EDM. - The writer. - - - - A factory for creating derived instances. Implement this - interface to enable design-time services for context types that do not have a - public default constructor. - At design-time, derived instances can be created in order to enable specific - design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation - for derived types that do not have a public, default constructor, implement - this interface. Design-time services will auto-discover implementations of this interface that are in the - same assembly as the derived type. - - The type of the context. - - - - Creates a new instance of a derived type. - - An instance of TContext - - - - This convention causes DbModelBuilder to include metadata about the model - when it builds the model. When creates a model by convention it will - add this convention to the list of those used by the DbModelBuilder. This will then result in - model metadata being written to the database if the DbContext is used to create the database. - This can then be used as a quick check to see if the model has changed since the last time it was - used against the database. - This convention can be removed from the conventions by overriding - the OnModelCreating method on a derived DbContext class. - - - - - This convention uses the name of the derived - class as the container for the conceptual model built by - Code First. - - - - - Applies the convention to the given model. - - The container to apply the convention to. - The model. - - - - This convention uses the namespace of the derived - class as the namespace of the conceptual model built by - Code First. - - - - - Instances of this class are used internally to create constant expressions for - that are inserted into the expression tree to replace references to - and . - - The type of the element. - - - - The public property expected in the LINQ expression tree. - - The query. - - - - Instances of this class are used to create DbConnection objects for - SQL Server Compact Edition based on a given database name or connection string. - - - It is necessary to provide the provider invariant name of the SQL Server Compact - Edition to use when creating an instance of this class. This is because different - versions of SQL Server Compact Editions use different invariant names. - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server Compact Edition by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString - properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - - - - Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. - The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server Compact Edition based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The path to prepend to the database name that will form the file name used by - SQL Server Compact Edition when it creates or reads the database file. - The default value is "|DataDirectory|", which means the file will be placed - in the designated data directory. - - - - - The connection string to use for options to the database other than the 'Data Source'. - The Data Source will be prepended to this string based on the database name when - CreateConnection is called. - The default is the empty string, which means no other options will be used. - - - - - The provider invariant name that specifies the version of SQL Server Compact Edition - that should be used. - - - - - Instances of this class are used to create DbConnection objects for - SQL Server based on a given database name or connection string. By default, the connection is - made to '.\SQLEXPRESS'. This can be changed by changing the base connection - string when constructing a factory instance. - - - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with a default BaseConnectionString property of - 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. - - - - - Creates a new connection factory with the given BaseConnectionString property. - - The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog'. - The 'Initial Catalog' will be prepended to this string based on the database name when - CreateConnection is called. - The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. - - - - - This attribute can be applied to either an entire derived class or to - individual or properties on that class. When applied - any discovered or properties will still be included - in the model but will not be automatically initialized. - - - - - Thrown when a context is generated from the templates in Database First or Model - First mode and is then used in Code First mode. - - - Code generated using the T4 templates provided for Database First and Model First use may not work - correctly if used in Code First mode. To use these classes with Code First please add any additional - configuration using attributes or the DbModelBuilder API and then remove the code that throws this - exception. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Allows configuration to be performed for an complex type in a model. - A ComplexTypeConfiguration can be obtained via the ComplexType method on - or a custom type derived from ComplexTypeConfiguration - can be registered via the Configurations property on . - - The complex type to be configured. - - - - Allows configuration to be performed for a type in a model. - - The type to be configured. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Initializes a new instance of ComplexTypeConfiguration - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same ComplexTypeConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows derived configuration classes for entities and complex types to be registered with a - . - - - Derived configuration classes are created by deriving from - or and using a type to be included in the model as the generic - parameter. - Configuration can be performed without creating derived configuration classes via the Entity and ComplexType - methods on . - - - - - Discovers all types that inherit from or - in the given assembly and adds an instance - of each discovered type to this registrar. - - - Note that only types that are abstract or generic type definitions are skipped. Every - type that is discovered and added must provide a parameterless constructor. - - The assembly containing model configurations to add. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The entity type being configured. - The entity type configuration to be added. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The complex type being configured. - The complex type configuration to be added - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows the conventions used by a instance to be customized. - The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. - - - - - Discover all conventions in the given assembly and add them to the . - - - This method add all conventions ordered by type name. The order in which conventions are added - can have an impact on how they behave because it governs the order in which they are run. - All conventions found must have a parameterless public constructor. - - The assembly containing conventions to be added. - - - - Enables one or more conventions for the . - - The conventions to be enabled. - - - - Enables a convention for the . - - The type of the convention to be enabled. - - - - Enables a convention for the . This convention - will run after the one specified. - - The type of the convention after which the enabled one will run. - The convention to enable. - - - - Enables a configuration convention for the . This convention - will run before the one specified. - - The type of the convention before which the enabled one will run. - The convention to enable. - - - - Disables one or more conventions for the . - - The conventions to be disabled. - - - - Disables a convention for the . - The default conventions that are available for removal can be found in the - System.Data.Entity.ModelConfiguration.Conventions namespace. - - The type of the convention to be disabled. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. - This configuration functionality is available via the Code First Fluent API, see . - - The entity type to be mapped. - - - Initializes a new instance of the class. - - - - Configures the properties that will be included in this mapping fragment. - If this method is not called then all properties that have not yet been - included in a mapping fragment will be configured. - - An anonymous type including the properties to be mapped. - A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Re-maps all properties inherited from base types. - When configuring a derived type to be mapped to a separate table this will cause all properties to - be included in the table rather than just the non-inherited properties. This is known as - Table per Concrete Type (TPC) mapping. - - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name to be mapped to. - - Name of the table. - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name and schema to be mapped to. - - Name of the table. - Schema of the table. - The same configuration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the discriminator column used to differentiate between types in an inheritance hierarchy. - - The name of the discriminator column. - A configuration object to further configure the discriminator column and values. - - - - Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. - - The type of the property being used to discriminate between types. - A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object to further configure the discriminator condition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . - - - - - Configures a primitive column from an entity type. - - - - Configures the primitive column to be optional. - The same instance so that multiple calls can be chained. - - - Configures the primitive column to be required. - The same instance so that multiple calls can be chained. - - - Configures the data type of the primitive column used to store the property. - The same instance so that multiple calls can be chained. - The name of the database provider specific data type. - - - Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. - The same instance so that multiple calls can be chained. - The order that this column should appear in the database table. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Configures the column to allow the maximum length supported by the database provider. - The same instance so that multiple calls can be chained. - - - Configures the column to have the specified maximum length. - The same instance so that multiple calls can be chained. - The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. - - - Configures the column to be fixed length. - The same instance so that multiple calls can be chained. - - - Configures the column to be variable length. - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the condition to require a value in the property. - Rows that do not have a value assigned to column that this property is stored in are - assumed to be of the base type of this entity type. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a database column used to store a string values. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the column to allow the maximum length supported by the database provider. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - - The maximum length for the property. Setting 'null' will result in a default length being used for the column. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be variable length. - Columns are variable length by default. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be optional. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be required. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column. - - Name of the database provider specific data type. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column. - - The order that this column should appear in the database table. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to support Unicode string content. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the column supports Unicode string content. - - Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a discriminator column used to differentiate between types in an inheritance hierarchy. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a many relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be many:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an optional relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be optional:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A lambda expression representing the navigation property on the other end of the relationship. - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an required relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be required:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Base class for performing configuration of a relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures a relationship that can support cascade on delete functionality. - - - - - Configures cascade delete to be on for the relationship. - - - - - Configures whether or not cascade delete is on for the relationship. - - Value indicating if cascade delete is on or not. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a relationship that can support foreign key properties that are exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - The dependent entity type. - - - - Configures a relationship that can only support foreign key properties that are not exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the relationship to use foreign key property(s) that are not exposed in the object model. - The column(s) and table can be customized by specifying a configuration action. - If an empty configuration action is specified then column name(s) will be generated by convention. - If foreign key properties are exposed in the object model then use the HasForeignKey method. - Not all relationships support exposing foreign key properties in the object model. - - Action that configures the foreign key column(s) and table. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the relationship to use foreign key property(s) that are exposed in the object model. - If the foreign key property(s) are not exposed in the object model then use the Map method. - - The type of the key. - A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the column(s) for the foreign key. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for a database column that has been configured with . - The annotation value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The name of the column that was configured with the HasKey method. - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name and schema that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - Schema of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - - - - Configures the table and column mapping of a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the join table name for the relationship. - - Name of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the join table name and schema for the relationship. - - Name of the table. - Schema of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the join table. The annotation value can later be used when - processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the left foreign key. - The left foreign key points to the parent entity of the navigation property specified in the HasMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the right foreign key. - The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - Determines whether the specified object is equal to the current object. - true if the specified object is equal to the current object; otherwise, false. - The object to compare with the current object. - - - - - - - - - - - - - Configures a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - The type of the parent entity of the navigation property specified in the HasMany call. - The type of the parent entity of the navigation property specified in the WithMany call. - - - - Configures the foreign key column(s) and table used to store the relationship. - - Action that configures the foreign key column(s) and table. - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - The default conventions for procedure and parameter names will be used. - - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - - - Configuration to override the default conventions for procedure and parameter names. - - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a property with length facets for an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - Properties are variable length by default. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to allow the maximum length supported by the database provider. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to support Unicode string content. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Convention to process instances of found on properties in the model - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on foreign key properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on navigation properties in the model. - - - - - Convention to process instances of found on primitive properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to detect navigation properties to be inverses of each other when only one pair - of navigation properties exists between the related types. - - - - - - - - Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. - - - - - - - - Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. - - - - - Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties - - - - - Convention to set the table name to be a pluralized version of the entity type name. - - - - - - - - Convention to set precision to 18 and scale to 2 for decimal properties. - - - - - Initializes a new instance of with the default precision and scale. - - - - - Initializes a new instance of with the specified precision and scale. - - Precision - Scale - - - - - - - Convention to move primary key properties to appear first. - - - - - - - - Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. - - - - - - - - Base class for conventions that discover foreign key properties. - - - - - When overriden returns true if should be part of the foreign key. - - The association type being configured. - The dependent end. - The candidate property on the dependent end. - The principal end entity type. - A key property on the principal end that is a candidate target for the foreign key. - true if dependentProperty should be a part of the foreign key; otherwise, false. - - - - - - - Returns true if the convention supports pairs of entity types that have multiple associations defined between them. - - - - - Convention to process instances of found on navigation properties in the model. - - - - - - - - Convention to detect primary key properties. - Recognized naming patterns in order of precedence are: - 1. 'Id' - 2. [type name]Id - Primary key detection is case insensitive. - - - - - Base class for conventions that discover primary key properties. - - - - - - - - When overriden returns the subset of properties that will be part of the primary key. - - The entity type. - The primitive types of the entities - The properties that should be part of the primary key. - - - - - - - Convention to discover foreign key properties whose names are a combination - of the dependent navigation property name and the principal type primary key property name(s). - - - - - - - - - - - Convention to enable cascade delete for any required relationships. - - - - - - - - Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. - - - - - - - - Convention to set the entity set name to be a pluralized version of the entity type name. - - - - - - - - Convention to discover foreign key properties whose names match the principal type primary key property name(s). - - - - - - - - Convention to set a maximum length for properties whose type supports length facets. The default value is 128. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The maximum lenght of properties. - - - - - - - - - - - - - Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The default maximum length for properties. - - - - - - - - - - Convention to configure integer primary keys to be identity. - - - - - - - - Convention to discover foreign key properties whose names are a combination - of the principal type name and the principal type primary key property name(s). - - - - - - - - Allows configuration to be performed for an entity type in a model. - An EntityTypeConfiguration can be obtained via the Entity method on - or a custom type derived from EntityTypeConfiguration - can be registered via the Configurations property on . - - The entity type being configured. - - - - Initializes a new instance of EntityTypeConfiguration - - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how this entity type is mapped to the database schema. - By default, any configuration will also apply to any type derived from this entity type. - Derived types can be configured via the overload of Map that configures a derived type or - by using an EntityTypeConfiguration for the derived type. - The properties of an entity can be split between multiple tables using multiple Map calls. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how a derived entity type is mapped to the database schema. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - The derived entity type to be configured. - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures an optional relationship from this entity type. - Instances of the entity type will be able to be saved to the database without this relationship being specified. - The foreign key in the database will be nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a required relationship from this entity type. - Instances of the entity type will not be able to be saved to the database unless this relationship is specified. - The foreign key in the database will be non-nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a many relationship from this entity type. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Exception thrown by during model creation when an invalid model is generated. - - - - - Initializes a new instance of ModelValidationException - - - - - Initializes a new instance of ModelValidationException - - The exception message. - - - - Initializes a new instance of ModelValidationException - - The exception message. - The inner exception. - - - Initializes a new instance of class serialization info and streaming context. - The serialization info. - The streaming context. - - - - Exception thrown from when validating entities fails. - - - - - Initializes a new instance of DbEntityValidationException. - - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - The inner exception. - - - - Validation results. - - - - - Represents validation results for single entity. - - - - - Creates an instance of class. - - Entity entry the results applies to. Never null. - - List of instances. Never null. Can be empty meaning the entity is valid. - - - - - Gets an instance of the results applies to. - - - - - Gets validation errors. Never null. - - - - - Gets an indicator if the entity is valid. - - - - - Exception thrown from when an exception is thrown from the validation - code. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and - context. - - The serialization info. - The streaming context. - - - - Validation error. Can be either entity or property level validation error. - - - - - Creates an instance of . - - Name of the invalid property. Can be null. - Validation error message. Can be null. - - - - Gets name of the invalid property. - - - - - Gets validation error message. - - - - diff --git a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.dll b/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.dll deleted file mode 100644 index 481c1c7c1..000000000 Binary files a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.xml b/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.xml deleted file mode 100644 index e2e028a17..000000000 --- a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.SqlServer.xml +++ /dev/null @@ -1,2048 +0,0 @@ - - - - EntityFramework.SqlServer - - - - - Contains extension methods for the class. - - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - - The type of the result produced by the associated . - - The task to be awaited on. - An object used to await this task. - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - The task to be awaited on. - An object used to await this task. - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - - The type of the result produced by the associated . - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The result of the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - An that retries actions that throw exceptions caused by SQL Azure transient failures. - - - This execution strategy will retry the operation on and - if the contains any of the following error numbers: - 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20 - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for - number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the checksum of the values in a collection. Null values are ignored. - The checksum computed from the input collection. - The collection of values over which the checksum is computed. - - - Returns the ASCII code value of the left-most character of a character expression. - The ASCII code of the first character in the input string. - A valid string. - - - Returns the character that corresponds to the specified integer ASCII value. - The character that corresponds to the specified ASCII value. - An ASCII code. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - - A of value that is the starting position of target if it is found in toSearch . - - The string expression to be searched. - The string expression to be found. - The character position in toSearch where searching begins. - - - Returns the starting position of one expression found within another expression. - The starting position of target if it is found in toSearch . - The string expression to be searched. - The string expression to be found. - The character position in toSearch at which searching begins. - - - Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions. - The SOUNDEX difference between the two strings. - The first string. - The second string. - - - Returns the Unicode character with the specified integer code, as defined by the Unicode standard. - The character that corresponds to the input character code. - A character code. - - - Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types. - The starting character position where the string pattern was found. - A string pattern to search for. - The string to search. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with brackets added. - The expression that quote characters will be added to. - - - Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier. - The original string with the specified quote characters added. - The expression that quote characters will be added to. - The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used. - - - Repeats a string value a specified number of times. - The target string, repeated the number of times specified by count . - A valid string. - The value that specifies how many time to repeat target . - - - Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names. - The SOUNDEX code of the input string. - A valid string. - - - Returns a string of repeated spaces. - A string that consists of the specified number of spaces. - The number of spaces. If negative, a null string is returned. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - - - Returns character data converted from numeric data. - The numeric input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Returns character data converted from numeric data. - The input expression converted to a string. - A numeric expression. - The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10. - The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. - - - Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position. - A string consisting of the two strings. - The target string. - The character position in stringinput where the replacement string is to be inserted. - The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement . - The substring to be inserted into stringInput . - - - Returns the integer value, as defined by the Unicode standard, for the first character of the input expression. - The character code for the first character in the input string. - A valid string. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - The angle, in radians, defined by the input cosine value. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine. - An angle, measured in radians. - The cosine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine. - An angle, measured in radians. - The sine of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent. - An angle, measured in radians. - The tangent of an angle. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value. - An angle, measured in radians. - The y-coordinate of a point. - The x-coordinate of a point. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - Returns the trigonometric cosine of the specified angle, in radians, in the specified expression. - The trigonometric cosine of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - A mathematical function that returns the trigonometric cotangent of the specified angle, in radians. - The trigonometric cotangent of the specified angle. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the corresponding angle in degrees for an angle specified in radians. - The specified angle converted to degrees. - An angle, measured in radians. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the exponential value of the specified float expression. - The constant e raised to the power of the input value. - The input value. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the natural logarithm of the specified input value. - The natural logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the base-10 logarithm of the specified input value. - The base-10 logarithm of the input value. - A numeric expression. - - - Returns the constant value of pi. - The numeric value of pi. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns the radian measure corresponding to the specified angle in degrees. - The radian measure of the specified angle. - The angle, measured in degrees. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - - - Returns a pseudo-random float value from 0 through 1, exclusive. - The pseudo-random value. - The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression. - The sign of the input expression. - A numeric expression. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the trigonometric sine of the specified angle. - The trigonometric sine of the input expression. - An angle, measured in radians. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square root of the specified number. - The square root of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the square of the specified number. - The square of the input value. - A numeric expression. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns the trigonometric tangent of the input expression. - The tangent of the input angle. - An angle, measured in radians. - - - Returns a new datetime value based on adding an interval to the specified date. - The new date. - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new time span value based on adding an interval to the specified time span. - The new time span. - The part of the date to increment. - The value used to increment a date by a specified amount. - The time span to increment. - - - Returns a new date value based on adding an interval to the specified date. - The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC). - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns a new datetime value based on adding an interval to the specified date. - - A of value that is the new date. - - The part of the date to increment. - The value used to increment a date by a specified amount. - The date to increment. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The value specifying the number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two Dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns the count of the specified datepart boundaries crossed between the specified start date and end date. - The number of time intervals between the two dates. - The part of the date to calculate the differing number of time intervals. - The first date. - The second date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns a character string that represents the specified datepart of the specified date. - The specified part of the specified date. - The part of the date to calculate the differing number of time intervals. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The the specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns an integer that represents the specified datepart of the specified date. - The specified datepart of the specified date. - The part of the date to return the value. - The date. - - - Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database timestamp. - - - Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running. - The current database UTC timestamp. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for length. - - - Returns the number of bytes used to represent any expression. - The number of bytes in the input value. - The value to be examined for data length. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input values. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input argument. - The checksum computed over the input value. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - The character array for which the checksum is calculated. - - - Returns the checksum value computed over the input arguments. - The checksum computed over the input values. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - The value for which the checksum is calculated. - - - Returns the current date and time. - The current date and time. - - - Returns the name of the current user. - The name of the current user. - - - Returns the workstation name. - The name of the workstation. - - - Returns a database user name corresponding to a specified identification number. - The user name. - A user ID. - - - Returns a database user name corresponding to a specified identification number. - The user name. - - - Indicates whether the input value is a valid numeric type. - 1 if the input expression is a valid numeric data type; otherwise, 0. - A string expression. - - - Indicates whether the input value is a valid date or time. - 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0. - The tested value. - - - - Provider to convert provider agnostic migration operations into SQL commands - that can be run against a Microsoft SQL Server database. - - - - - Converts a set of migration operations into Microsoft SQL Server specific SQL. - - The operations to be converted. - Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Generates the specified update database operation which represents applying a series of migrations. - The generated script is idempotent, meaning it contains conditional logic to check if individual migrations - have already been applied and only apply the pending ones. - - The update database operation. - - - - Generates SQL for a . - Allows derived providers to handle additional operation types. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Creates an empty connection for the current provider. - Allows derived providers to use connection other than . - - An empty connection for the current provider. - - - - Generates the specified create procedure operation. - - The create procedure operation. - - - - Generates the specified alter procedure operation. - - The alter procedure operation. - - - - Generates the specified drop procedure operation. - - The drop procedure operation. - - - - Generates SQL for a . This method differs from - in that it will - create the target database schema if it does not already exist. - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Writes CREATE TABLE SQL to the target writer. - - The operation to produce SQL for. - The target writer. - - - - Override this method to generate SQL when the definition of a table or its attributes are changed. - The default implementation of this method does nothing. - - The operation describing changes to the table. - - - - Generates SQL to mark a table as a system table. - Generated SQL should be added using the Statement method. - - The table to mark as a system table. - The to write the generated SQL to. - - - - Generates SQL to create a database schema. - Generated SQL should be added using the Statement method. - - The name of the schema to create. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Call this method to generate SQL that will attempt to drop the default constraint created - when a column is created. This method is usually called by code that overrides the creation or - altering of columns. - - The table to which the constraint applies. - The column to which the constraint applies. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement or StatementBatch methods. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates the specified rename procedure operation. - - The rename procedure operation. - - - - Generates the specified move procedure operation. - - The move procedure operation. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL for the given column model. This method is called by other methods that - process columns and can be overridden to change the SQL generated. - - The column for which SQL is being generated. - The writer to which generated SQL should be written. - - - - Generates SQL for a . - Generated SQL should be added using the Statement method. - - The operation to produce SQL for. - - - - Generates SQL to specify a constant byte[] default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant bool default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTime default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant DateTimeOffset default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant Guid default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant string default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant TimeSpan default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geogrpahy default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant geometry default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify a constant default value being set on a column. - This method just generates the actual value, not the SQL to set the default value. - - The value to be set. - SQL representing the default value. - - - - Generates SQL to specify the data type of a column. - This method just generates the actual type, not the SQL to create the column. - - The definition of the column. - SQL representing the data type. - - - - Generates a quoted name. The supplied name may or may not contain the schema. - - The name to be quoted. - The quoted name. - - - - Quotes an identifier for SQL Server. - - The identifier to be quoted. - The quoted identifier. - - - - Adds a new Statement to be executed against the database. - - The statement to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - The batch terminator for the database provider. - - - - Gets a new that can be used to build SQL. - This is just a helper method to create a writer. Writing to the writer will - not cause SQL to be registered for execution. You must pass the generated - SQL to the Statement method. - - An empty text writer to use for SQL generation. - - - - Adds a new Statement to be executed against the database. - - The writer containing the SQL to be executed. - The batch terminator for the database provider. - - - - Breaks sql string into one or more statements, handling T-SQL utility statements as necessary. - - The SQL to split into one ore more statements to be executed. - Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails. - - - - Returns the column default value to use for store-generated GUID columns when - no default value is explicitly specified in the migration. - Returns newsequentialid() for on-premises SQL Server 2005 and later. - Returns newid() for SQL Azure. - - Either newsequentialid() or newid() as described above. - - - - Contains function stubs that expose SqlServer methods in Linq to Entities. - - - - Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geography instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance. - The geography value. - - - Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geography instance is less than or equal to a specified value - The geography value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees. - the maximum angle between the point returned by EnvelopeCenter(). - The geography value. - - - Returns a point that can be used as the center of a bounding circle for the geography instance. - A SqlGeography value that specifies the location of the center of a bounding circle. - The geography value. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geography value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Tests if the SqlGeography instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geography value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Returns the total number of rings in a Polygon instance. - The total number of rings. - The geography value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geography value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings(). - A SqlGeography object that represents the ring specified by n. - The geography value. - An int expression between 1 and the number of rings in a polygon instance. - - - Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID). - The constructed geometry instance. - The x-coordinate of the Point being generated. - The y-coordinate of the Point being generated - The SRID of the geography instance. - - - Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance. - The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance. - The geometry value. - - - Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance. - The union of all point values whose distance from a geometry instance is less than or equal to a specified value - The geometry value. - The distance. - The specified tolerance. - Specifying whether the tolerance value is relative or absolute. - - - Tests if the SqlGeometry instance is the same as the specified type. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - The geometry value. - A string that specifies one of the 12 types exposed in the geography type hierarchy. - - - Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available. - True if a geography instance potentially intersects another SqlGeography instance; otherwise, false. - The geometry value. - Another geography instance to compare against the instance on which Filter is invoked. - - - Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type. - The converted geometry instance. - The geometry value. - - - Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance. - - Returns . - - The geometry value. - The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number. - - - - The DbProviderServices implementation for the SqlClient provider for SQL Server. - - - Note that instance of this type also resolve additional provider services for Microsoft SQL Server - when this type is registered as an EF provider either using an entry in the application's config file - or through code-based registration in . - The services resolved are: - Requests for are resolved to a Singleton instance of - to create connections to SQL Express by default. - Requests for for the invariant name "System.Data.SqlClient" - for any server name are resolved to a delegate that returns a - to provide a non-retrying policy for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to instances to provide default Migrations SQL - generation for SQL Server. - Requests for for the invariant name "System.Data.SqlClient" are - resolved to a Singleton instance of to provide default spatial - services for SQL Server. - - - - - This is the well-known string using in configuration files and code-based configuration as - the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and - Entity Framework provider services. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object, given the connection and command tree - - provider manifest that was determined from metadata - command tree for the statement - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - can cause deadlocks. - So here overriding to provide a method that does not clone DesignTimeVisible. - - the object to clone - a clone of the - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - - Returns the provider manifest by using the specified version information. - - The token information associated with the provider manifest. - The provider manifest by using the specified version information. - - - - Gets a spatial data reader for SQL Server. - - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Gets a spatial data reader for SQL Server. - - The manifest token associated with the provider manifest. - The spatial data reader. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Create the database and the database objects. - If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename. - Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name. - However if we try to replicate the name under which it would be attached, the following scenario would fail: - The file does not exist, but registered with database. - The user calls: If (DatabaseExists) DeleteDatabase - CreateDatabase - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Determines whether the database for the given connection exists. - There are three cases: - 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > true, - if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 - 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise - if the there are no databases corresponding to the given file return false, otherwise throw. - Note: We open the connection to cover the scenario when the mdf exists, but is not attached. - Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case. - Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487) - For further details on the behavior when AttachDBFilename is specified see Dev10# 188936 - - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - True if the provider can deduce the database only based on the connection. - - - - Delete the database for the given connection. - There are three cases: - 1. If Initial Catalog is specified (X) drop database X - 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F - if none throw - 3. If niether the catalog not the file name is specified - throw - Note that directly deleting the files does not work for a remote server. However, even for not attached - databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase - - Connection - Timeout for internal commands. - Item Collection. - - - - The Singleton instance of the SqlProviderServices type. - - - - - Set to the full name of the Microsoft.SqlServer.Types assembly to override the default selection - - - - - Set this flag to false to prevent values from being truncated to - the scale (number of decimal places) defined for the column. The default value is true, - indicating that decimal values will be truncated, in order to prevent breaking existing - applications that depend on this behavior. - - - With this flag set to true objects are created with their Scale - properties set. When this flag is set to false then the Scale properties are not set, meaning - that the truncation behavior of SqlParameter is avoided. - - - - - An implementation of to provide support for geospatial types when using - Entity Framework with Microsoft SQL Server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.dll b/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.dll deleted file mode 100644 index 774321afb..000000000 Binary files a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.xml b/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.xml deleted file mode 100644 index 899647ea8..000000000 --- a/packages/EntityFramework.6.1.3/lib/net45/EntityFramework.xml +++ /dev/null @@ -1,52816 +0,0 @@ - - - - EntityFramework - - - - - Represents a result mapping for a function import. - - - - - Base class for items in the mapping space (DataSpace.CSSpace) - - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Gets the type mappings. - - - - - Specifies a mapping condition evaluated by checking whether the value - of the a property/column is null or not null. - - - - - Mapping metadata for Conditional property mapping on a type. - Condition Property Mapping specifies a Condition either on the C side property or S side property. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ConditionProperyMap ( constant value-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the condition property map elements in the - above example. - - - - - Mapping metadata for all types of property mappings. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all property map elements in the - above example. This includes the scalar property maps, complex property maps - and end property maps. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped property. - - - - - Gets an EdmProperty that specifies the mapped column. - - - - - Creates an IsNullConditionMapping instance. - - An EdmProperty that specifies a property or column. - A boolean that indicates whether to perform a null or a not-null check. - - - - Gets a bool that specifies whether the condition is evaluated by performing a null check - or a not-null check. - - - - - Specifies a mapping condition evaluated by comparing the value of - a property or column with a given value. - - - - - Creates a ValueConditionMapping instance. - - An EdmProperty that specifies a property or column. - An object that specifies the value to compare with. - - - - Gets an object that specifies the value to check against. - - - - - Serializes an that conforms to the restrictions of a single - CSDL schema file to an XML writer. The model to be serialized must contain a single - . - - - - - Serialize the to the XmlWriter. - - - The EdmModel to serialize. - - The XmlWriter to serialize to. - The serialized model's namespace. - true if the model is valid; otherwise, false. - - - - Occurs when an error is encountered serializing the model. - - - - - Information about an error that occurred processing an Entity Framework model. - - - - - Gets an optional value indicating which property of the source item caused the event to be raised. - - - - - Gets an optional descriptive message the describes the error that is being raised. - - - - - Gets a value indicating the that caused the event to be raised. - - - - - Contains additional attributes and properties of the - - - Note that objects are short lived and exist only to - make initialization easier. Instance of this type are not - compared to each other and arrays returned by array properties are copied to internal - collections in the ctor. Therefore it is fine to suppress the - Code Analysis messages. - - - - Gets or sets the function schema. - The function schema. - - - Gets or sets the store function name. - The store function name. - - - Gets or sets the command text associated with the function. - The command text associated with the function. - - - Gets or sets the entity sets for the function. - The entity sets for the function. - - - Gets a value that indicates whether this is an aggregate function. - true if this is an aggregate function; otherwise, false. - - - Gets or sets whether this function is a built-in function. - true if this function is a built-in function; otherwise, false. - - - Gets or sets whether the function contains no arguments. - true if the function contains no arguments; otherwise, false. - - - Gets or sets whether this function can be composed. - true if this function can be composed; otherwise, false. - - - Gets or sets whether this function is from a provider manifest. - true if this function is from a provider manifest; otherwise, false. - - - Gets or sets whether this function is a cached store function. - true if this function is a cached store function; otherwise, false. - - - Gets or sets whether this function is a function import. - true if this function is a function import; otherwise, false. - - - Gets or sets the return parameters. - The return parameters. - - - Gets or sets the parameter type semantics. - The parameter type semantics. - - - Gets or sets the function parameters. - The function parameters. - - - - Serializes the storage (database) section of an to XML. - - - - - Serialize the to the - - The EdmModel to serialize - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Serialize the to the - - The EdmModel to serialize - Namespace name on the Schema element - Provider information on the Schema element - ProviderManifestToken information on the Schema element - The XmlWriter to serialize to - A value indicating whether to serialize Nullable attributes when they are set to the default value. - true if model can be serialized, otherwise false - - - - Occurs when an error is encountered serializing the model. - - - - Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. - - - Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. - The type of the result produced by the visitor. - - - When overridden in a derived class, handles any expression of an unrecognized type. - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern method for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - A result value of a specific type. - - The that is being visited. - - - - - Typed visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - An instance of TResultType. - - - - Initializes a new instance of the - - class. - - - - Replaces an old expression with a new one for the expression visitor. - The old expression. - The new expression. - - - Represents an event when the variable is rebound for the expression visitor. - The location of the variable. - The reference of the variable where it is rebounded. - - - Represents an event when entering the scope for the expression visitor with specified scope variables. - The collection of scope variables. - - - Exits the scope for the expression visitor. - - - Implements the visitor pattern for the expression. - The implemented visitor pattern. - The expression. - - - Implements the visitor pattern for the expression list. - The implemented visitor pattern. - The expression list. - - - Implements the visitor pattern for expression binding. - The implemented visitor pattern. - The expression binding. - - - Implements the visitor pattern for the expression binding list. - The implemented visitor pattern. - The expression binding list. - - - Implements the visitor pattern for the group expression binding. - The implemented visitor pattern. - The binding. - - - Implements the visitor pattern for the sort clause. - The implemented visitor pattern. - The sort clause. - - - Implements the visitor pattern for the sort order. - The implemented visitor pattern. - The sort order. - - - Implements the visitor pattern for the aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the function aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the group aggregate. - The implemented visitor pattern. - The aggregate. - - - Implements the visitor pattern for the Lambda function. - The implemented visitor pattern. - The lambda function. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the basic functionality required by expression types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the different kinds of constants. - The implemented visitor. - The constant expression. - - - Implements the visitor pattern for a reference to a typed null literal. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a variable that is currently in scope. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for an invocation of a function. - The implemented visitor. - The function expression. - - - Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects. - The implemented visitor. - The expression. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the comparison operation applied to two arguments. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the null determination applied to a single argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the arithmetic operation applied to numeric arguments. - The implemented visitor. - The arithmetic expression. - - - Implements the visitor pattern for the logical AND expression. - The implemented visitor. - The logical AND expression. - - - Implements the visitor pattern for the logical OR of two Boolean arguments. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the DbInExpression. - The implemented visitor. - The DbInExpression that is being visited. - - - Implements the visitor pattern for the logical NOT of a single Boolean argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the removed duplicate elements from the specified set argument. - The implemented visitor. - The distinct expression. - - - Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton. - The implemented visitor. - The element expression. - - - Implements the visitor pattern for an empty set determination applied to a single set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set union operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set intersection operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the set subtraction operation between the left and right operands. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a type conversion operation applied to a polymorphic argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type comparison of a single argument against the specified type. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the type conversion of a single argument to the specified type. - The implemented visitor. - The cast expression. - - - Implements the visitor pattern for the When, Then, and Else clauses. - The implemented visitor. - The case expression. - - - Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the construction of a new instance of a given type, including set and record types. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the navigation of a relationship. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that retrieves an entity based on the specified reference. - The implemented visitor. - The DEREF expression. - - - Implements the visitor pattern for the retrieval of the key value from the underlying reference value. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance. - The implemented visitor. - The entity reference expression. - - - Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a predicate applied to filter an input set. - The implemented visitor. - The filter expression. - - - Implements the visitor pattern for the projection of a given input set over the specified expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the unconditional join operation between the given collection arguments. - The implemented visitor. - The join expression. - - - Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the invocation of the specified function for each element in the specified input set. - The implemented visitor. - The APPLY expression. - - - Implements the visitor pattern for a group by operation. - The implemented visitor. - The expression. - - - Implements the visitor pattern for the skip expression. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a sort key that can be used as part of the sort order. - The implemented visitor. - The expression. - - - Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set. - The implemented visitor. - The expression. - - - - When this attribute is placed on a property it indicates that the database column to which the - property is mapped has an index. - - - This attribute is used by Entity Framework Migrations to create indexes on mapped database columns. - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Creates a instance for an index that will be named by convention and - has no column order, clustering, or uniqueness specified. - - - - - Creates a instance for an index with the given name and - has no column order, clustering, or uniqueness specified. - - The index name. - - - - Creates a instance for an index with the given name and column order, - but with no clustering or uniqueness specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - The index name. - A number which will be used to determine column ordering for multi-column indexes. - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - Returns true if this attribute specifies the same name and configuration as the given attribute. - - The attribute to compare. - True if the other object is equal to this object; otherwise false. - - - - - - - The index name. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no - column order has been specified. - - - Multi-column indexes are created by using the same index name in multiple attributes. The information - in these attributes is then merged together to specify the actual database index. - - - - - Set this property to true to define a clustered index. Set this property to false to define a - non-clustered index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Set this property to true to define a unique index. Set this property to false to define a - non-unique index. - - - The value of this property is only relevant if returns true. - If returns false, then the value of this property is meaningless. - - - - - Returns true if has been set to a value. - - - - - Returns a different ID for each object instance such that type descriptors won't - attempt to combine all IndexAttribute instances into a single instance. - - - - - A class derived from this class can be placed in the same assembly as a class derived from - to define Entity Framework configuration for an application. - Configuration is set by calling protected methods and setting protected properties of this - class in the constructor of your derived type. - The type to use can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Any class derived from must have a public parameterless constructor - and that constructor should call this constructor. - - - - - The Singleton instance of for this app domain. This can be - set at application start before any Entity Framework features have been used and afterwards - should be treated as read-only. - - The instance of . - - - - Attempts to discover and load the associated with the given - type. This method is intended to be used by tooling to ensure that - the correct configuration is loaded into the app domain. Tooling should use this method - before accessing the property. - - A type to use for configuration discovery. - - - - Attempts to discover and load the from the given assembly. - This method is intended to be used by tooling to ensure that the correct configuration is loaded into - the app domain. Tooling should use this method before accessing the - property. If the tooling knows the type being used, then the - method should be used since it gives a greater chance that - the correct configuration will be found. - - An to use for configuration discovery. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The exceptions to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to - add a instance to the Chain of Responsibility of resolvers that - are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - - A implementation is automatically registered as a default resolver - when it is added with a call to . This allows EF providers to act as - resolvers for other services that may need to be overridden by the provider. - - The resolver to add. - - - - Call this method from the constructor of a class derived from to register - an Entity Framework provider. - - - Note that the provider is both registered as a service itself and also registered as a default resolver with - a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that - may need to be overridden by the provider. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register - an ADO.NET provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for - and . This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The provider instance. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - A function that returns a new instance of an execution strategy. - - - - Call this method from the constructor of a class derived from to register an - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A function that returns a new instance of an execution strategy. - A string that will be matched against the server name in the connection string. - - - - Call this method from the constructor of a class derived from to register a - . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name and - for a given server name. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used. - - A function that returns a new instance of a transaction handler. - A string that will be matched against the server name in the connection string. - - - - Sets the that is used to create connections by convention if no other - connection string or connection is given to or can be discovered by . - Note that a default connection factory is set in the app.config or web.config file whenever the - EntityFramework NuGet package is installed. As for all config file settings, the default connection factory - set in the config file will take precedence over any setting made with this method. Therefore the setting - must be removed from the config file before calling this method will have any effect. - Call this method from the constructor of a class derived from to change - the default connection factory being used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The connection factory. - - - - Call this method from the constructor of a class derived from to - set the pluralization service. - - The pluralization service to use. - - - - Call this method from the constructor of a class derived from to - set the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - - Calling this method is equivalent to calling . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Call this method from the constructor of a class derived from to register a - for use with the provider represented by the given invariant name. - - - This method is typically used by providers to register an associated SQL generator for Code First Migrations. - It is different from setting the generator in the because it allows - EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project - and/or Migrations are not being explicitly used. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - A delegate that returns a new instance of the SQL generator each time it is called. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows provider manifest tokens to - be obtained from connections without necessarily opening the connection. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The manifest token resolver. - - - - Call this method from the constructor of a class derived from to set - a factory for implementations of which allows custom annotations - represented by instances to be serialized to and from the EDMX XML. - - - Note that an is not needed if the annotation uses a simple string value. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The name of custom annotation that will be handled by this serializer. - A delegate that will be used to create serializer instances. - - - - Call this method from the constructor of a class derived from to set - an implementation of which allows a - to be obtained from a in cases where the default implementation is not - sufficient. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The provider factory service. - - - - Call this method from the constructor of a class derived from to set - a as the model cache key factory which allows the key - used to cache the model behind a to be changed. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can - be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The key factory. - - - - Call this method from the constructor of a class derived from to set - a delegate which which be used for - creation of the default for a any - . This default factory will only be used if no factory is - set explicitly in the and if no factory has been registered - for the provider in use using the - - method. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - a delegate which allows for creation of a customized - for the given provider for any - that does not have an explicit factory set. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality - can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container. - - The invariant name of the ADO.NET provider for which this generator should be used. - - A factory for creating instances for a given and - representing the default schema. - - - - - Call this method from the constructor of a class derived from to set - the global instance of which will be used whenever a spatial provider is - required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider - is obtained from the a implementation which is in turn returned by resolving - a service for passing the provider invariant name as a key. However, this - cannot work for stand-alone instances of and since - it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances - of and the global spatial provider is always used. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider and provider - manifest token. - - - Use - to register spatial services for use only when a specific manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - - The indicating the type of ADO.NET connection for which this spatial provider will be used. - - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - an implementation of to use for a specific provider with any - manifest token. - - - Use - to register spatial services for use when any manifest token is returned by the provider. - Use to register global - spatial services to be used when provider information is not available or no provider-specific - spatial services are found. - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. - The spatial provider. - - - - Call this method from the constructor of a class derived from to set - a factory for the type of to use with . - - - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - instance onto before any commands will be logged. - For more low-level control over logging/interception see and - . - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - A delegate that will create formatter instances. - - - - Call this method from the constructor of a class derived from to - register an at application startup. Note that interceptors can also - be added and removed at any time using . - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - . This means that, if desired, the same functionality can be achieved using - a custom resolver or a resolver backed by an Inversion-of-Control container. - - The interceptor to register. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to set - a factory to allow to create instances of a context that does not have a public, - parameterless constructor. - - - This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that - do not have public, parameterless constructors. - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - with the context as the key. This means that, if desired, - the same functionality can be achieved using a custom resolver or a resolver backed by an - Inversion-of-Control container. - - The context type for which the factory should be used. - The delegate to use to create context instances. - - - - Call this method from the constructor of a class derived from to register - a database table existence checker for a given provider. - - - This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. - Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for - and also using AddDefaultResolver to add the provider as a default - resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a - resolver backed by an Inversion-of-Control container. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. - The table existence checker to use. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Occurs during EF initialization after the DbConfiguration has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that this event should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - - - - Gets the that is being used to resolve service - dependencies in the Entity Framework. - - - - - This attribute can be placed on a subclass of to indicate that the subclass of - representing the code-based configuration for the application is in a different - assembly than the context type. - - - Normally a subclass of should be placed in the same assembly as - the subclass of used by the application. It will then be discovered automatically. - However, if this is not possible or if the application contains multiple context types in different - assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type. - An alternative to using this attribute is to specify the DbConfiguration type to use in the application's - config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. - - - - - Indicates that the given subclass of should be used for code-based configuration - for this application. - - - The type to use. - - - - - Indicates that the subclass of represented by the given assembly-qualified - name should be used for code-based configuration for this application. - - - The type to use. - - - - - Gets the subclass of that should be used for code-based configuration - for this application. - - - - Implements the basic functionality required by aggregates in a GroupBy clause. - - - - Gets the result type of this . - - - The result type of this . - - - - - Gets the list of expressions that define the arguments to this - - . - - - The list of expressions that define the arguments to this - - . - - - - Represents the logical AND of two Boolean arguments. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept two expression operands. - - - Represents the base type for all expressions. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - The type of the result produced by . - - - An instance of . - - The type of the result produced by visitor. - - - - Determines whether the specified is equal to the current DbExpression instance. - - - True if the specified is equal to the current DbExpression instance; otherwise, false. - - - The object to compare to the current . - - - - Serves as a hash function for the type. - A hash code for the current expression. - - - - Creates a that represents the specified binary value, which may be null - - - A that represents the specified binary value. - - The binary value on which the returned expression should be based. - - - - Enables implicit casting from a byte array. - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Boolean value. - - - A that represents the specified Boolean value. - - The Boolean value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) byte value. - - - A that represents the specified byte value. - - The byte value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTime value. - - The DateTime value on which the returned expression should be based. - - - - Enables implicit casting from . - - The expression to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified DateTimeOffset value. - - The DateTimeOffset value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) decimal value. - - - A that represents the specified decimal value. - - The decimal value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) double value. - - - A that represents the specified double value. - - The double value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeography value. - - The DbGeography value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified - - value, which may be null. - - - A that represents the specified DbGeometry value. - - The DbGeometry value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) - - value. - - - A that represents the specified Guid value. - - The Guid value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int16 value. - - - A that represents the specified Int16 value. - - The Int16 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int32 value. - - - A that represents the specified Int32 value. - - The Int32 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Int64 value. - - - A that represents the specified Int64 value. - - The Int64 value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified (nullable) Single value. - - - A that represents the specified Single value. - - The Single value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - - Creates a that represents the specified string value. - - - A that represents the specified string value. - - The string value on which the returned expression should be based. - - - - Enables implicit casting from . - - The value to be converted. - The converted value. - - - Gets the type metadata for the result type of the expression. - The type metadata for the result type of the expression. - - - Gets the kind of the expression, which indicates the operation of this expression. - The kind of the expression, which indicates the operation of this expression. - - - - Gets the that defines the left argument. - - - The that defines the left argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the left argument. - - - - - Gets the that defines the right argument. - - - The that defines the right argument. - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the required type for the right argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by the visitor . - visitor is null. - - - - Gets the that specifies the function that is invoked for each element in the input set. - - - The that specifies the function that is invoked for each element in the input set. - - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Represents an arithmetic operation applied to numeric arguments. - Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations. - This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the list of elements that define the current arguments. - - - A fixed-size list of elements. - - - - - Represents the When, Then, and Else clauses of the - - . This class cannot be inherited. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets the When clauses of this . - - - The When clauses of this . - - - - - Gets the Then clauses of this . - - - The Then clauses of this . - - - - - Gets the Else clause of this . - - - The Else clause of this . - - The expression is null. - - The expression is not associated with the command tree of the - - ,or its result type is not equal or promotable to the result type of the - - . - - - - Represents the type conversion of a single argument to the specified type. This class cannot be inherited. - - - Implements the basic functionality required by expressions that accept a single expression argument. - - - - Gets the that defines the argument. - - - The that defines the argument. - - The expression is null. - - The expression is not associated with the command tree of a - - , or its result type is not equal or promotable to the required type for the argument. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes the different "kinds" (classes) of command trees. - - - - - A query to retrieve data - - - - - Update existing data - - - - - Insert new data - - - - - Deleted existing data - - - - - Call a function - - - - Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited. - - DbComparisonExpression requires that its arguments have a common result type - that is equality comparable (for .Equals and .NotEquals), - order comparable (for .GreaterThan and .LessThan), - or both (for .GreaterThanOrEquals and .LessThanOrEquals). - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents different kinds of constants (literals). This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Gets the constant value. - The constant value. - - - Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Gets a list that provides the input sets to the join. - - - A list that provides the input sets to the join. - - - - Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Removes duplicate elements from the specified set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - Represents the set subtraction operation between the left and right operands. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor. - visitor is null. - - - - Describes a binding for an expression. Conceptually similar to a foreach loop - in C#. The DbExpression property defines the collection being iterated over, - while the Var property provides a means to reference the current element - of the collection during the iteration. DbExpressionBinding is used to describe the set arguments - to relational expressions such as , - and . - - - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property. - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - The variable reference. - - - Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that specifies the predicate used to filter the input set. - - - The that specifies the predicate used to filter the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - Represents an invocation of a function. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the function to invoke. - The metadata for the function to invoke. - - - - Gets an list that provides the arguments to the function. - - - An list that provides the arguments to the function. - - - - Represents a collection of elements that compose a group. - - - Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set and provides access to the set element and group element variables. - - - The that specifies the input set and provides access to the set element and group element variables. - - - - - Gets a list that provides grouping keys. - - - A list that provides grouping keys. - - - - - Gets a list that provides the aggregates to apply. - - - A list that provides the aggregates to apply. - - - - Represents the set intersection operation between the left and right operands. This class cannot be inherited. - - DbIntersectExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents an empty set determination applied to a single set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents null determination applied to a single argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the type comparison of a single argument against the specified type. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the type metadata that the type metadata of the argument should be compared to. - The type metadata that the type metadata of the argument should be compared to. - - - Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that provides the left input. - - - The that provides the left input. - - - - - Gets the that provides the right input. - - - The that provides the right input. - - - - Gets the join condition to apply. - The join condition to apply. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a Boolean type. - - - - - Allows the application of a lambda function to arguments represented by - - objects. - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of . - - visitor is null - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - The type of the result produced by the expression visitor. - - An instance of a typed that produces a result value of type TResultType. - - The type of the result produced by visitor - visitor is null - - - - Gets the representing the Lambda function applied by this expression. - - - The representing the Lambda function applied by this expression. - - - - - Gets a list that provides the arguments to which the Lambda function should be applied. - - - The list. - - - - Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the string to compare against the given pattern. - An expression that specifies the string to compare against the given pattern. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that specifies the pattern against which the given string should be compared. - An expression that specifies the pattern against which the given string should be compared. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Gets an expression that provides an optional escape string to use for the comparison. - An expression that provides an optional escape string to use for the comparison. - The expression is null. - - The expression is not associated with the command tree of - - , or its result type is not a string type. - - - - Represents the restriction of the number of elements in the argument collection to the specified limit value. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets an expression that specifies the input collection. - An expression that specifies the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not a collection type. - - - - Gets an expression that specifies the limit on the number of elements returned from the input collection. - An expression that specifies the limit on the number of elements returned from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - , or is not one of - - or - - , or its result type is not equal or promotable to a 64-bit integer type. - - - - - Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the - - value. - - true if the limit operation will include tied results; otherwise, false. The default is false. - - - Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets an list that provides the property/column values or set elements for the new instance. - - - An list that provides the property/column values or set elements for the new instance. - - - - Represents the logical NOT of a single Boolean argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a typed null literal. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata of the type of elements that should be retrieved from the set argument. - The metadata of the type of elements that should be retrieved from the set argument. - - - Represents the logical OR of two Boolean arguments. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced parameter. - The name of the referenced parameter. - - - Represents the projection of a given input set over the specified expression. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets the that defines the projection. - - - The that defines the projection. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the current projection. - - - - Provides methods and properties for retrieving an instance property. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Creates a new key/value pair based on this property expression. - - A new key/value pair with the key and value derived from the - - . - - - - - Enables implicit casting to . - - The expression to be converted. - The converted value. - - - Gets the property metadata for the property to retrieve. - The property metadata for the property to retrieve. - - - - Gets a that defines the instance from which the property should be retrieved. - - - A that defines the instance from which the property should be retrieved. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the type that defines the property. - - - - Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - Gets the Boolean predicate that should be evaluated for each element in the input set. - The Boolean predicate that should be evaluated for each element in the input set. - The expression is null. - - The expression is not associated with the command tree for the - - ,or its result type is not a Boolean type. - - - - Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the entity set that contains the instance. - The metadata for the entity set that contains the instance. - - - Represents the navigation of a relationship. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the relationship over which navigation occurs. - The metadata for the relationship over which navigation occurs. - - - Gets the metadata for the relationship end to navigate from. - The metadata for the relationship end to navigate from. - - - Gets the metadata for the relationship end to navigate to. - The metadata for the relationship end to navigate to. - - - - Gets an that specifies the starting point of the navigation and must be a reference to an entity instance. - - - An that specifies the instance of the source relationship end from which navigation should occur. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the reference type of the - - property. - - - - - Skips a specified number of elements in the input set. - - can only be used after the input collection has been sorted as specified by the sort keys. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Gets an expression that specifies the number of elements to skip from the input collection. - An expression that specifies the number of elements to skip from the input collection. - The expression is null. - - The expression is not associated with the command tree of the - - ; the expression is not either a - - or a - - ; or the result type of the expression is not equal or promotable to a 64-bit integer type. - - - - - Specifies a sort key that can be used as part of the sort order in a - - . This class cannot be inherited. - - - - Gets a Boolean value indicating whether or not this sort key uses an ascending sort order. - true if this sort key uses an ascending sort order; otherwise, false. - - - Gets a string value that specifies the collation for this sort key. - A string value that specifies the collation for this sort key. - - - - Gets the that provides the value for this sort key. - - - The that provides the value for this sort key. - - - - Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by - visitor - - - visitor - is null. - - - - Gets the that specifies the input set. - - - The that specifies the input set. - - - - - Gets a list that defines the sort order. - - - A list that defines the sort order. - - - - Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited. - - - Gets a value indicating whether this aggregate is a distinct aggregate. - true if the aggregate is a distinct aggregate; otherwise, false. - - - Gets the method metadata that specifies the aggregate function to invoke. - The method metadata that specifies the aggregate function to invoke. - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - - An abstract base type for types that implement the IExpressionVisitor interface to derive from. - - - - Defines the basic functionality that should be implemented by visitors that do not return a result value. - - - When overridden in a derived class, handles any expression of an unrecognized type. - The expression to be handled. - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - When overridden in a derived class, implements the visitor pattern for - - . - - - The that is visited. - - - - - Visitor pattern method for DbInExpression. - - The DbInExpression that is being visited. - - - - Convenience method to visit the specified . - - The DbUnaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbBinaryExpression to visit. - - - is null - - - - - Convenience method to visit the specified . - - The DbExpressionBinding to visit. - - - is null - - - - - Convenience method for post-processing after a DbExpressionBinding has been visited. - - The previously visited DbExpressionBinding. - - - - Convenience method to visit the specified . - - The DbGroupExpressionBinding to visit. - - - is null - - - - - Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited. - - The DbGroupExpressionBinding of the DbGroupByExpression - - - - Convenience method for post-processing after a DbGroupExpressionBinding has been visited. - - The previously visited DbGroupExpressionBinding. - - - - Convenience method indicating that the body of a Lambda is now about to be visited. - - The DbLambda that is about to be visited - - - is null - - - - - Convenience method for post-processing after a DbLambda has been visited. - - The previously visited DbLambda. - - - - Convenience method to visit the specified , if non-null. - - The expression to visit. - - - is null - - - - - Convenience method to visit each in the given list, if the list is non-null. - - The list of expressions to visit. - - - is null - - - - - Convenience method to visit each in the list, if the list is non-null. - - The list of aggregates to visit. - - - is null - - - - - Convenience method to visit the specified . - - The aggregate to visit. - - - is null - - - - - Called when an of an otherwise unrecognized type is encountered. - - The expression - - - is null - - - Always thrown if this method is called, since it indicates that - - is of an unsupported type - - - - - Visitor pattern method for . - - The DbConstantExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbVariableReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbParameterReferenceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFunctionExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLambdaExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbPropertyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbComparisonExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLikeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbLimitExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsNullExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbArithmeticExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbAndExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOrExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbInExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNotExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbDistinctExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbElementExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsEmptyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbUnionAllExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIntersectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExceptExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbOfTypeExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbTreatExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCastExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbIsOfExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCaseExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbNewInstanceExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRelationshipNavigationExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DeRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbRefKeyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbEntityRefExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbScanExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbFilterExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbProjectExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbCrossJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbJoinExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbApplyExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSkipExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbSortExpression that is being visited. - - - is null - - - - - Visitor pattern method for . - - The DbQuantifierExpression that is being visited. - - - is null - - - - Implements the visitor pattern for the set clause. - The set clause. - - - Implements the visitor pattern for the modification clause. - The modification clause. - - - Implements the visitor pattern for the collection of modification clauses. - The modification clauses. - - - Implements the visitor pattern for the command tree. - The command tree. - - - Implements the visitor pattern for the delete command tree. - The delete command tree. - - - Implements the visitor pattern for the function command tree. - The function command tree. - - - Implements the visitor pattern for the insert command tree. - The insert command tree. - - - Implements the visitor pattern for the query command tree. - The query command tree. - - - Implements the visitor pattern for the update command tree. - The update command tree. - - - An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. - - - - Returns a that represents this command. - - - A that represents this command. - - - - - Gets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is true. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets the name and corresponding type of each parameter that can be referenced within this - - . - - - The name and corresponding type of each parameter that can be referenced within this - - . - - - - - Gets the kind of this command tree. - - - - - Gets the metadata workspace used by this command tree. - - - - - Gets the data space in which metadata used by this command tree must reside. - - - - Represents a single row delete operation expressed as a command tree. This class cannot be inherited. - - - Represents a data manipulation language (DML) operation expressed as a command tree. - - - - Gets the that specifies the target table for the data manipulation language (DML) operation. - - - The that specifies the target table for the DML operation. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be deleted. - - - - Gets an that specifies the predicate used to determine which members of the target collection should be deleted. - - - The predicate can include only the following elements: - - Equality expression - Constant expression - IsNull expression - Property expression - Reference expression to the target - And expression - Or expression - Not expression - - - - An that specifies the predicate used to determine which members of the target collection should be deleted. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - - Contains values that each expression class uses to denote the operation it represents. The - - property of an - - can be retrieved to determine which operation that expression represents. - - - - - True for all. - - - - - Logical And. - - - - - True for any. - - - - - Conditional case statement. - - - - - Polymorphic type cast. - - - - - A constant value. - - - - - Cross apply - - - - - Cross join - - - - - Dereference. - - - - - Duplicate removal. - - - - - Division. - - - - - Set to singleton conversion. - - - - - Entity ref value retrieval. - - - - - Equality - - - - - Set subtraction - - - - - Restriction. - - - - - Full outer join - - - - - Invocation of a stand-alone function - - - - - Greater than. - - - - - Greater than or equal. - - - - - Grouping. - - - - - Inner join - - - - - Set intersection. - - - - - Empty set determination. - - - - - Null determination. - - - - - Type comparison (specified Type or Subtype). - - - - - Type comparison (specified Type only). - - - - - Left outer join - - - - - Less than. - - - - - Less than or equal. - - - - - String comparison. - - - - - Result count restriction (TOP n). - - - - - Subtraction. - - - - - Modulo. - - - - - Multiplication. - - - - - Instance, row, and set construction. - - - - - Logical Not. - - - - - Inequality. - - - - - Null. - - - - - Set members by type (or subtype). - - - - - Set members by (exact) type. - - - - - Logical Or. - - - - - Outer apply. - - - - - A reference to a parameter. - - - - - Addition. - - - - - Projection. - - - - - Retrieval of a static or instance property. - - - - - Reference. - - - - - Ref key value retrieval. - - - - - Navigation of a (composition or association) relationship. - - - - - Entity or relationship set scan. - - - - - Skip elements of an ordered collection. - - - - - Sorting. - - - - - Type conversion. - - - - - Negation. - - - - - Set union (with duplicates). - - - - - A reference to a variable. - - - - - Application of a lambda function - - - - - In. - - - - Represents the invocation of a database function. - - - - Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - The that represents the function that is being invoked. - The expected result type for the function’s first result set. - The function's parameters. - - , or is null - - - does not represent a valid data space or - is a composable function - - - - - Gets the that represents the function that is being invoked. - - - The that represents the function that is being invoked. - - - - Gets the expected result type for the function’s first result set. - The expected result type for the function’s first result set. - - - Gets or sets the command tree kind. - The command tree kind. - - - Represents a single row insert operation expressed as a command tree. This class cannot be inherited. - - Represents a single row insert operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar value indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - The list of insert set clauses that define the insert operation. . - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of insert set clauses that define the insert operation. - The list of insert set clauses that define the insert operation. - - - - Gets an that specifies a projection of results to be returned based on the modified rows. - - - An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command. - - - - Gets the command tree kind. - The command tree kind. - - - - Represents a Lambda function that can be invoked to produce a - - . - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null - - - - contains more than one element with the same variable name. - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters - An expression that defines the logic of the Lambda function - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - - - is null or contains null, or - - is null. - - - - contains more than one element with the same variable name. - - - - - Creates a new with a single argument of the specified type, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter. - - A that defines the EDM type of the argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - or - - is null or produces a result of null. - - - - - Creates a new with arguments of the specified types, as defined by the specified function. - - A new DbLambda that describes an inline Lambda function with the specified body and formal parameters. - - A that defines the EDM type of the first argument to the Lambda function - - - A that defines the EDM type of the second argument to the Lambda function - - - A that defines the EDM type of the third argument to the Lambda function - - - A that defines the EDM type of the fourth argument to the Lambda function - - - A that defines the EDM type of the fifth argument to the Lambda function - - - A that defines the EDM type of the sixth argument to the Lambda function - - - A that defines the EDM type of the seventh argument to the Lambda function - - - A that defines the EDM type of the eighth argument to the Lambda function - - - A that defines the EDM type of the ninth argument to the Lambda function - - - A that defines the EDM type of the tenth argument to the Lambda function - - - A that defines the EDM type of the eleventh argument to the Lambda function - - - A that defines the EDM type of the twelfth argument to the Lambda function - - - A that defines the EDM type of the thirteenth argument to the Lambda function - - - A that defines the EDM type of the fourteenth argument to the Lambda function - - - A that defines the EDM type of the fifteenth argument to the Lambda function - - - A that defines the EDM type of the sixteenth argument to the Lambda function - - - A function that defines the logic of the Lambda function as a - - - - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, - - is null, or - - is null or produces a result of null. - - - - Gets the body of the lambda expression. - - A that represents the body of the lambda function. - - - - Gets the parameters of the lambda expression. - The list of lambda function parameters represented as DbVariableReferenceExpression objects. - - - - Specifies a single clause in an insert or update modification operation, see - and - - - An abstract base class allows the possibility of patterns other than - Property = Value in future versions, e.g., - update SomeTable - set ComplexTypeColumn.SomeProperty() - where Id = 2 - - - - Represents a query operation expressed as a command tree. This class cannot be inherited. - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - A boolean that indicates whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - When set to false the validation of the tree is turned off. - - - or - - is null - - - - does not represent a valid data space - - - - - Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics. - - The metadata workspace that the command tree should use. - The logical 'space' that metadata in the expressions used in this command tree must belong to. - - A that defines the logic of the query. - - - - or - - is null - - - - does not represent a valid data space - - - - - Gets an that defines the logic of the query operation. - - - An that defines the logic of the query operation. - - The expression is null. - The expression is associated with a different command tree. - - - Gets the kind of this command tree. - The kind of this command tree. - - - Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. - - - - Gets an that specifies the property that should be updated. - - - An that specifies the property that should be updated. - - - - - Gets an that specifies the new value with which to update the property. - - - An that specifies the new value with which to update the property. - - - - Represents a single-row update operation expressed as a command tree. This class cannot be inherited. - - Represents a single-row update operation expressed as a canonical command tree. - When the property is set, the command returns a reader; otherwise, - it returns a scalar indicating the number of rows affected. - - - - - Initializes a new instance of the class. - - The model this command will operate on. - The data space. - The target table for the data manipulation language (DML) operation. - A predicate used to determine which members of the target collection should be updated. - The list of update set clauses that define the update operation. - A that specifies a projection of results to be returned, based on the modified rows. - - - Gets the list of update set clauses that define the update operation. - The list of update set clauses that define the update operation. - - - - Gets an that specifies a projection of results to be returned, based on the modified rows. - - - An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command. - - - - - Gets an that specifies the predicate used to determine which members of the target collection should be updated. - - - An that specifies the predicate used to determine which members of the target collection should be updated. - - - - Gets the kind of this command tree. - The kind of this command tree. - - - Represents a reference to a variable that is currently in scope. This class cannot be inherited. - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the name of the referenced variable. - The name of the referenced variable. - - - - Defines the binding for the input set to a . - In addition to the properties of , DbGroupExpressionBinding - also provides access to the group element via the variable reference - and to the group aggregate via the property. - - - - - Gets the that defines the input set. - - - The that defines the input set. - - The expression is null. - - The expression is not associated with the command tree of the - - , or its result type is not equal or promotable to the result type of the current value of the property. - - - - Gets the name assigned to the element variable. - The name assigned to the element variable. - - - Gets the type metadata of the element variable. - The type metadata of the element variable. - - - - Gets the that references the element variable. - - A reference to the element variable. - - - Gets the name assigned to the group element variable. - The name assigned to the group element variable. - - - Gets the type metadata of the group element variable. - The type metadata of the group element variable. - - - - Gets the that references the group element variable. - - A reference to the group element variable. - - - - Gets the that represents the collection of elements in the group. - - The elements in the group. - - - - Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself. - - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - Returns the specified arguments as a key/value pair object. - A key/value pair object. - The value in the key/value pair. - The key in the key/value pair. - - - - Creates a new that uses a generated variable name to bind the given expression. - - A new expression binding with the specified expression and a generated variable name. - The expression to bind. - input is null. - input does not have a collection result. - - - - Creates a new that uses the specified variable name to bind the given expression - - A new expression binding with the specified expression and variable name. - The expression to bind. - The variable name that should be used for the binding. - input or varName is null. - input does not have a collection result. - - - Creates a new group expression binding that uses generated variable and group variable names to bind the given expression. - A new group expression binding with the specified expression and a generated variable name and group variable name. - The expression to bind. - input is null. - input does not have a collection result type. - - - - Creates a new that uses the specified variable name and group variable names to bind the given expression. - - A new group expression binding with the specified expression, variable name and group variable name. - The expression to bind. - The variable name that should be used for the binding. - The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression. - input, varName or groupVarName is null. - input does not have a collection result type. - - - - Creates a new . - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new that is applied in a distinct fashion. - - A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true. - The function that defines the aggregate operation. - The argument over which the aggregate function should be calculated. - function or argument is null. - function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function. - - - - Creates a new over the specified argument - - The argument over which to perform the nest operation - A new group aggregate representing the elements of the group referenced by the given argument. - - - is null - - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a with the specified inline Lambda function implementation and formal parameters. - - A new expression that describes an inline Lambda function with the specified body and formal parameters. - An expression that defines the logic of the Lambda function. - - A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression. - - variables is null or contains null, or body is null. - variables contains more than one element with the same variable name. - - - - Creates a new with an ascending sort order and default collation. - - A new sort clause with the given sort key and ascending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and default collation. - - A new sort clause with the given sort key and descending sort order. - The expression that defines the sort key. - key is null. - key does not have an order-comparable result type. - - - - Creates a new with an ascending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and ascending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new with a descending sort order and the specified collation. - - A new sort clause with the given sort key and collation, and descending sort order. - The expression that defines the sort key. - The collation to sort under. - key is null. - collation is empty or contains only space characters. - key does not have an order-comparable result type. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - An that specifies the input set. - - - An that specifies logic to evaluate once for each member of the input set. - - input or apply is null. - - - - Creates a new that unconditionally joins the sets specified by the list of input expression bindings. - - - A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets. - - A list of expression bindings that specifies the input sets. - inputs is null or contains null element. - inputs contains fewer than 2 expression bindings. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - An that specifies the left set argument. - - - An that specifies the right set argument. - - An expression that specifies the condition on which to join. - left, right or joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbFilterExpression that produces the filtered set. - An expression binding that specifies the input set. - An expression representing a predicate to evaluate for each member of the input set. - input or predicate is null. - predicate does not have a Boolean result type. - - - - Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates. - - A new DbGroupByExpression with the specified input set, grouping keys and aggregates. - - A that specifies the input set. - - A list of string-expression pairs that define the grouping columns. - A list of expressions that specify aggregates to apply. - input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate. - Both keys and aggregates are empty, or an invalid or duplicate column name was specified. - - - - Creates a new that projects the specified expression over the given input set. - - A new DbProjectExpression that represents the projection operation. - An expression binding that specifies the input set. - An expression to project over the set. - input or projection is null. - - - - Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements. - - A new DbSkipExpression that represents the skip operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - An expression the specifies how many elements of the ordered set to skip. - input, sortOrder or count is null, or sortOrder contains null. - - sortOrder is empty, or count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that sorts the given input set by the specified sort specifications. - - A new DbSortExpression that represents the sort operation. - An expression binding that specifies the input set. - A list of sort specifications that determine how the elements of the input set should be sorted. - input or sortOrder is null, or sortOrder contains null. - sortOrder is empty. - - - - Creates a new , which represents a typed null value. - - An instance of DbNullExpression. - The type of the null value. - nullType is null. - - - - Creates a new with the given constant value. - - A new DbConstantExpression with the given value. - The constant value to represent. - value is null. - value is not an instance of a valid constant type. - - - - Creates a new of the specified primitive type with the given constant value. - - A new DbConstantExpression with the given value and a result type of constantType. - The type of the constant value. - The constant value to represent. - value or constantType is null. - value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType. - - - - Creates a new that references a parameter with the specified name and type. - - A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced parameter. - The name of the referenced parameter. - - - - Creates a new that references a variable with the specified name and type. - - A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. - The type of the referenced variable. - The name of the referenced variable. - - - - Creates a new that references the specified entity or relationship set. - - A new DbScanExpression based on the specified entity or relationship set. - Metadata for the entity or relationship set to reference. - targetSet is null. - - - - Creates an that performs the logical And of the left and right arguments. - - A new DbAndExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left and right does not have a Boolean result type. - - - - Creates an that performs the logical Or of the left and right arguments. - - A new DbOrExpression with the specified arguments. - A Boolean expression that specifies the left argument. - A Boolean expression that specifies the right argument. - left or right is null. - left or right does not have a Boolean result type. - - - - Creates a that matches the result of the specified - expression with the results of the constant expressions in the specified list. - - A DbExpression to be matched. - A list of DbConstantExpression to test for a match. - - A new DbInExpression with the specified arguments. - - - - or - - is null. - - - The result type of - - is different than the result type of an expression from - . - - - - - Creates a that performs the logical negation of the given argument. - - A new DbNotExpression with the specified argument. - A Boolean expression that specifies the argument. - argument is null. - argument does not have a Boolean result type. - - - - Creates a new that divides the left argument by the right argument. - - A new DbArithmeticExpression representing the division operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left or right. - - - - Creates a new that subtracts the right argument from the left argument. - - A new DbArithmeticExpression representing the subtraction operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that computes the remainder of the left argument divided by the right argument. - - A new DbArithmeticExpression representing the modulo operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that multiplies the left argument by the right argument. - - A new DbArithmeticExpression representing the multiplication operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that adds the left argument to the right argument. - - A new DbArithmeticExpression representing the addition operation. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common numeric result type exists between left and right. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that negates the value of the argument. - - A new DbArithmeticExpression representing the negation operation. - An expression that specifies the argument. - argument is null. - No numeric result type exists for argument. - - - - Creates a new that compares the left and right arguments for equality. - - A new DbComparisonExpression representing the equality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that compares the left and right arguments for inequality. - - A new DbComparisonExpression representing the inequality comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common equality-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than the right argument. - - A new DbComparisonExpression representing the greater-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than the right argument. - - A new DbComparisonExpression representing the less-than comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is greater than or equal to the right argument. - - A new DbComparisonExpression representing the greater-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common order-comparable result type exists between left and right. - - - - Creates a new that determines whether the left argument is less than or equal to the right argument. - - A new DbComparisonExpression representing the less-than-or-equal-to comparison. - An expression that specifies the left argument. - An expression that specifies the right argument. - left or right is null. - No common result type that is both equality- and order-comparable exists between left and right. - - - - Creates a new that determines whether the specified argument is null. - - A new DbIsNullExpression with the specified argument. - An expression that specifies the argument. - argument is null. - argument has a collection result type. - - - - Creates a new that compares the specified input string to the given pattern. - - A new DbLikeExpression with the specified input, pattern and a null escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - Argument or pattern is null. - Argument or pattern does not have a string result type. - - - - Creates a new that compares the specified input string to the given pattern using the optional escape. - - A new DbLikeExpression with the specified input, pattern and escape. - An expression that specifies the input string. - An expression that specifies the pattern string. - An optional expression that specifies the escape string. - argument, pattern or escape is null. - argument, pattern or escape does not have a string result type. - - - - Creates a new that applies a cast operation to a polymorphic argument. - - A new DbCastExpression with the specified argument and target type. - The argument to which the cast should be applied. - Type metadata that specifies the type to cast to. - Argument or toType is null. - The specified cast is not valid. - - - - Creates a new . - - A new DbTreatExpression with the specified argument and type. - An expression that specifies the instance. - Type metadata for the treat-as type. - argument or treatType is null. - treatType is not in the same type hierarchy as the result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - A that specifies the input set. - - Type metadata for the type that elements of the input set must have to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type. - - - A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of - - . - - - An that specifies the input set. - - Type metadata for the type that elements of the input set must match exactly to be included in the resulting set. - argument or type is null. - argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument. - - - - Creates a new that determines whether the given argument is of the specified type or a subtype. - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype). - - A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly. - An expression that specifies the instance. - Type metadata that specifies the type that the instance's result type should be compared to. - argument or type is null. - type is not in the same type hierarchy as the result type of argument. - - - - Creates a new that retrieves a specific Entity given a reference expression. - - A new DbDerefExpression that retrieves the specified Entity. - - An that provides the reference. This expression must have a reference Type. - - argument is null. - argument does not have a reference result type. - - - - Creates a new that retrieves the ref of the specifed entity in structural form. - - A new DbEntityRefExpression that retrieves a reference to the specified entity. - The expression that provides the entity. This expression must have an entity result type. - argument is null. - argument does not have an entity result type. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet is null, or keyValues is null or contains null. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific entity of a given type based on key values. - - A new DbRefExpression that references the element with the specified key values in the given entity set. - The entity set in which the referenced element resides. - The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type. - - A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type. - - entitySet or entityType is null, or keyValues is null or contains null. - entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type. - The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - entitySet or keyRow is null. - keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that encodes a reference to a specific Entity based on key values. - - A new DbRefExpression that references the element with the specified key values in the given Entity set. - The Entity set in which the referenced element resides. - - A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type. - - The type of the Entity that the reference should refer to. - entitySet, keyRow or entityType is null. - entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type. - - - - Creates a new that retrieves the key values of the specifed reference in structural form. - - A new DbRefKeyExpression that retrieves the key values of the specified reference. - The expression that provides the reference. This expression must have a reference Type with an Entity element type. - argument is null. - argument does not have a reference result type. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - An expression that specifies the instance from which navigation should occur. - Metadata for the property that represents the end of the relationship from which navigation should occur. - Metadata for the property that represents the end of the relationship to which navigation should occur. - fromEnd, toEnd or navigateFrom is null. - fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd. - - - - Creates a new representing the navigation of a composition or association relationship. - - A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance. - Metadata for the relation type that represents the relationship. - The name of the property of the relation type that represents the end of the relationship from which navigation should occur. - The name of the property of the relation type that represents the end of the relationship to which navigation should occur. - An expression the specifies the instance from which naviagtion should occur. - type, fromEndName, toEndName or navigateFrom is null. - type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName. - - - - Creates a new that removes duplicates from the given set argument. - - A new DbDistinctExpression that represents the distinct operation applied to the specified set argument. - An expression that defines the set over which to perfom the distinct operation. - argument is null. - argument does not have a collection result type. - - - - Creates a new that converts a set into a singleton. - - A DbElementExpression that represents the conversion of the set argument to a singleton. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is an empty set. - - A new DbIsEmptyExpression with the specified argument. - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that computes the subtraction of the right set argument from the left set argument. - - A new DbExceptExpression that represents the difference of the left argument from the right argument. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left and right. - - - - Creates a new that computes the intersection of the left and right set arguments. - - A new DbIntersectExpression that represents the intersection of the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type exists between left or right. - - - - Creates a new that computes the union of the left and right set arguments and does not remove duplicates. - - A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new . - - A new DbCaseExpression with the specified cases and default result. - A list of expressions that provide the conditional for of each case. - A list of expressions that provide the result of each case. - An expression that defines the result when no case is matched. - whenExpressions or thenExpressions is null or contains null, or elseExpression is null. - whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - A list of expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the invocation of the specified function with the given arguments. - - A new DbFunctionExpression representing the function invocation. - Metadata for the function to invoke. - Expressions that provide the arguments to the function. - function is null, or arguments is null or contains null. - The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new Expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - A list of expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new representing the application of the specified Lambda function to the given arguments. - - A new expression representing the Lambda function application. - - A instance representing the Lambda function to apply. - - Expressions that provide the arguments. - lambda or arguments is null. - The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type. - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance. - - A new DbNewInstanceExpression with the specified type and arguments. - The type of the new instance. - Expressions that specify values of the new instances, interpreted according to the instance's type. - instanceType or arguments is null, or arguments contains null. - arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section). - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown. - - A new DbNewInstanceExpression with the specified collection type and arguments. - A list of expressions that provide the elements of the collection. - elements is null, or contains null.. - elements is empty or contains expressions for which no common result type exists. - - - - Creates a new that constructs an empty collection of the specified collection type. - - A new DbNewInstanceExpression with the specified collection type and an empty Arguments list. - The type metadata for the collection to create - collectionType is null. - collectionType is not a collection type. - - - - Creates a new that produces a row with the specified named columns and the given values, specified as expressions. - - A new DbNewInstanceExpression that represents the construction of the row. - A list of string-DbExpression key-value pairs that defines the structure and values of the row. - columnValues is null or contains an element with a null column name or expression. - columnValues is empty, or contains a duplicate or invalid column name. - - - - Creates a new representing the retrieval of the specified property. - - A new DbPropertyExpression representing the property retrieval. - The instance from which to retrieve the property. May be null if the property is static. - Metadata for the property to retrieve. - propertyMetadata is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the specified navigation property. - - A new DbPropertyExpression representing the navigation property retrieval. - The instance from which to retrieve the navigation property. - Metadata for the navigation property to retrieve. - navigationProperty or instance is null. - - - - Creates a new representing the retrieval of the specified relationship end member. - - A new DbPropertyExpression representing the relationship end member retrieval. - The instance from which to retrieve the relationship end member. - Metadata for the relationship end member to retrieve. - relationshipEnd is null or instance is null and the property is not static. - - - - Creates a new representing the retrieval of the instance property with the specified name from the given instance. - - A new DbPropertyExpression that represents the property retrieval. - The instance from which to retrieve the property. - The name of the property to retrieve. - propertyName is null or instance is null and the property is not static. - No property with the specified name is declared by the type of instance. - - - - Creates a new representing setting a property to a value. - - The property to be set. - The value to set the property to. - The newly created set clause. - - - - Creates a new that determines whether the given predicate holds for all elements of the input set. - - A new DbQuantifierExpression that represents the All operation. - An expression that specifies the input set. - A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by Predicate does not have a Boolean result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - source is null. - source does not have a collection result type. - - - - Creates a new that determines whether the specified set argument is non-empty. - - - A new applied to a new - - with the specified argument. - - An expression that specifies the input set. - argument is null. - argument does not have a collection result type. - - - - Creates a new that determines whether the given predicate holds for any element of the input set. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - source does not have a collection result type. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null. - - - An new DbApplyExpression with the specified input and apply bindings and an - - of OuterApply. - - - A that specifies the input set. - - A method that specifies the logic to evaluate once for each member of the input set. - source or apply is null. - Source does not have a collection result type. - The result of apply contains a name or expression that is null. - The result of apply contains a name or expression that is not valid in an expression binding. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the - - . - - - A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the - - . - - - A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition. - - - A that specifies the left set argument. - - - A that specifies the right set argument. - - A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition. - left, right or joinCondition is null. - left or right does not have a collection result type. - The expression produced by joinCondition is null. - The expression produced by joinCondition does not have a Boolean result type. - - - - Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - outer, inner, outerKey or innerKey is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The expressions produced by outerKey and innerKey are not comparable for equality. - - - - Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the - - . - - - A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an - - of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality. - - - A that specifies the outer set argument. - - - A that specifies the inner set argument. - - A method that specifies how the outer key value should be derived from an element of the outer set. - A method that specifies how the inner key value should be derived from an element of the inner set. - - A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The type of the selector . - outer, inner, outerKey, innerKey or selector is null. - outer or inner does not have a collection result type. - The expression produced by outerKey or innerKey is null. - The result of selector is null after conversion to DbExpression. - The expressions produced by outerKey and innerKey is not comparable for equality. - The result of Selector is not compatible with SelectMany. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation. - - A new DbSortExpression that represents the order-by operation. - An expression that specifies the input set. - A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that selects the specified expression over the given input set. - - A new DbProjectExpression that represents the select operation. - An expression that specifies the input set. - - A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a - - . Compatibility requirements for TProjection are described in remarks. - - The method result type of projection. - source or projection is null. - The result of projection is null. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the apply column from each row, producing the overall collection of apply results. - - - An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - source or apply is null. - The expression produced by apply is null. - source does not have a collection result type. - The expression produced by apply does not have a collection type. - - - - Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A - - is then created that selects the specified selector over each row, producing the overall collection of results. - - - An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an - - of CrossApply. - - - A that specifies the input set. - - A method that represents the logic to evaluate once for each member of the input set. - - A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a - - . Compatibility requirements for TSelector are described in remarks. - - The method result type of selector. - source, apply or selector is null. - The expression produced by apply is null. - The result of selector is null on conversion to DbExpression. - source does not have a collection result type. - The expression produced by apply does not have a collection type. does not have a collection type. - - - - Creates a new that skips the specified number of elements from the given sorted input set. - - A new DbSkipExpression that represents the skip operation. - - A that specifies the sorted input set. - - An expression the specifies how many elements of the ordered set to skip. - argument or count is null. - - count is not or - - or has a result type that is not equal or promotable to a 64-bit integer type. - - - - - Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output. - - A new DbLimitExpression with the specified argument and count limit values that does not include tied results. - An expression that specifies the input collection. - An expression that specifies the limit value. - argument or count is null. - argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - source or sortKey is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable result type. - - - - Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation. - - A new DbSortExpression that represents the new overall order-by operation. - A DbSortExpression that specifies the ordered input set. - A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. - The collation to sort under. - source, sortKey or collation is null. - The expression produced by sortKey is null. - source does not have a collection result type. - The expression produced by sortKey does not have an order-comparable string result type. - collation is empty or contains only space characters. - - - - Creates a new that filters the elements in the given input set using the specified predicate. - - A new DbQuantifierExpression that represents the Any operation. - An expression that specifies the input set. - A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic. - source or predicate is null. - The expression produced by predicate is null. - The expression produced by predicate does not have a Boolean result type. - - - - Creates a new that computes the union of the left and right set arguments with duplicates removed. - - A new DbExpression that computes the union, without duplicates, of the the left and right arguments. - An expression that defines the left set argument. - An expression that defines the right set argument. - left or right is null. - No common collection result type with an equality-comparable element type exists between left and right. - - - - Gets a with the Boolean value true. - - - A with the Boolean value true. - - - - - Gets a with the Boolean value false. - - - A with the Boolean value false. - - - - - Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the average value. - An expression that specifies the collection from which the average value should be computed. - - - - Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64. - - A new DbFunctionExpression that produces the count value. - An expression that specifies the collection over which the count value should be computed. - - - - Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the maximum value. - An expression that specifies the collection from which the maximum value should be retrieved - - - - Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the minimum value. - An expression that specifies the collection from which the minimum value should be retrieved. - - - - Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection. - - A new DbFunctionExpression that produces the sum. - An expression that specifies the collection from which the sum should be computed. - - - - Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the standard deviation value. - An expression that specifies the collection for which the standard deviation should be computed. - - - - Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double. - - A new DbFunctionExpression that produces the statistical variance value. - An expression that specifies the collection for which the statistical variance should be computed. - - - - Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string. - - A new DbFunctionExpression that produces the concatenated string. - An expression that specifies the string that should appear first in the concatenated result string. - An expression that specifies the string that should appear second in the concatenated result string. - - - - Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString. - An expression that specifies the string to search for any occurence of searchedForString. - An expression that specifies the string to search for in searchedString. - - - - Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix. - An expression that specifies the string that is searched at the end for string suffix. - An expression that specifies the target string that is searched for at the end of stringArgument. - - - - Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the first index of stringToFind in searchString. - An expression that specifies the string to search for stringToFind. - An expression that specifies the string to locate within searchString should be checked. - - - - Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the leftmost substring. - An expression that specifies the length of the leftmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the length of stringArgument. - An expression that specifies the string for which the length should be computed. - - - - Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement. - An expression that specifies the string in which to perform the replacement operation. - An expression that specifies the string that is replaced. - An expression that specifies the replacement string. - - - - Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that produces the reversed value of stringArgument. - An expression that specifies the string to reverse. - - - - Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string. - - A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument. - An expression that specifies the string from which to extract the rightmost substring. - An expression that specifies the length of the rightmost substring to extract from stringArgument. - - - - Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix. - An expression that specifies the string that is searched at the start for string prefix. - An expression that specifies the target string that is searched for at the start of stringArgument. - - - - Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string. - - A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start. - An expression that specifies the string from which to extract the substring. - An expression that specifies the starting index from which the substring should be taken. - An expression that specifies the length of the substring. - - - - Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to lower case. - An expression that specifies the string that should be converted to lower case. - - - - Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument converted to upper case. - An expression that specifies the string that should be converted to upper case. - - - - Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed. - An expression that specifies the string from which leading and trailing space should be removed. - - - - Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with trailing space removed. - An expression that specifies the string from which trailing space should be removed. - - - - Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string. - - A new DbFunctionExpression that returns value of stringArgument with leading space removed. - An expression that specifies the string from which leading space should be removed. - - - - Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer year value from dateValue. - An expression that specifies the value from which the year should be retrieved. - - - - Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer month value from dateValue. - An expression that specifies the value from which the month should be retrieved. - - - - Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day value from dateValue. - An expression that specifies the value from which the day should be retrieved. - - - - Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer day of year value from dateValue. - An expression that specifies the value from which the day within the year should be retrieved. - - - - Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer hour value from timeValue. - An expression that specifies the value from which the hour should be retrieved. - - - - Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer minute value from timeValue. - An expression that specifies the value from which the minute should be retrieved. - - - - Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer second value from timeValue. - An expression that specifies the value from which the second should be retrieved. - - - - Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer millisecond value from timeValue. - An expression that specifies the value from which the millisecond should be retrieved. - - - - Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT. - An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved. - - - - Creates a that invokes the canonical 'CurrentDateTime' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'CurrentDateTimeOffset' function. - - A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CurrentUtcDateTime' function. - - A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance. - - - - Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that returns the value of dateValue with time set to zero. - An expression that specifies the value for which the time portion should be truncated. - - - - Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime. - - A new DbFunctionExpression that returns a new DateTime based on the specified values. - An expression that provides the year value for the new DateTime instance. - An expression that provides the month value for the new DateTime instance. - An expression that provides the day value for the new DateTime instance. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset. - - A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values. - An expression that provides the year value for the new DateTimeOffset instance. - An expression that provides the month value for the new DateTimeOffset instance. - An expression that provides the day value for the new DateTimeOffset instance. - An expression that provides the hour value for the new DateTimeOffset instance. - An expression that provides the minute value for the new DateTimeOffset instance. - An expression that provides the second value for the new DateTimeOffset instance. - An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance. - - - - Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time. - - A new DbFunctionExpression that returns a new Time based on the specified values. - An expression that provides the hour value for the new DateTime instance. - An expression that provides the minute value for the new DateTime instance. - An expression that provides the second value for the new DateTime instance. - - - - Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of years to add to dateValue. - - - - Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of months to add to dateValue. - - - - Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue. - - A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of days to add to dateValue. - - - - Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of hours to add to timeValue. - - - - Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of minutes to add to timeValue. - - - - Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of seconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of milliseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of microseconds to add to timeValue. - - - - Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue. - - A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue. - An expression that specifies the value to which addValueshould be added. - An expression that specifies the number of nanoseconds to add to timeValue. - - - - Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2. - An expression that specifies the first date value argument. - An expression that specifies the second date value argument. - - - - Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2. - An expression that specifies the first time value argument. - An expression that specifies the second time value argument. - - - - Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value. - An expression that specifies the numeric value to round. - - - - Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to round. - An expression that specifies the number of digits of precision to use when rounding. - - - - Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the largest integer value not greater than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the smallest integer value not less than than value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that returns the absolute value of value. - An expression that specifies the numeric value. - - - - Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value. - - A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits. - An expression that specifies the numeric value to truncate. - An expression that specifies the number of digits of precision to use when truncating. - - - - Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument. - - A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent. - An expression that specifies the numeric value to raise to the given power. - An expression that specifies the power to which baseArgument should be raised. - - - - Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value. - An expression that specifies the first operand. - - - - Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments. - - A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2. - An expression that specifies the first operand. - An expression that specifies the second operand. - - - - Creates a that invokes the canonical 'NewGuid' function. - - A new DbFunctionExpression that returns a new GUID value. - - - - Provides a constructor-like means of calling - - . - - - - - Initializes a new instance of the class with the specified first column value and optional successive column values. - - A key-value pair that provides the first column in the new row instance. (required) - A key-value pairs that provide any subsequent columns in the new row instance. (optional) - - - - Creates a new that constructs a new row based on the columns contained in this Row instance. - - A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance. - - - - Converts the given Row instance into an instance of - - The Row instance. - A DbExpression based on the Row instance - - - is null. - - - - - - Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself. - - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geometry value based on the specified value. - An expression that provides the well known text representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known text representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known text representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known text representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known text representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known text representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known text representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known text representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified binary value. - An expression that provides the well known binary representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the well known binary representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry point value based on the specified values. - An expression that provides the well known binary representation of the geometry point value. - An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry line value based on the specified values. - An expression that provides the well known binary representation of the geometry line value. - An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry polygon value. - An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-point value. - An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-line value. - An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geometry multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry collection value based on the specified values. - An expression that provides the well known binary representation of the geometry collection value. - An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - - - - Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a new geometry value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geometry value. - An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider. - - A new DbFunctionExpression that returns a new geography value based on the specified value. - An expression that provides the well known text representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known text representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments. - - The canonical 'GeographyPointFromText' function. - An expression that provides the well-known text representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue. - - - - Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known text representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known text representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known text representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known text representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known text representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known text representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified binary value. - An expression that provides the well known binary representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the well known binary representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography point value based on the specified values. - An expression that provides the well known binary representation of the geography point value. - An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue. - - - - Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography line value based on the specified values. - An expression that provides the well known binary representation of the geography line value. - An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography polygon value based on the specified values. - An expression that provides the well known binary representation of the geography polygon value. - An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-point value based on the specified values. - An expression that provides the well known binary representation of the geography multi-point value. - An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-line value based on the specified values. - An expression that provides the well known binary representation of the geography multi-line value. - An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values. - An expression that provides the well known binary representation of the geography multi-polygon value. - An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography collection value based on the specified values. - An expression that provides the well known binary representation of the geography collection value. - An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - - - - Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography. - - A new DbFunctionExpression that returns a new geography value based on the specified values. - An expression that provides the Geography Markup Language (GML) representation of the geography value. - An expression that provides the coordinate system id (SRID) of the geography value's coordinate system. - - - - Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the integer SRID value from spatialValue. - An expression that specifies the value from which the coordinate system id (SRID) should be retrieved. - - - - Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the string Geometry Type name from spatialValue. - An expression that specifies the value from which the Geometry Type name should be retrieved. - - - - Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns the Dimension value from spatialValue. - An expression that specifies the value from which the Dimension value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the minimum bounding box for geometryValue. - An expression that specifies the value from which the Envelope value should be retrieved. - - - - Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary. - - A new DbFunctionExpression that returns the well known binary representation of spatialValue. - An expression that specifies the spatial value from which the well known binary representation should be produced. - - - - Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue. - An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced. - - - - Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String. - - A new DbFunctionExpression that returns the well known text representation of spatialValue. - An expression that specifies the spatial value from which the well known text representation should be produced. - - - - Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty. - An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved. - - - - Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry. - The geometry value. - - - - Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the boundary for geometryValue. - An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved. - - - - Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid. - An expression that specifies the geometry value which should be tested for spatial validity. - - - - Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for equality. - - - - Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness. - - - - Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect. - An expression that specifies the first spatial value. - An expression that specifies the spatial value that should be compared with spatialValue1 for intersection. - - - - Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - - - - Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean. - - A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix. - An expression that specifies the first geometry value. - An expression that specifies the geometry value that should be compared with geometryValue1. - An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2. - - - - Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue. - An expression that specifies the spatial value. - An expression that specifies the buffer distance. - - - - Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value from which the distance from spatialValue1 should be measured. - - - - Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns the the convex hull for geometryValue. - An expression that specifies the geometry value from which the convex hull value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the union with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2. - - A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1. - An expression that specifies the first spatial value. - An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed. - - - - Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved. - - - - Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection. - An expression that specifies the geography or geometry collection value. - An expression that specifies the position of the element to be retrieved from within the geometry or geography collection. - - - - Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point. - An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved. - - - - Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point. - An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved. - - - - Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Latitude value should be retrieved. - - - - Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point. - An expression that specifies the geography point value from which the Longitude value should be retrieved. - - - - Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the length should be retrieved. - - - - Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the start point should be retrieved. - - - - Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the end point should be retrieved. - - - - Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve. - An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved. - - - - Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean. - - A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve. - An expression that specifies the geometry curve value from which the IsRing value should be retrieved. - - - - Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value from which the number of points should be retrieved. - - - - Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue. - - A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string. - An expression that specifies the spatial line string value. - An expression that specifies the position of the point to be retrieved from within the line string. - - - - Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double. - - A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface. - An expression that specifies the spatial surface value for which the area should be calculated. - - - - Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the centroid should be retrieved. - - - - Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface. - An expression that specifies the geometry surface value from which the point should be retrieved. - - - - Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32. - - A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon. - The geometry value. - - - - Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry. - - A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon. - The geometry value. - An expression that specifies the position of the interior ring to be retrieved from within the polygon. - - - - Ensures that all metadata in a given expression tree is from the specified metadata workspace, - potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary. - - - - Initializes a new instance of the class. - The target workspace. - - - Implements the visitor pattern for the entity set. - The implemented visitor pattern. - The entity set. - - - Implements the visitor pattern for the function. - The implemented visitor pattern. - The function metadata. - - - Implements the visitor pattern for the type. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for the type usage. - The implemented visitor pattern. - The type. - - - Implements the visitor pattern for retrieving an instance property. - The implemented visitor. - The expression. - - - - Represents a boolean expression that tests whether a specified item matches any element in a list. - - - - - The visitor pattern method for expression visitors that do not produce a result value. - - An instance of DbExpressionVisitor. - - - is null - - - - - The visitor pattern method for expression visitors that produce a result value of a specific type. - - An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. - - The type of the result produced by - - - - is null - - - An instance of . - - - - - Gets a DbExpression that specifies the item to be matched. - - - - - Gets the list of DbExpression to test for a match. - - - - - Represents the retrieval of the key value of the specified Reference as a row. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents the set union (without duplicate removal) operation between the left and right operands. - - - DbUnionAllExpression requires that its arguments have a common collection result type - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - - Represents a 'scan' of all elements of a given entity set. - - - - Implements the visitor pattern for expressions that do not produce a result value. - - An instance of . - - visitor is null. - - - Implements the visitor pattern for expressions that produce a result value of a specific type. - - A result value of a specific type produced by - - . - - - An instance of a typed that produces a result value of a specific type. - - The type of the result produced by visitor . - visitor is null. - - - Gets the metadata for the referenced entity or relationship set. - The metadata for the referenced entity or relationship set. - - - - Extension methods for . - - - - - Gets the conceptual model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the conceptual model. - - - - Gets the store model from the specified DbModel. - - An instance of a class that implements IEdmModelAdapter (ex. DbModel). - An instance of EdmModel that represents the store model. - - - - An interface to get the underlying store and conceptual model for a . - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Inherit from this class to create a service that allows for code generation of custom annotations as part of - scaffolding Migrations. The derived class should be set onto the . - - - Note that an is not needed if the annotation uses a simple string value, - or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration. - - - - - Override this method to return additional namespaces that should be included in the code generated for the - scaffolded migration. The default implementation returns an empty enumeration. - - The names of the annotations that are being included in the generated code. - A list of additional namespaces to include. - - - - Implement this method to generate code for the given annotation value. - - The name of the annotation for which a value is being generated. - The annotation value. - The writer to which generated code should be written. - - - - Represents a pair of annotation values in a scaffolded or hand-coded . - - - Code First allows for custom annotations to be associated with columns and tables in the - generated model. This class represents a pair of annotation values in a migration such - that when the Code First model changes the old annotation value and the new annotation - value can be provided to the migration and used in SQL generation. - - - - - Creates a new pair of annotation values. - - The old value of the annotation, which may be null if the annotation has just been created. - The new value of the annotation, which may be null if the annotation has been deleted. - - - - - - - - - - Returns true if both annotation pairs contain the same values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if both pairs contain the same values. - - - - Returns true if the two annotation pairs contain different values, otherwise false. - - A pair of annotation values. - A pair of annotation values. - True if the pairs contain different values. - - - - Gets the old value of the annotation, which may be null if the annotation has just been created. - - - - - Gets the new value of the annotation, which may be null if the annotation has been deleted. - - - - - Returned by and related methods to indicate whether or - not one object does not conflict with another such that the two can be combined into one. - - - If the two objects are not compatible then information about why they are not compatible is contained - in the property. - - - - - Creates a new instance. - - Indicates whether or not the two tested objects are compatible. - - An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true. - - - - - Implicit conversion to a bool to allow the result object to be used directly in checks. - - The object to convert. - True if the result is compatible; false otherwise. - - - - True if the two tested objects are compatible; otherwise false. - - - - - If is true, then returns an error message indicating how the two tested objects - are incompatible. - - - - - Types used as custom annotations can implement this interface to indicate that an attempt to use - multiple annotations with the same name on a given table or column may be possible by merging - the multiple annotations into one. - - - Normally there can only be one custom annotation with a given name on a given table or - column. If a table or column ends up with multiple annotations, for example, because - multiple CLR properties map to the same column, then an exception will be thrown. - However, if the annotation type implements this interface, then the two annotations will be - checked for compatibility using the method and, if compatible, - will be merged into one using the method. - - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new merged annotation. This method is - only expected to succeed if returns true. - - The annotation to merge with this one. - A new merged annotation. - - - - Instances of this class are used as custom annotations for representing database indexes in an - Entity Framework model. - - - An index annotation is added to a Code First model when an is placed on - a mapped property of that model. This is used by Entity Framework Migrations to create indexes on - mapped database columns. Note that multiple index attributes on a property will be merged into a - single annotation for the column. Similarly, index attributes on multiple properties that map to the - same column will be merged into a single annotation for the column. This means that one index - annotation can represent multiple indexes. Within an annotation there can be only one index with any - given name. - - - - - The name used when this annotation is stored in Entity Framework metadata or serialized into - an SSDL/EDMX file. - - - - - Creates a new annotation for the given index. - - An index attributes representing an index. - - - - Creates a new annotation for the given collection of indexes. - - Index attributes representing one or more indexes. - - - - Returns true if this annotation does not conflict with the given annotation such that - the two can be combined together using the method. - - - Each index annotation contains at most one with a given name. - Two annotations are considered compatible if each IndexAttribute with a given name is only - contained in one annotation or the other, or if both annotations contain an IndexAttribute - with the given name. - - The annotation to compare. - A CompatibilityResult indicating whether or not this annotation is compatible with the other. - - - - Merges this annotation with the given annotation and returns a new annotation containing the merged indexes. - - - Each index annotation contains at most one with a given name. - The merged annotation will contain IndexAttributes from both this and the other annotation. - If both annotations contain an IndexAttribute with the same name, then the merged annotation - will contain one IndexAttribute with that name. - - The annotation to merge with this one. - A new annotation with indexes from both annotations merged. - - The other annotation contains indexes that are not compatible with indexes in this annotation. - - - - - - - - Gets the indexes represented by this annotation. - - - - - This class is used to serialize and deserialize objects so that they - can be stored in the EDMX form of the Entity Framework model. - - - An example of the serialized format is: - { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }. - Note that properties that have not been explicitly set in an index attribute will be excluded from - the serialized output. So, in the example above, the first index has all properties specified, - the second has none, and the third has just the name set. - - - - - Implement this interface to allow custom annotations represented by instances to be - serialized to and from the EDMX XML. Usually a serializer instance is set using the - method. - - - - - Serializes the given annotation value into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize. - The serialized value. - - - - Deserializes the given string back into the expected annotation value. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - - - - Serializes the given into a string for storage in the EDMX XML. - - The name of the annotation that is being serialized. - The value to serialize which must be an IndexAnnotation object. - The serialized value. - - - - Deserializes the given string back into an object. - - The name of the annotation that is being deserialized. - The string to deserialize. - The deserialized annotation value. - If there is an error reading the serialized value. - - - - This interface is implemented by any object that can resolve a dependency, either directly - or through use of an external container. - - - The public services currently resolved using IDbDependencyResolver are documented here: - http://msdn.microsoft.com/en-us/data/jj680697 - - - - - Attempts to resolve a dependency for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return null and not throw. This - allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers - can be asked to resolve a dependency until one finally does. - - The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. - - - - Attempts to resolve a dependencies for a given contract type and optionally a given key. - If the resolver cannot resolve the dependency then it must return an empty enumeration and - not throw. This method differs from in that it returns all registered - services for the given type and key combination. - - The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. - - - - An implementation used for resolving - factories. - - - - - Initializes a new instance of - - A function that returns a new instance of a transaction handler. - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used. - null will match anything. - - - A string that will be matched against the server name in the connection string. null will match anything. - - - - - If the given type is , then this method will attempt - to return the service to use, otherwise it will return null. When the given type is - , then the key is expected to be a . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - , then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - - - - - - - Provides utility methods for reading from an App.config or Web.config file. - - - - - Initializes a new instance of . - - The configuration to read from. - - - - Gets the specified provider services from the configuration. - - The invariant name of the provider services. - The provider services type name, or null if not found. - - - - A simple logger for logging SQL and other database operations to the console or a file. - A logger can be registered in code or in the application's web.config /app.config file. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework loads the application's . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This is the base interface for all interfaces that provide interception points for various - different types and operations. For example, see . - Interceptors are registered on the class. - - - - - Occurs during EF initialization after the has been constructed but just before - it is locked ready for use. Use this event to inspect and/or override services that have been - registered before the configuration is locked. Note that an interceptor of this type should be used carefully - since it may prevent tooling from discovering the same configuration that is used at runtime. - - - Handlers can only be added before EF starts to use the configuration and so handlers should - generally be added as part of application initialization. Do not access the DbConfiguration - static methods inside the handler; instead use the the members of - to get current services and/or add overrides. - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Creates a new logger that will send log output to the console. - - - - - Creates a new logger that will send log output to a file. If the file already exists then - it is overwritten. - - A path to the file to which log output will be written. - - - - Creates a new logger that will send log output to a file. - - A path to the file to which log output will be written. - True to append data to the file if it exists; false to overwrite the file. - - - - Stops logging and closes the underlying file if output is being written to a file. - - - - - Stops logging and closes the underlying file if output is being written to a file. - - - True to release both managed and unmanaged resources; False to release only unmanaged resources. - - - - - Starts logging. This method is a no-op if logging is already started. - - - - - Stops logging. This method is a no-op if logging is not started. - - - - - Called to start logging during Entity Framework initialization when this logger is registered. - as an . - - Arguments to the event that this interceptor mirrors. - Contextual information about the event. - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls into - implementations. - - - Note that specific types/operations that can be intercepted may use a more specific - interception context derived from this class. For example, if SQL is being executed by - a , then the DbContext will be contained in the - instance that is passed to the methods - of . - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. See - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - Call this method when creating a copy of an interception context in order to add new state - to it. Using this method instead of calling the constructor directly ensures virtual dispatch - so that the new type will have the same type (and any specialized state) as the context that - is being cloned. - - A new context with all state copied. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item if - a single has been used to construct multiple - instances. - - - - - Gets all the instances associated with this interception context. - - - This list usually contains zero or one items. However, it can contain more than one item when - EF has created a new for use in database creation and initialization, or - if a single is used with multiple . - - - - - True if the operation is being executed asynchronously, otherwise false. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in - this interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - Implemented by Entity Framework providers and used to check whether or not tables exist - in a given database. This is used by database initializers when determining whether or not to - treat an existing database as empty such that tables should be created. - - - - - When overridden in a derived class checks where the given tables exist in the database - for the given connection. - - - The context for which table checking is being performed, usually used to obtain an appropriate - . - - - A connection to the database. May be open or closed; should be closed again if opened. Do not - dispose. - - The tables to check for existence. - The name of the EdmMetadata table to check for existence. - True if any of the model tables or EdmMetadata table exists. - - - - Helper method to get the table name for the given s-space . - - The s-space entity set for the table. - The table name. - - - - Thrown when an error occurs committing a . - - - - - Initializes a new instance of - - - - - Initializes a new instance of - - The exception message. - - - - Initializes a new instance of - - The exception message. - The inner exception. - - - - Initializes a new instance of the class. - - The data necessary to serialize or deserialize an object. - Description of the source and destination of the specified serialized stream. - - - - Event arguments passed to event handlers. - - - - - Call this method to add a instance to the Chain of - Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework. - - - Resolvers are asked to resolve dependencies in reverse order from which they are added. This means - that a resolver can be added to override resolution of a dependency that would already have been - resolved in a different way. - The only exception to this is that any dependency registered in the application's config file - will always be used in preference to using a dependency resolver added here, unless the - overrideConfigFile is set to true in which case the resolver added here will also override config - file settings. - - The resolver to add. - If true, then the resolver added will take precedence over settings in the config file. - - - - Call this method to add a instance to the Chain of Responsibility - of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver - method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only - be used to resolve a dependency that could not be resolved by any of the other resolvers. - - The resolver to add. - - - - Adds a wrapping resolver to the configuration that is about to be locked. A wrapping - resolver is a resolver that incepts a service would have been returned by the resolver - chain and wraps or replaces it with another service of the same type. - - The type of service to wrap or replace. - A delegate that takes the unwrapped service and key and returns the wrapped or replaced service. - - - - - - - - - - - - - - - - Returns a snapshot of the that is about to be locked. - Use the GetService methods on this object to get services that have been registered. - - - - - An implementation used for resolving - factories. - - - This class can be used by to aid in the resolving - of factories as a default service for the provider. - - The type of execution strategy that is resolved. - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - A string that will be matched against the server name in the connection string. null will match anything. - - A function that returns a new instance of an execution strategy. - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return null. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An , or null. - - - - - If the given type is , then this resolver will attempt - to return the service to use, otherwise it will return an empty enumeration. When the given type is - Func{IExecutionStrategy}, then the key is expected to be an . - - The service type to resolve. - A key used to make a determination of the service to return. - - An enumerable of , or an empty enumeration. - - - - - Extension methods to call the method using - a generic type parameter and/or no name. - - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - The resolved dependency, or null if the resolver could not resolve it. - - - - Calls passing the generic type of the method and the given - name as arguments. - - The contract type to resolve. - The resolver to use. - The key of the dependency to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the generic type of the method as - the type argument and null for the name argument. - - The contract type to resolve. - The resolver to use. - All resolved dependencies, or an if no services are resolved. - - - - Calls passing the given type argument and using - null for the name argument. - - The resolver to use. - The contract type to resolve. - All resolved dependencies, or an if no services are resolved. - - - - Implements to resolve a dependency such that it always returns - the same instance. - - The type that defines the contract for the dependency that will be resolved. - - This class is immutable such that instances can be accessed by multiple threads at the same time. - - - - - Constructs a new resolver that will return the given instance for the contract type - regardless of the key passed to the Get method. - - The instance to return. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches exactly the key passed to the Get method. - - The instance to return. - Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. - - - - Constructs a new resolver that will return the given instance for the contract type - if the given key matches the key passed to the Get method based on the given predicate. - - The instance to return. - A predicate that takes the key object and returns true if and only if it matches. - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Represents contextual information associated with calls with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The isolation level to associate. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to start a transaction. - - - - - This is the default log formatter used when some is set onto the - property. A different formatter can be used by creating a class that inherits from this class and overrides - some or all methods to change behavior. - - - To set the new formatter create a code-based configuration for EF using and then - set the formatter class to use with . - Note that setting the type of formatter to use with this method does change the way command are - logged when is used. It is still necessary to set a - onto before any commands will be logged. - For more low-level control over logging/interception see and - . - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework executes commands. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. The result used by Entity Framework can be changed by setting - . - - - For async operations this method is not called until after the async task has completed - or failed. - - The command being executed. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework performs operations on a . - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is invoked. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The transaction used by Entity Framework can be changed by setting - . - - The connection that began the transaction. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was closed. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is set. - - The connection. - Contextual information associated with the call. - - - - Called after is set. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection being disposed. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection that was disposed. - Contextual information associated with the call. - - - - Called before is invoked. - - The connection. - Contextual information associated with the call. - - - - Called after is invoked. - - The connection. - Contextual information associated with the call. - - - - Called before or its async counterpart is invoked. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - - The connection that was opened. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called before is retrieved. - - The connection. - Contextual information associated with the call. - - - - Called after is retrieved. - - The connection. - Contextual information associated with the call. - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework commits or rollbacks a transaction. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called before is retrieved. - - The transaction. - Contextual information associated with the call. - - - - Called after is retrieved. - - The transaction. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being disposed. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was disposed. - Contextual information associated with the call. - - - - This method is called before is invoked. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - Creates a formatter that will not filter by any and will instead log every command - from any context and also commands that do not originate from a context. - - - This constructor is not used when a delegate is set on . Instead it can be - used by setting the formatter directly using . - - The delegate to which output will be sent. - - - - Creates a formatter that will only log commands the come from the given instance. - - - This constructor must be called by a class that inherits from this class to override the behavior - of . - - - The context for which commands should be logged. Pass null to log every command - from any context and also commands that do not originate from a context. - - The delegate to which output will be sent. - - - - Writes the given string to the underlying write delegate. - - The string to write. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - This method is called before a call to or - one of its async counterparts is made. - The default implementation calls and starts . - - The command being executed. - Contextual information associated with the call. - - - - This method is called after a call to or - one of its async counterparts is made. - The default implementation stops and calls . - - The command being executed. - Contextual information associated with the call. - - - - Called whenever a command is about to be executed. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the - context filtering behavior. - - The type of the operation's results. - The command that will be executed. - Contextual information associated with the command. - - - - Called whenever a command has completed executing. The default implementation of this method - filters by set into , if any, and then calls - . This method would typically only be overridden to change the context - filtering behavior. - - The type of the operation's results. - The command that was executed. - Contextual information associated with the command. - - - - Called to log a command that is about to be executed. Override this method to change how the - command is logged to . - - The type of the operation's results. - The command to be logged. - Contextual information associated with the command. - - - - Called by to log each parameter. This method can be called from an overridden - implementation of to log parameters, and/or can be overridden to - change the way that parameters are logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - The parameter to log. - - - - Called to log the result of executing a command. Override this method to change how results are - logged to . - - The type of the operation's results. - The command being logged. - Contextual information associated with the command. - - - - Does not write to log unless overridden. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that began the transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being opened. - Contextual information associated with the call. - - - - Called after or its async counterpart is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was opened. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection being closed. - Contextual information associated with the call. - - - - Called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection that was closed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The connection being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The connection. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being commited. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was commited. - Contextual information associated with the call. - - - - This method is called before is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction being disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction that was disposed. - Contextual information associated with the call. - - - - Does not write to log unless overridden. - - The transaction being rolled back. - Contextual information associated with the call. - - - - This method is called after is invoked. - The default implementation of this method filters by set into - , if any, and then logs the event. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - - - - - - - - - - - - The context for which commands are being logged, or null if commands from all contexts are - being logged. - - - - - The stop watch used to time executions. This stop watch is started at the end of - , , and - methods and is stopped at the beginning of the , , - and methods. If these methods are overridden and the stop watch is being used - then the overrides should either call the base method or start/stop the watch themselves. - - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Represents contextual information associated with calls that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to property setters of type on a . - - The type of the target property. - - - - Represents contextual information associated with calls to property setters of type . - - - An instance of this class is passed to the dispatch methods and does not contain mutable information such as - the result of the operation. This mutable information is obtained from the - that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information - use one of the With... or As... methods to create a new interception context containing the new information. - - The type of the target property. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The value that will be assigned to the target property. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - or by setting an to be thrown - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given property value. - - The value that will be assigned to the target property. - A new interception context associated with the given property value. - - - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when executing commands. It is provided publicly so that - code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is - typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The command on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token for the asynchronous operation. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls into - implementations. - - - An instance of this class is passed to the dispatch methods of - and does not contain mutable information such as the result of the operation. This mutable information - is obtained from the that is passed to the interceptors. - Instances of this class are publicly immutable. To add contextual information use one of the - With... or As... methods to create a new interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The that will be used or has been used to execute the command with a - . This property is only used for - and its async counterparts. - - - - - Represents contextual information associated with calls into - implementations including the result of the operation. - - The type of the operation's results. - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Prevents the operation from being executed if called before the operation has executed. - - - Thrown if this method is called after the operation has already executed. - - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The command behavior to associate. - A new interception context associated with the given command behavior. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - If execution of the operation completes without throwing, then this property will contain - the result of the operation. If the operation was suppressed or did not fail, then this property - will always contain the default value for the generic type. - - - When an operation operation completes without throwing both this property and the - property are set. However, the property can be set or changed by interceptors, - while this property will always represent the actual result returned by the operation, if any. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then - this property will be set to the returned result. In either case, interceptors that run - after the operation can change this property to change the result that will be returned. - - - When an operation operation completes without throwing both this property and the - property are set. However, this property can be set or changed by interceptors, while the - property will always represent the actual result returned by the - operation, if any. - - - - - When true, this flag indicates that that execution of the operation has been suppressed by - one of the interceptors. This can be done before the operation has executed by calling - , by setting an to be thrown, or - by setting the operation result using . - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - If execution of the operation fails, then this property will contain the exception that was - thrown. If the operation was suppressed or did not fail, then this property will always be null. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the property can be set or - changed by interceptors, while this property will always represent the original exception thrown. - - - - - If this property is set before the operation has executed, then execution of the operation will - be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then - this property will be set to the exception that was thrown. In either case, interceptors that run - after the operation can change this property to change the exception that will be thrown, or set this - property to null to cause no exception to be thrown at all. - - - When an operation fails both this property and the property are set - to the exception that was thrown. However, the this property can be set or changed by - interceptors, while the property will always represent - the original exception thrown. - - - - - Set to the status of the after an async operation has finished. Not used for - synchronous operations. - - - - - Base class that implements . This class is a convenience for - use when only one or two methods of the interface actually need to have any implementation. - - - - - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls into - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying state from the given - interception context. Also see - - The context from which to copy state. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context the flag set to true. - - A new interception context associated with the async flag set. - - - - - - - - - - - - - - - - The original tree created by Entity Framework. Interceptors can change the - property to change the tree that will be used, but the - will always be the tree created by Entity Framework. - - - - - The command tree that will be used by Entity Framework. This starts as the tree contained in the - the property but can be set by interceptors to change - the tree that will be used by Entity Framework. - - - - - Gets or sets a value containing arbitrary user-specified state information associated with the operation. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after making a - call to . - - - Note that the result of executing the command is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - setting . - - The connection on which the operation will be executed. - Information about the context of the call being made, including the value to be set. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The cancellation token. - A task that represents the asynchronous operation. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The connection on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to all dispatchers through the the fluent API. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - Provides methods for dispatching to interceptors for - interception of methods on . - - - - - This is the registration point for interceptors. Interceptors - receive notifications when EF performs certain operations such as executing commands against - the database. For example, see . - - - - - Registers a new to receive notifications. Note that the interceptor - must implement some interface that extends from to be useful. - - The interceptor to add. - - - - Removes a registered so that it will no longer receive notifications. - If the given interceptor is not registered, then this is a no-op. - - The interceptor to remove. - - - - This is the entry point for dispatching to interceptors. This is usually only used internally by - Entity Framework but it is provided publicly so that other code can make sure that registered - interceptors are called when operations are performed on behalf of EF. For example, EF providers - a may make use of this when executing commands. - - - - - Used for dispatching operations to a such that any - registered on will be notified before and after the - operation executes. - Instances of this class are obtained through the the fluent API. - - - This class is used internally by Entity Framework when interacting with . - It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command - interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF. - - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after - getting . - - - Note that the value of the property is returned by this method. The result is not available - in the interception context passed into this method since the interception context is cloned before - being passed to interceptors. - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - The result of the operation, which may have been modified by interceptors. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - Sends and - to any - registered on before/after making a - call to . - - The transaction on which the operation will be executed. - Optional information about the context of the call being made. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Represents contextual information associated with calls to that don't return any results. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The connection on which the transaction was started. - A new interception context that also contains the connection on which the transaction was started. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - The connection on which the transaction was started - - - - - Represents contextual information associated with calls to with return type . - - The return type of the target method. - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - - - - Represents contextual information associated with calls to - implementations. - - - Instances of this class are publicly immutable for contextual information. To add - contextual information use one of the With... or As... methods to create a new - interception context containing the new information. - - - - - Constructs a new with no state. - - - - - Creates a new by copying immutable state from the given - interception context. Also see - - The context from which to copy state. - - - - Creates a new that contains all the contextual information in this - interception context together with the flag set to true. - - A new interception context associated with the async flag set. - - - - Creates a new that contains all the contextual information in this - interception context together with the given . - - The transaction to be used in the invocation. - A new interception context associated with the given isolation level. - - - - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - Creates a new that contains all the contextual information in this - interception context with the addition of the given . - - The context to associate. - A new interception context associated with the given context. - - - - - - - - - - - - - - - - The that will be used or has been used to enlist a connection. - - - - - An object that implements this interface can be registered with to - receive notifications when Entity Framework creates command trees. - - - Interceptors can also be registered in the config file of the application. - See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration. - - - - - This method is called after a new has been created. - The tree that is used after interception can be changed by setting - while intercepting. - - - Command trees are created for both queries and insert/update/delete commands. However, query - command trees are cached by model which means that command tree creation only happens the - first time a query is executed and this notification will only happen at that time - - Contextual information associated with the call. - - - - Represents a mapping view. - - - - - Creates a instance having the specified entity SQL. - - A string that specifies the entity SQL. - - - - Gets the entity SQL. - - - - - Base abstract class for mapping view cache implementations. - Derived classes must have a parameterless constructor if used with . - - - - - Gets a view corresponding to the specified extent. - - An that specifies the extent. - A that specifies the mapping view, - or null if the extent is not associated with a mapping view. - - - - Gets a hash value computed over the mapping closure. - - - - - Specifies the means to create concrete instances. - - - - - Creates a generated view cache instance for the container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - - A that specifies the generated view cache. - - - - - Defines a custom attribute that specifies the mapping view cache type (subclass of ) - associated with a context type (subclass of or ). - The cache type is instantiated at runtime and used to retrieve pre-generated views in the - corresponding context. - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - - A subclass of . - - - - - Creates a instance that associates a context type - with a mapping view cache type. - - - A subclass of or . - - The assembly qualified full name of the cache type. - - - - The base class for interceptors that handle the transaction operations. Derived classes can be registered using - or - . - - - - - Initializes a new instance of the class. - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - - - - Initializes this instance using the specified context. - - The context for which transaction operations will be handled. - The connection to use for the initialization. - - This method is called by migrations. It is important that no action is performed on the - specified context that causes it to be initialized. - - - - - - - - Releases the resources used by this transaction handler. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Checks whether the supplied interception context contains the target context - or the supplied connection is the same as the one used by the target context. - - A connection. - An interception context. - - true if the supplied interception context contains the target context or - the supplied connection is the same as the one used by the target context if - the supplied interception context doesn't contain any contexts; false otherwise. - - - Note that calling this method will trigger initialization of any DbContext referenced from the - - - - - When implemented in a derived class returns the script to prepare the database - for this transaction handler. - - A script to change the database schema for this transaction handler. - - - - Can be implemented in a derived class. - - The connection beginning the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was closed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection that was disposed. - Contextual information associated with the call. - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection being opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection that was opened. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The connection. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction being rolled back. - Contextual information associated with the call. - - - - - Can be implemented in a derived class. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Gets the context. - - - The for which the transaction operations will be handled. - - - - - Gets the context. - - - The for which the transaction operations will be handled, could be null. - - - - - Gets the connection. - - - The for which the transaction operations will be handled. - - - This connection object is only used to determine whether a particular operation needs to be handled - in cases where a context is not available. - - - - - Gets or sets a value indicating whether this transaction handler is disposed. - - - true if disposed; otherwise, false. - - - - - This class is used by to write and read transaction tracing information - from the database. - To customize the definition of the transaction table you can derive from - this class and override . Derived classes can be registered - using . - - - By default EF will poll the resolved to check wether the database schema is compatible and - will try to modify it accordingly if it's not. To disable this check call - Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context. - - - - - A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that - it can be used to query from a database and group together changes that will then be written - back to the store as a unit. - DbContext is conceptually similar to ObjectContext. - - - DbContext is usually used with a derived type that contains properties for - the root entities of the model. These sets are automatically initialized when the - instance of the derived class is created. This behavior can be modified by applying the - attribute to either the entire derived context - class, or to individual properties on the class. - The Entity Data Model backing the context can be specified in several ways. When using the Code First - approach, the properties on the derived context are used to build a model - by convention. The protected OnModelCreating method can be overridden to tweak this model. More - control over the model used for the Model First approach can be obtained by creating a - explicitly from a and passing this model to one of the DbContext constructors. - When using the Database First or Model First approach the Entity Data Model can be created using the - Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using - entity connection string or an object. - The connection to the database (including the name of the database) can be specified in several ways. - If the parameterless DbContext constructor is called from a derived context, then the name of the derived context - is used to find a connection string in the app.config or web.config file. If no connection string is found, then - the name is passed to the DefaultConnectionFactory registered on the class. The connection - factory then uses the context name as the database name in a default connection string. (This default connection - string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) - Instead of using the derived context name, the connection/database name can also be specified explicitly by - passing the name to one of the DbContext constructors that takes a string. The name can also be passed in - the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. - Note that the connection found in the app.config or web.config file can be a normal database connection - string (not a special Entity Framework connection string) in which case the DbContext will use Code First. - However, if the connection found in the config file is a special Entity Framework connection string, then the - DbContext will use Database/Model First and the model specified in the connection string will be used. - An existing or explicitly created DbConnection can also be used instead of the database/connection name. - A can be applied to a class derived from DbContext to set the - version of conventions used by the context when it creates a model. If no attribute is applied then the - latest version of conventions will be used. - - - - - Interface implemented by objects that can provide an instance. - The class implements this interface to provide access to the underlying - ObjectContext. - - - - - Gets the object context. - - The object context. - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made. The by-convention name is the full name (namespace + class name) - of the derived context class. - See the class remarks for how this is used to create a connection. - - - - - Constructs a new context instance using conventions to create the name of the database to - which a connection will be made, and initializes it from the given model. - The by-convention name is the full name (namespace + class name) of the derived context class. - See the class remarks for how this is used to create a connection. - - The model that will back this context. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - - - - Constructs a new context instance using the given string as the name or connection string for the - database to which a connection will be made, and initializes it from the given model. - See the class remarks for how this is used to create a connection. - - Either the database name or a connection string. - The model that will back this context. - - - - Constructs a new context instance using the existing connection to connect to a database. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance using the existing connection to connect to a database, - and initializes it from the given model. - The connection will not be disposed when the context is disposed if - is false. - - An existing connection to use for the new context. - The model that will back this context. - - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - - Constructs a new context instance around an existing ObjectContext. - - An existing ObjectContext to wrap with the new context. - - If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection. - - - - - This method is called when the model for a derived context has been initialized, but - before the model has been locked down and used to initialize the context. The default - implementation of this method does nothing, but it can be overridden in a derived class - such that the model can be further configured before it is locked down. - - - Typically, this method is called only once when the first instance of a derived context - is created. The model for that context is then cached and is for all further instances of - the context in the app domain. This caching can be disabled by setting the ModelCaching - property on the given ModelBuidler, but note that this can seriously degrade performance. - More control over caching is provided through use of the DbModelBuilder and DbContextFactory - classes directly. - - The builder that defines the model for the context being created. - - - - Returns a instance for access to entities of the given type in the context - and the underlying store. - - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the non-generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - The type entity for which a set should be returned. - A set for the given entity type. - - - - Returns a non-generic instance for access to entities of the given type in the context - and the underlying store. - - The type of entity for which a set should be returned. - A set for the given entity type. - - Note that Entity Framework requires that this method return the same instance each time that it is called - for a given context instance and entity type. Also, the generic returned by the - method must wrap the same underlying query and set of entities. These invariants must - be maintained if this method is overridden for anything other than creating test doubles for unit testing. - See the class for more details. - - - - - Saves all changes made in this context to the underlying database. - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Asynchronously saves all changes made in this context to the underlying database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An error occurred sending updates to the database. - - A database command did not affect the expected number of rows. This usually indicates an optimistic - concurrency violation; that is, a row has been changed in the database since it was queried. - - - The save was aborted because validation of entity property values failed. - - - An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently - on the same context instance. - The context or connection have been disposed. - - Some error occurred attempting to process entities in the context either before or after sending commands - to the database. - - - - - Asynchronously saves all changes made in this context to the underlying database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - Thrown if the context has been disposed. - - - - Validates tracked entities and returns a Collection of containing validation results. - - Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. - - 1. This method calls DetectChanges() to determine states of the tracked entities unless - DbContextConfiguration.AutoDetectChangesEnabled is set to false. - 2. By default only Added on Modified entities are validated. The user is able to change this behavior - by overriding ShouldValidateEntity method. - - - - - Extension point allowing the user to override the default behavior of validating only - added and modified entities. - - DbEntityEntry instance that is supposed to be validated. - true to proceed with validation; false otherwise. - - - - Extension point allowing the user to customize validation of an entity or filter out validation results. - Called by . - - DbEntityEntry instance to be validated. - - User-defined dictionary containing additional info for custom validation. It will be passed to - - and will be exposed as - - . This parameter is optional and can be null. - - Entity validation result. Possibly null when overridden. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The type of the entity. - The entity. - An entry for the entity. - - - - Gets a object for the given entity providing access to - information about the entity and the ability to perform actions on the entity. - - The entity. - An entry for the entity. - - - - Calls the protected Dispose method. - - - - - Disposes the context. The underlying is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - The connection to the database ( object) is also disposed if it was created - is by this context or ownership was passed to this context when this context was created. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Creates a Database instance for this context that allows for creation/deletion/existence checks - for the underlying database. - - - - - Returns the Entity Framework ObjectContext that is underlying this context. - - Thrown if the context has been disposed. - - - - Provides access to features of the context that deal with change tracking of entities. - - An object used to access features that deal with change tracking. - - - - Provides access to configuration options for the context. - - An object used to access configuration options. - - - - Initializes a new instance of the class. - - The connection used by the context for which the transactions will be recorded. - - - - - - - Gets or sets a that can be used to read and write instances. - - - - - A transaction handler that allows to gracefully recover from connection failures - during transaction commit by storing transaction tracing information in the database. - It needs to be registered by using . - - - This transaction handler uses to store the transaction information - the schema used can be configured by creating a class derived from - that overrides DbContext.OnModelCreating(DbModelBuilder) and passing it to the constructor of this class. - - - - - Initializes a new instance of the class using the default . - - - One of the Initialize methods needs to be called before this instance can be used. - - - - - Initializes a new instance of the class. - - The transaction context factory. - - One of the Initialize methods needs to be called before this instance can be used. - - - - - - - - - - - - - - - - - Stores the tracking information for the new transaction to the database in the same transaction. - - The connection that began the transaction. - Contextual information associated with the call. - - - - - If there was an exception thrown checks the database for this transaction and rethrows it if not found. - Otherwise marks the commit as succeeded and queues the transaction information to be deleted. - - The transaction that was commited. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was rolled back. - - The transaction that was rolled back. - Contextual information associated with the call. - - - - - Stops tracking the transaction that was disposed. - - The transaction that was disposed. - Contextual information associated with the call. - - - - - Removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - - - - Asynchronously removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - A task that represents the asynchronous operation. - - - - Asynchronously removes all the transaction history. - - - This method should only be invoked when there are no active transactions to remove any leftover history - that was not deleted due to catastrophic failures - - The cancellation token. - A task that represents the asynchronous operation. - - - - Adds the specified transaction to the list of transactions that can be removed from the database - - The transaction to be removed from the database. - - - - Removes the transactions marked for deletion. - - - - - Asynchronously removes the transactions marked for deletion. - - A task that represents the asynchronous operation. - - - - Asynchronously removes the transactions marked for deletion. - - The cancellation token. - A task that represents the asynchronous operation. - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - - - - Removes the transactions marked for deletion if their number exceeds . - - - if set to true will remove all the old transactions even if their number does not exceed . - - - if set to true the operation will be executed using the associated execution strategy - - The cancellation token. - A task that represents the asynchronous operation. - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the associated with the if there is one; - otherwise returns null. - - The context - The associated . - - - - Gets the transaction context. - - - The transaction context. - - - - - Gets the number of transactions to be executed on the context before the transaction log will be cleaned. - The default value is 20. - - - - - An implementation of this interface is used to initialize the underlying database when - an instance of a derived class is used for the first time. - This initialization can conditionally create the database and/or seed it with data. - The strategy used is set using the static InitializationStrategy property of the - class. - The following implementations are provided: , - , . - - The type of the context. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - Rrepresents a transaction - - - - - - - - - - - A unique id assigned to a transaction object. - - - - - The local time when the transaction was started. - - - - - Helper class that is used to configure a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new parameter definition to pass Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The numeric precision of the parameter. - The numeric scale of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the parameter supports Unicode content. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The precision of the parameter. - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - Creates a new parameter definition to pass geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Constant value to use as the default value for this parameter. - SQL expression used as the default value for this parameter. - The name of the parameter. - Provider specific data type to use for this parameter. - A value indicating whether the parameter is an output parameter. - The newly constructed parameter definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Represents altering an existing stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - A migration operation that affects stored procedures. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents an operation to modify a database schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MigrationOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" - }'. - - - - - Gets additional arguments that may be processed by providers. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure. - - - The name of the stored procedure. - - - - - Gets the body of the stored procedure expressed in SQL. - - - The body of the stored procedure expressed in SQL. - - - - - Gets the parameters of the stored procedure. - - - The parameters of the stored procedure. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Represents changes made to custom annotations on a table. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterTableOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table on which annotations have changed. - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets the name of the table on which annotations have changed. - - - - - Gets the columns to be included in the table for which annotations have changed. - - - - - Gets the custom annotations that have changed on the table. - - - - - Gets an operation that is the inverse of this one such that annotations will be changed back to how - they were before this operation was applied. - - - - - - - - Represents renaming an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the index belongs to. - Name of the index to be renamed. - New name for the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the index belongs to. - - - - - Gets the name of the index to be renamed. - - - - - Gets the new name for the index. - - - - - Gets an operation that reverts the rename. - - - - - - - - Used when scripting an update database operation to store the operations that would have been performed against the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Adds a migration to this update database operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The id of the migration. - The individual operations applied by the migration. - - - - The queries used to determine if this migration needs to be applied to the database. - This is used to generate an idempotent SQL script that can be run against a database at any version. - - - - - Gets the migrations applied during the update database operation. - - - The migrations applied during the update database operation. - - - - - Gets a value indicating if any of the operations may result in data loss. - - - - - Represents a migration to be applied to the database. - - - - - Gets the id of the migration. - - - The id of the migration. - - - - - Gets the individual operations applied by this migration. - - - The individual operations applied by this migration. - - - - - Represents moving a stored procedure to a new schema in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to move. - The new schema for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to move. - - - The name of the stored procedure to move. - - - - - Gets the new schema for the stored procedure. - - - The new schema for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents renaming a stored procedure in the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to rename. - The new name for the stored procedure. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to rename. - - - The name of the stored procedure to rename. - - - - - Gets the new name for the stored procedure. - - - The new name for the stored procedure. - - - - - Gets an operation that will revert this operation. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider. - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Represents information about a parameter. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Represents information about a property of an entity. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the PropertyModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this property model. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets the data type for this property model. - - - - - Gets additional details about the data type of this property model. - This includes details such as maximum length, nullability etc. - - - - - Gets or sets the name of the property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a provider specific data type to use for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the maximum length for this property model. - Only valid for array data types. - - - - - Gets or sets the precision for this property model. - Only valid for decimal data types. - - - - - Gets or sets the scale for this property model. - Only valid for decimal data types. - - - - - Gets or sets a constant value to use as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a SQL expression used as the default value for this property model. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if this property model is fixed length. - Only valid for array data types. - - - - - Gets or sets a value indicating if this property model supports Unicode characters. - Only valid for textual data types. - - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - - - - Initializes a new instance of the ParameterModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this parameter. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Gets or sets a value indicating whether this instance is out parameter. - - - true if this instance is out parameter; otherwise, false. - - - - - Drops a stored procedure from the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure to drop. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the stored procedure to drop. - - - The name of the stored procedure to drop. - - - - - Gets an operation that will revert this operation. - Always returns a . - - - - - Gets a value indicating if this operation may result in data loss. Always returns false. - - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model. - - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type. - - The common type of the entity types that this convention applies to. - - - - Filters the entity types that this convention applies to based on a - predicate. - - A function to test each entity type for a condition. - - An instance so that multiple calls can be chained. - - - - - Filters the entity types that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each entity type. If the value is null, the - entity type will be filtered out. - - - An instance so that multiple calls can be chained. - - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model that inherit from a common, specified type and a - captured value. - - The common type of the entity types that this convention applies to. - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the entity types in a model and a captured value. - - Type of the captured value. - - - - Allows configuration of the entity types that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The name of the property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The property to be configured. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect if the property does not exist. - - - - - Configures a property that is defined on this type. - - The name of the property being configured. - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The property being configured. - A configuration object that can be used to configure the property. - - - - Configures the primary key property for this entity type. - - The name of the property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property for this entity type. - - The property to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The names of the properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - - - Configures the primary key property(s) for this entity type. - - The properties to be used as the primary key. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured or if any - property does not exist. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Allows configuration to be performed for an entity type in a model. - This configuration functionality is available via lightweight conventions. - - A type inherited by the entity type. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Excludes this entity type from the model so that it will not be mapped to the database. - - - The same instance so that multiple calls can be chained. - - - - - Changes this entity type to a complex type. - - - The same instance so that multiple calls can be chained. - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - - The same instance so that multiple calls can be chained. - - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the of this entity type. - - - - - Identifies conventions that can be added to or removed from a instance. - - - Note that implementations of this interface must be immutable. - - - - - A general purpose class for Code First conventions that read attributes from .NET properties - and generate column annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - A convention that doesn't override configuration. - - - - - The derived class can use the default constructor to apply a set rule of that change the model configuration. - - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all mapped types in - the model that derive from or implement the specified type. - - The type of the entities that this convention will apply to. - A configuration object for the convention. - This method does not add new types to the model. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Constructs a convention that will create column annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each column. - - - - A general purpose class for Code First conventions that read attributes from .NET types - and generate table annotations based on those attributes. - - The type of attribute to discover. - The type of annotation that will be created. - - - - Constructs a convention that will create table annotations with the given name and - using the given factory delegate. - - The name of the annotations to create. - A factory for creating the annotation on each table. - - - - A convention for discovering attributes on properties and generating - column annotations in the model. - - - - - Constructs a new instance of the convention. - - - - - Base class for conventions that process CLR attributes found on primitive properties in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The configuration for the property that has the attribute. - The attribute. - - - - Base class for conventions that process CLR attributes found on properties of types in the model. - - - Note that the derived convention will be applied for any non-static property on the mapped type that has - the specified attribute, even if it wasn't included in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a property that has an attribute of type TAttribute applied. - - The member info for the property that has the attribute. - The configuration for the class that contains the property. - The attribute. - - - - Base class for conventions that process CLR attributes found in the model. - - The type of the attribute to look for. - - - - Initializes a new instance of the class. - - - - - Applies this convention to a class that has an attribute of type TAttribute applied. - - The configuration for the class that contains the property. - The attribute. - - - - Used to configure a property in a mapping fragment. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the database column used to store the property, in a mapping fragment. - - The name of the column. - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PropertyMappingConfiguration instance so that multiple calls can be chained. - - - - Convention to introduce indexes for foreign keys. - - - - - A convention that operates on the database section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - - - - A convention that operates on the conceptual section of the model after the model is created. - - The type of metadata item that this convention operates on. - - - - Applies this convention to an item in the model. - - The item to apply the convention to. - The model. - - - - Useful extension methods for use with Entity Framework LINQ queries. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - The type of entity being queried. - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - This extension method calls the Include(String) method of the source object, - if such a method exists. If the source does not have a matching method, - then this method does nothing. The , , - and types all have an appropriate Include method to call. - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the . Other instances of - and the object context itself are not affected. Because the Include method returns the query object, - you can call this method multiple times on an to specify multiple paths for the query. - - - The source on which to call Include. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Specifies the related objects to include in the query results. - - - The path expression must be composed of simple property access expressions together with calls to Select for - composing additional includes after including a collection proprty. Examples of possible include paths are: - To include a single reference: query.Include(e => e.Level1Reference) - To include a single collection: query.Include(e => e.Level1Collection) - To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference) - To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference)) - To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection)) - To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference)) - To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))) - This extension method calls the Include(String) method of the source IQueryable object, if such a method exists. - If the source IQueryable does not have a matching method, then this method does nothing. - The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call. - When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other - instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the - query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query. - - The type of entity being queried. - The type of navigation property being included. - The source IQueryable on which to call Include. - A lambda expression representing the path to include. - - A new IQueryable<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The element type. - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query where the entities returned will not be cached in the - or . This method works by calling the AsNoTracking method of the - underlying query object. If the underlying query object does not have an AsNoTracking method, - then calling this method will have no affect. - - The source query. - A new query with NoTracking applied, or the source query if NoTracking is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - The type of the elements of . - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Returns a new query that will stream the results instead of buffering. This method works by calling - the AsStreaming method of the underlying query object. If the underlying query object does not have - an AsStreaming method, then calling this method will have no affect. - - - An to apply AsStreaming to. - - A new query with AsStreaming applied, or the source query if AsStreaming is not supported. - - - - Enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - - - Asynchronously enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - A task that represents the asynchronous operation. - - - - - Asynchronously enumerates the query such that for server queries such as those of , - - , - , and others the results of the query will be loaded into the associated - - , - or other cache on the client. - This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. - - The source query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to enumerate. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to enumerate. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to enumerate. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to enumerate. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to create a from. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - An to create a from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create a from. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create a list from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates an array from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create an array from. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates an array from an by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to create an array from. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - An to create a from. - - A function to extract a key from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from an by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the key returned by . - - - The type of the value returned by . - - - An to create a from. - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Asynchronously returns the first element of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A task that represents the asynchronous operation. - The task result contains the first element in . - - - is null. - - - doesn't implement . - - The source sequence is empty. - - - - Asynchronously returns the first element of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in . - - - - is - null - . - - - - doesn't implement - - . - - The source sequence is empty. - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the first element in that passes the test in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in that passes the test in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - - - Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty; otherwise, the first element in . - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty; otherwise, the first element in . - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty or if no element passes the test specified by ; otherwise, the first - element in that passes the test specified by . - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the first element of a sequence that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the first element of. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if - is empty or if no element passes the test specified by ; otherwise, the first - element in that passes the test specified by . - - - - or - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - The source sequence is empty. - - - - Asynchronously returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - The source sequence is empty. - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the the single element of. - - A function to test an element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - . - - - - or - - is - null - . - - - - doesn't implement - - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence, or default () - if the sequence contains no elements. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence, or default () - if the sequence contains no elements. - - - - is - null - . - - - - doesn't implement - - . - - - - has more than one element. - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - , or default ( ) if no such element is found. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the only element of a sequence that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - A function to test an element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the input sequence that satisfies the condition in - , or default ( ) if no such element is found. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - The object to locate in the sequence. - - A task that represents the asynchronous operation. - The task result contains true if the input sequence contains the specified value; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to return the single element of. - - The object to locate in the sequence. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the input sequence contains the specified value; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to check for being empty. - - - A task that represents the asynchronous operation. - The task result contains true if the source sequence contains any elements; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether a sequence contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An to check for being empty. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the source sequence contains any elements; otherwise, false. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether any element of a sequence satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether any element of a sequence satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether all the elements of a sequence satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously determines whether all the elements of a sequence satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An whose elements to test for a condition. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the number of elements in a sequence that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the input sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in a sequence - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in a sequence - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to be counted. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the sequence that satisfy the condition in the predicate function. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the minimum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the minimum of. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the minimum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the minimum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the minimum of. - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the minimum of. - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the maximum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the maximum of. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously returns the maximum value of a sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - An that contains the elements to determine the maximum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the maximum of. - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - The type of the value returned by the function represented by . - - - An that contains the elements to determine the maximum of. - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the sequence. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the sum of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the values in the sequence. - - - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the sum of the sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - - A sequence of values of type . - - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the sum of the projected values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - The number of elements in - - is larger than - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A sequence of nullable values to calculate the average of. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - contains no elements. - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Asynchronously computes the average of a sequence of nullable values that is obtained - by invoking a projection function on each element of the input sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the elements of . - - A sequence of values to calculate the average of. - A projection function to apply to each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the average of the sequence of values. - - - - or - - is - null - . - - - - doesn't implement - - . - - - - - Bypasses a specified number of elements in a sequence and then returns the remaining elements. - - The type of the elements of source. - A sequence to return elements from. - An expression that evaluates to the number of elements to skip. - A sequence that contains elements that occur after the specified index in the - input sequence. - - - - Returns a specified number of contiguous elements from the start of a sequence. - - The type of the elements of source. - The sequence to return elements from. - An expression that evaluates to the number of elements - to return. - A sequence that contains the specified number of elements from the - start of the input sequence. - - - - Controls the transaction creation behavior while executing a database command or query. - - - - - If no transaction is present then a new transaction will be used for the operation. - - - - - If an existing transaction is present then use it, otherwise execute the command or query without a transaction. - - - - - Specifies a structural type mapping. - - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents the base item class for all the metadata - - - Represents the base item class for all the metadata - - - - - Adds or updates an annotation with the specified name and value. - - - If an annotation with the given name already exists then the value of that annotation - is updated to the given value. If the given value is null then the annotation will be - removed. - - The name of the annotation property. - The value of the annotation property. - - - - Removes an annotation with the specified name. - - The name of the annotation property. - true if an annotation was removed; otherwise, false. - - - - Returns a conceptual model built-in type that matches one of the - - values. - - - An object that represents the built-in type in the EDM. - - - One of the values. - - - - Returns the list of the general facet descriptions for a specified type. - - A object that represents the list of the general facet descriptions for a specified type. - - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - Gets the list of properties of the current type. - - A collection of type that contains the list of properties of the current type. - - - - Gets or sets the documentation associated with this type. - - A object that represents the documentation on this type. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this attribute has been replaced by the starting with EF6. - - - - - Indicates that the given method is a proxy for an EDM function. - - - Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework. - - - - - Initializes a new instance of the class. - - The namespace of the mapped-to function. - The name of the mapped-to function. - - - The namespace of the mapped-to function. - The namespace of the mapped-to function. - - - The name of the mapped-to function. - The name of the mapped-to function. - - - - Creates a new DbFunctionAttribute instance. - - The namespace name of the EDM function represented by the attributed method. - The function name of the EDM function represented by the attributed method. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that these functions have been moved to the class starting with EF6. - The functions are retained here only to help in the migration of older EF apps to EF6. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Options for query execution. - - - - - Creates a new instance of . - - Merge option to use for entity results. - - - - Creates a new instance of . - - Merge option to use for entity results. - Whether the query is streaming or buffering. - - - Determines whether the specified objects are equal. - true if the two objects are equal; otherwise, false. - The left object to compare. - The right object to compare. - - - - Determines whether the specified objects are not equal. - - The left object to compare. - The right object to compare. - true if the two objects are not equal; otherwise, false. - - - - - - - - - - Merge option to use for entity results. - - - - - Whether the query is streaming or buffering. - - - - - DataRecord interface supporting structured types and rich metadata information. - - - - - Gets a object with the specified index. - - - A object. - - The index of the row. - - - - Returns nested readers as objects. - - - Nested readers as objects. - - The ordinal of the column. - - - - Gets for this - - . - - - A object. - - - - - DataRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new object for a specific type with an enumerable collection of data fields. - - - The metadata for the type represented by this object, supplied by - - . - - - An enumerable collection of objects that represent column information. - - - - - Gets for this - - object. - - - A object. - - - - - Gets type info for this object as a object. - - - A value. - - - - - A prepared command definition, can be cached and reused to avoid - repreparing a command. - - - - - Initializes a new instance of the class using the supplied - - . - - - The supplied . - - method used to clone the - - - - Initializes a new instance of the class. - - - - - Creates and returns a object that can be executed. - - The command for database. - - - - Metadata Interface for all CLR types types - - - - - Value to pass to GetInformation to get the StoreSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaMapping - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinition - - - - - Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3 - - - - - Value to pass to GetInformation to get the StoreSchemaMappingVersion3 - - - - - Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3 - - - - - Name of the MaxLength Facet - - - - - Name of the Unicode Facet - - - - - Name of the FixedLength Facet - - - - - Name of the Precision Facet - - - - - Name of the Scale Facet - - - - - Name of the Nullable Facet - - - - - Name of the DefaultValue Facet - - - - - Name of the Collation Facet - - - - - Name of the SRID Facet - - - - - Name of the IsStrict Facet - - - - When overridden in a derived class, returns the set of primitive types supported by the data source. - The set of types supported by the data source. - - - When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest. - A collection of EDM functions. - - - Returns the FacetDescription objects for a particular type. - The FacetDescription objects for the specified EDM type. - The EDM type to return the facet description for. - - - When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type. - - The instance that describes an EDM type and a set of facets for that type. - - The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type. - - - When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type. - The TypeUsage instance that describes a storage type and a set of facets for that type. - The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type. - - - When overridden in a derived class, this method returns provider-specific information. - The XmlReader object that represents the mapping to the underlying data store catalog. - The type of the information to return. - - - Gets the provider-specific information. - The provider-specific information. - The type of the information to return. - - - Indicates if the provider supports escaping strings to be used as patterns in a Like expression. - True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false. - If the provider supports escaping, the character that would be used as the escape character. - - - Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true. - The argument with the wildcards and the escape character escaped. - The argument to be escaped. - - - - Returns a boolean that specifies whether the provider can handle expression trees - containing instances of DbInExpression. - The default implementation returns false for backwards compatibility. Derived classes can override this method. - - - false - - - - - Returns a boolean that specifies whether the provider can process expression trees not having DbProjectExpression - nodes directly under both Left and Right sides of DbUnionAllExpression and DbIntersectExpression - - - false - - - - Gets the namespace used by this provider manifest. - The namespace used by this provider manifest. - - - - The factory for building command definitions; use the type of this object - as the argument to the IServiceProvider.GetService method on the provider - factory; - - - - - Constructs an EF provider that will use the obtained from - the app domain Singleton for resolving EF dependencies such - as the instance to use. - - - - - Registers a handler to process non-error messages coming from the database provider. - - The connection to receive information for. - The handler to process messages. - - - - Create a Command Definition object given a command tree. - - command tree for the statement - an executable command definition object - - This method simply delegates to the provider's implementation of CreateDbCommandDefinition. - - - - Creates command definition from specified manifest and command tree. - The created command definition. - The manifest. - The command tree. - - - Creates a command definition object for the specified provider manifest and command tree. - An executable command definition object. - Provider manifest previously retrieved from the store provider. - Command tree for the statement. - - - - Create the default DbCommandDefinition object based on the prototype command - This method is intended for provider writers to build a default command definition - from a command. - Note: This will clone the prototype - - the prototype command - an executable command definition object - - - - See issue 2390 - cloning the DesignTimeVisible property on the - DbCommand can cause deadlocks. So here allow sub-classes to override. - - the object to clone - a clone of the - - - Returns provider manifest token given a connection. - The provider manifest token. - Connection to provider. - - - - Returns provider manifest token for a given connection. - - Connection to find manifest token from. - The provider manifest token for the specified connection. - - - Returns the provider manifest by using the specified version information. - The provider manifest by using the specified version information. - The token information associated with the provider manifest. - - - When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest. - A DbProviderManifest object that represents the provider manifest. - The token information associated with the provider manifest. - - - - Gets the that will be used to execute methods that use the specified connection. - - The database connection - - A new instance of - - - - - Gets the that will be used to execute methods that use the specified connection. - This overload should be used by the derived classes for compatability with wrapping providers. - - The database connection - The provider invariant name - - A new instance of - - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The manifest token associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - Gets the spatial services for the . - The spatial services. - Information about the database that the spatial services will be used for. - - - - Gets the spatial data reader for the . - - The spatial data reader. - The reader where the spatial data came from. - The token information associated with the provider manifest. - - - - Gets the spatial services for the . - - The spatial services. - The token information associated with the provider manifest. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - - Sets the parameter value and appropriate facets for the given . - - The parameter. - The type of the parameter. - The value of the parameter. - - - Returns providers given a connection. - - The instanced based on the specified connection. - - Connection to provider. - - - Retrieves the DbProviderFactory based on the specified DbConnection. - The retrieved DbProviderFactory. - The connection to use. - - - - Return an XML reader which represents the CSDL description - - The name of the CSDL description. - An XmlReader that represents the CSDL description - - - Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token. - The provider manifest token identifying the target version. - The structure of the database. - - - - Generates a data definition language (DDL) script that creates schema objects - (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection - parameter and targeted for the version of the database corresponding to the provider manifest token. - - - Individual statements should be separated using database-specific DDL command separator. - It is expected that the generated script would be executed in the context of existing database with - sufficient permissions, and it should not include commands to create the database, but it may include - commands to create schemas and other auxiliary objects such as sequences, etc. - - The provider manifest token identifying the target version. - The structure of the database. - - A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter - and targeted for the version of the database corresponding to the provider manifest token. - - - - - Creates a database indicated by connection and creates schema objects - (tables, primary keys, foreign keys) based on the contents of storeItemCollection. - - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection. - Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter. - Execution timeout for any commands needed to create the database. - The collection of all store items based on which the script should be created. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - - - Returns a value indicating whether a given database exists on the server. - True if the provider can deduce the database only based on the connection. - Connection to a database whose existence is checked by this method. - Execution timeout for any commands needed to determine the existence of the database. - The collection of all store items from the model. This parameter is no longer used for determining database existence. - Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - Deletes the specified database. - Connection to an existing database that needs to be deleted. - Execution timeout for any commands needed to delete the database. - The collection of all store items from the model. This parameter is no longer used for database deletion. - - - - Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path, - or returns the given string if it does not start with |DataDirectory|. - - The path to expand. - The expanded path. - - - - Adds an that will be used to resolve additional default provider - services when a derived type is registered as an EF provider either using an entry in the application's - config file or through code-based registration in . - - The resolver to add. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - - Use this method to set, add, or change other provider-related services. Note that this method - will only be called for such services if they are not already explicitly configured in some - other way by the application. This allows providers to set default services while the - application is still able to override and explicitly configure each service if required. - See and for more details. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - An instance of the given type, or null if the service could not be resolved. - - - - Called to resolve additional default provider services when a derived type is registered as an - EF provider either using an entry in the application's config file or through code-based - registration in . The implementation of this method in this - class uses the resolvers added with the AddDependencyResolver method to resolve - dependencies. - - The type of the service to be resolved. - An optional key providing additional information for resolving the service. - All registered services that satisfy the given type and key, or an empty enumeration if there are none. - - - - A specialization of the ProviderManifest that accepts an XmlReader - - - - - Initializes a new instance of the class. - - - An object that provides access to the XML data in the provider manifest file. - - - - Returns the list of facet descriptions for the specified Entity Data Model (EDM) type. - - A collection of type that contains the list of facet descriptions for the specified EDM type. - - - An for which the facet descriptions are to be retrieved. - - - - Returns the list of primitive types supported by the storage provider. - - A collection of type that contains the list of primitive types supported by the storage provider. - - - - Returns the list of provider-supported functions. - - A collection of type that contains the list of provider-supported functions. - - - - Gets the namespace name supported by this provider manifest. - The namespace name supported by this provider manifest. - - - Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name. - The best mapped equivalent EDM type for a specified storage type name. - - - Gets the best mapped equivalent storage primitive type for a specified storage type name. - The best mapped equivalent storage primitive type for a specified storage type name. - - - - Class for representing a collection of items. - Most of the implementation for actual maintenance of the collection is - done by MetadataCollection - - - - - Class representing a read-only wrapper around MetadataCollection - - The type of items in this collection - - - Retrieves an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - - - Determines whether the collection contains an item with the specified identity. - true if the collection contains the item to be searched for; otherwise, false. The default is false. - The identity of the item. - - - Retrieves an item from this collection by using the specified identity. - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item to be searched for. - true to perform the case-insensitive search; otherwise, false. - When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null. - - - Returns an enumerator that can iterate through this collection. - - A that can be used to iterate through this - - . - - - - Returns the index of the specified value in this collection. - The index of the specified value in this collection. - A value to seek. - - - Gets a value indicating whether this collection is read-only. - true if this collection is read-only; otherwise, false. - - - Gets an item from this collection by using the specified identity. - An item from this collection. - The identity of the item to be searched for. - - - - The enumerator for MetadataCollection - - - - Disposes of this enumerator. - - - - Moves to the next member in the collection of type - - . - - - true if the enumerator is moved in the collection of type - - ; otherwise, false. - - - - - Positions the enumerator before the first position in the collection of type - - . - - - - Gets the member at the current position. - The member at the current position. - - - - Gets the member at the current position - - - - - Returns a strongly typed object by using the specified identity. - - The item that is specified by the identity. - The identity of the item. - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity from this item collection. - - true if there is an item that matches the search criteria; otherwise, false. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, the output parameter contains a - - object. If there is no global item with the specified identity in the item collection, this output parameter contains null. - - The type returned by the method. - - - - Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search. - - The item that is specified by the identity. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The type returned by the method. - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all the items of the specified type. - - The type returned by the method. - - - - Returns an object by using the specified type name and the namespace name in this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - - An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified type name and the namespace name from this item collection. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, this output parameter contains an - - object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null. - - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - - - Returns all the overloads of the functions by using the specified name from this item collection. - - A collection of type that contains all the functions that have the specified name. - - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - Returns all the overloads of the functions by using the specified name from this item collection. - A collection of type ReadOnlyCollection that contains all the functions that have the specified name. - A dictionary of functions. - The full name of the function. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first one. - The name of the entity container. - - - - Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - - Returns an object by using the specified entity container name. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container. - - - - Gets the data model associated with this item collection. - The data model associated with this item collection. - - - - EntityRecordInfo class providing a simple way to access both the type information and the column information. - - - - - Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information. - - - The of the entity represented by the - - described by this - - object. - - - An enumerable collection of objects that represent column information. - - The key for the entity. - The entity set to which the entity belongs. - - - - Gets the for the entity. - - The key for the entity. - - - - Public Entity SQL Parser class. - - - - Parse the specified query with the specified parameters. - - The containing - - and information describing inline function definitions if any. - - The EntitySQL query to be parsed. - The optional query parameters. - - - - Parse a specific query with a specific set variables and produce a - - . - - - The containing - - and information describing inline function definitions if any. - - The query to be parsed. - The optional query variables. - - - - Entity SQL query inline function definition, returned as a part of . - - - - Function name. - - - Function body and parameters. - - - Start position of the function definition in the eSQL query text. - - - End position of the function definition in the eSQL query text. - - - - Entity SQL Parser result information. - - - - A command tree produced during parsing. - - - - List of objects describing query inline function definitions. - - - - - Compares objects using reference equality. - - - - - Gets the default instance. - - - - - Wraps access to the transaction object on the underlying store connection and ensures that the - Entity Framework executes commands on the database within the context of that transaction. - An instance of this class is retrieved by calling BeginTransaction() on the - - object. - - - - - Commits the underlying store transaction - - - - - Rolls back the underlying store transaction - - - - - Cleans up this transaction object and ensures the Entity Framework - is no longer using that transaction. - - - - - Releases the resources used by this transaction object - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - - - - - - - - - - - - - Gets the database (store) transaction that is underlying this context transaction. - - - - - A service for obtaining the correct from a given - . - - - On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the - default implementation of this service uses some heuristics to find the matching - provider. If these fail then a new implementation of this service can be registered - on to provide an appropriate resolution. - - - - - Returns the for the given connection. - - The connection. - The provider factory for the connection. - - - - Explicitly implemented by to prevent certain members from showing up - in the IntelliSense of scaffolded migrations. - - - - - Adds a custom to the migration. - Custom operation implementors are encouraged to create extension methods on - that provide a fluent-style API for adding new operations. - - The operation to add. - - - - A default implementation of that uses the - underlying provider to get the manifest token. - Note that to avoid multiple queries, this implementation using caching based on the actual type of - instance, the property, - and the property. - - - - - A service for getting a provider manifest token given a connection. - The class is used by default and makes use of the - underlying provider to get the token which often involves opening the connection. - A different implementation can be used instead by adding an - to that may use any information in the connection to return - the token. For example, if the connection is known to point to a SQL Server 2008 database then - "2008" can be returned without opening the connection. - - - - - Returns the manifest token to use for the given connection. - - The connection for which a manifest token is required. - The manifest token to use. - - - - - - - A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs. - - - - - Executes the specified operation. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Executes the specified asynchronous operation. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - - - - Executes the specified asynchronous operation and returns the result. - - - The result type of the returned by . - - - A function that returns a started task of type . - - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - - - - Indicates whether this might retry the execution after a failure. - - - - - Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses - exponentially increasing delays between retries. - - - A new instance will be created each time an operation is executed. - The following formula is used to calculate the delay after retryCount number of attempts: - min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) - The retryCount starts at 0. - The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously. - - - - - Creates a new instance of . - - - The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor. - - - - - Creates a new instance of with the specified limits for number of retries and the delay between retries. - - The maximum number of retry attempts. - The maximum delay in milliseconds between retries. - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - A delegate representing an executable operation that doesn't return any results. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified operation while it satisfies the current retry policy. - - The type of result expected from the executable operation. - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repetitively executes the specified asynchronous operation while it satisfies the current retry policy. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Repeatedly executes the specified asynchronous operation while it satisfies the current retry policy. - - - The result type of the returned by . - - - A function that returns a started task of type . - - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully (either the - first time or after retrying transient failures). If the task fails with a non-transient error or - the retry limit is reached, the returned task will become faulted and the exception must be observed. - - if the retry delay strategy determines the operation shouldn't be retried anymore - if an existing transaction is detected and the execution strategy doesn't support it - if this instance was already used to execute an operation - - - - Determines whether the operation should be retried and the delay before the next attempt. - - The exception thrown during the last execution attempt. - - Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; - null otherwise - - - - - Recursively gets InnerException from as long as it's an - , or - and passes it to - - The type of the unwrapped exception. - The exception to be unwrapped. - A delegate that will be called with the unwrapped exception. - - The result from . - - - - - Determines whether the specified exception represents a transient failure that can be compensated by a retry. - - The exception object to be verified. - - true if the specified exception is considered as transient, otherwise false. - - - - - Returns true to indicate that might retry the execution after a failure. - - - - - A key used for resolving . It consists of the ADO.NET provider invariant name - and the database server name as specified in the connection string. - - - - - Initializes a new instance of - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - A string that will be matched against the server name in the connection string. - - - - - - - - - - The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. - - - - - A string that will be matched against the server name in the connection string. - - - - - Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache. - This interface allows you to have a single context type that can be used with different models in the same AppDomain, - or multiple context types that use the same model. - - - - Gets the cached key associated with the provider. - The cached key associated with the provider. - - - - Used by and when resolving - a provider invariant name from a . - - - - Gets the name of the provider. - The name of the provider. - - - - Represents a custom pluralization term to be used by the - - - - - Create a new instance - - A non null or empty string representing the singular. - A non null or empty string representing the plural. - - - - Get the singular. - - - - - Get the plural. - - - - - Default pluralization service implementation to be used by Entity Framework. This pluralization - service is based on English locale. - - - - - Pluralization services to be used by the EF runtime implement this interface. - By default the is used, but the pluralization service to use - can be set in a class derived from . - - - - - Pluralize a word using the service. - - The word to pluralize. - The pluralized word - - - - Singularize a word using the service. - - The word to singularize. - The singularized word. - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - - - Constructs a new instance of default pluralization service - used in Entity Framework. - - - A collection of user dictionary entries to be used by this service.These inputs - can customize the service according the user needs. - - - - Returns the plural form of the specified word. - The plural form of the input parameter. - The word to be made plural. - - - Returns the singular form of the specified word. - The singular form of the input parameter. - The word to be made singular. - - - - The exception that is thrown when the action failed again after being retried the configured number of times. - - - - - Provider exception - Used by the entity client. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the class with no error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The message that describes the error. - The exception that is the cause of the current exception. - - - - An that doesn't retry operations if they fail. - - - - - Executes the specified operation once. - - A delegate representing an executable operation that doesn't return any results. - - - - Executes the specified operation once and returns the result. - - - The return type of . - - - A delegate representing an executable operation that returns the result of type . - - The result from the operation. - - - - Executes the specified asynchronous operation once, without retrying on failure. - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully. - - - - - Executes the specified asynchronous operation once, without retrying on failure. - - - The result type of the returned by . - - A function that returns a started task. - - A cancellation token used to cancel the retry operation, but not operations that are already in flight - or that already completed successfully. - - - A task that will run to completion if the original task completes successfully. - - - - - Returns false to indicate that will not retry the execution after a failure. - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Gets an enumerator that can be used to asynchronously enumerate the sequence. - - Enumerator for asynchronous enumeration over the sequence. - - - - Asynchronous version of the interface that allows elements of the enumerable sequence to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - The type of objects to enumerate. - - - - Gets an enumerator that can be used to asynchronously enumerate the sequence. - - Enumerator for asynchronous enumeration over the sequence. - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a generic version of this class. - - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a generic version of this class. - - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to perform on each element. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to perform on each element. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the query. - - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the query. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking - and AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the results of the query will not be tracked by the associated - . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Represents a SQL query for entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance for the - entity type. The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for non-entities are created using . - See for a non-generic version of this class. - - The type of entities returned by the query. - - - - Represents a SQL query for non-entities that is created from a - and is executed using the connection from that context. - Instances of this class are obtained from the instance. - The query is not executed when this object is created; it is executed - each time it is enumerated, for example by using foreach. - SQL queries for entities are created using . - See for a non-generic version of this class. - - The type of elements returned by the query. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Returns an which when enumerated will execute the SQL query against the database. - - - An object that can be used to iterate through the elements. - - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to be executed. - A task that represents the asynchronous operation. - - - - Asynchronously enumerates the query results and performs the specified action on each element. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The action to be executed. - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains elements from the input sequence. - - - - - Creates an array from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates an array from the query by enumerating it asynchronously. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an array that contains elements from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function and a comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - A function to extract a key from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains selected keys and values. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the query. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the query. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Creates a from the query by enumerating it asynchronously - according to a specified key selector function, a comparer, and an element selector function. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The type of the key returned by . - - - The type of the value returned by . - - A function to extract a key from each element. - A transform function to produce a result element value from each element. - - An to compare keys. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains a that contains values of type - selected from the input sequence. - - - - - Asynchronously returns the first element of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result. - - The query result is empty. - - - - Asynchronously returns the first element of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result. - - The query result is empty. - - - - Asynchronously returns the first element of the query that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the first element in the query result that satisfies a specified condition. - - - - is - null - . - - The query result is empty. - - - - Asynchronously returns the first element of the query that satisfies a specified condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the first element in the query result that satisfies a specified condition. - - - - is - null - . - - The query result is empty. - - - - Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty; - otherwise, the first element in the query result. - - - - - Asynchronously returns the first element of the query, or a default value if the the query result contains no elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty; - otherwise, the first element in the query result. - - - - - Asynchronously returns the first element of the query that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty - or if no element passes the test specified by ; otherwise, the first element - in the query result that passes the test specified by . - - - - is - null - . - - - - - Asynchronously returns the first element of the query that satisfies a specified condition - or a default value if no such element is found. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains default ( ) if query result is empty - or if no element passes the test specified by ; otherwise, the first element - in the query result that passes the test specified by . - - - - is - null - . - - - - - Asynchronously returns the only element of the query, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result. - - The query result has more than one element. - The query result is empty. - - - - Asynchronously returns the only element of the query, and throws an exception - if there is not exactly one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result. - - The query result has more than one element. - The query result is empty. - - - - Asynchronously returns the only element of the query that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - . - - - - is - null - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of the query that satisfies a specified condition, - and throws an exception if more than one such element exists. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - . - - - - is - null - . - - - No element satisfies the condition in - - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result, or default () - if the sequence contains no elements. - - The query result has more than one element. - - - - Asynchronously returns the only element of a sequence, or a default value if the sequence is empty; - this method throws an exception if there is more than one element in the sequence. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result, or default () - if the sequence contains no elements. - - The query result has more than one element. - - - - Asynchronously returns the only element of the query that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - , or default ( ) if no such element is found. - - - - is - null - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously returns the only element of the query that satisfies a specified condition or - a default value if no such element exists; this method throws an exception if more than one element - satisfies the condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the single element of the query result that satisfies the condition in - , or default ( ) if no such element is found. - - - - is - null - . - - - More than one element satisfies the condition in - - . - - - - - Asynchronously determines whether the query contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The object to locate in the query result. - - A task that represents the asynchronous operation. - The task result contains true if the query result contains the specified value; otherwise, false. - - - - - Asynchronously determines whether the query contains a specified element by using the default equality comparer. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The object to locate in the query result. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains the specified value; otherwise, false. - - - - - Asynchronously determines whether the query contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains any elements; otherwise, false. - - - - - Asynchronously determines whether the query contains any elements. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the query result contains any elements; otherwise, false. - - - - - Asynchronously determines whether any element of the query satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. - - - - - Asynchronously determines whether any element of the query satisfies a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false. - - - - - Asynchronously determines whether all the elements of the query satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. - - - - is - null - . - - - - - Asynchronously determines whether all the elements of the query satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false. - - - - is - null - . - - - - - Asynchronously returns the number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns the number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns the number of elements in the query that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the number of elements in the query that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns an that represents the total number of elements in the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result. - - - The number of elements in the query result is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in the query - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns an that represents the number of elements in the query - that satisfy a condition. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - A function to test each element for a condition. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of elements in the query result that satisfy the condition in the predicate function. - - - The number of elements in the query result that satisfy the condition in the predicate function - is larger than - - . - - - - - Asynchronously returns the minimum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the query result. - - - - - Asynchronously returns the minimum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the minimum value in the query result. - - - - - Asynchronously returns the maximum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the query result. - - - - - Asynchronously returns the maximum value of the query. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the maximum value in the query result. - - - - - Returns a that contains the SQL string that was set - when the query was created. The parameters are not included. - - - A that represents this instance. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - - Never returns; always throws. - - - - - - - - - - - - - Returns false. - - - false . - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for . Methods and properties - that will be used by the test double must be implemented by the test double except AsNoTracking and - AsStreaming where the default implementation is a no-op. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - - - - - - - - - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Advances the enumerator to the next element in the sequence, returning the result asynchronously. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sequence. - - - - - Gets the current element in the iteration. - - - - - Defines methods to create and asynchronously execute queries that are described by an - object. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - - - - Asynchronously executes the query represented by a specified expression tree. - - An expression tree that represents a LINQ query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the value that results from executing the specified query. - - - - - Asynchronously executes the strongly-typed query represented by a specified expression tree. - - The type of the value that results from executing the query. - An expression tree that represents a LINQ query. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the value that results from executing the specified query. - - - - - Asynchronous version of the interface that allows elements to be retrieved asynchronously. - This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes. - - The type of objects to enumerate. - - - - Gets the current element in the iteration. - - - - - Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory. - - - - Determines whether the current cached model key is equal to the specified cached model key. - true if the current cached model key is equal to the specified cached model key; otherwise, false. - The cached model key to compare to the current cached model key. - - - Returns the hash function for this cached model key. - The hash function for this cached model key. - - - - Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database. - - - - - Represents errors that occur inside the Code First Migrations pipeline. - - - - - Initializes a new instance of the MigrationsException class. - - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the MigrationsException class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Initializes a new instance of the MigrationsPendingException class. - - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsPendingException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - A migration operation to add a new stored procedure to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the stored procedure. - The body of the stored procedure expressed in SQL. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the stored procedure. - - - - - Allows configuration to be performed for a lightweight convention based on - the properties in a model. - - - - - Filters the properties that this convention applies to based on a predicate. - - A function to test each property for a condition. - - A instance so that multiple calls can be chained. - - - - - Filters the properties that this convention applies to based on a predicate - while capturing a value to use later during configuration. - - Type of the captured value. - - A function to capture a value for each property. If the value is null, the - property will be filtered out. - - - A instance so that multiple calls can be chained. - - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - - . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a lightweight convention based on - the properties of entity types in a model and a captured value. - - The type of the captured value. - - - - Allows configuration of the properties that this convention applies to. - - - An action that performs configuration against a - using a captured value. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to modify a relationship. - - The type of the entity that the relationship is being configured from. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - The type of the property. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Creates a convention that configures stored procedures to be used to delete entities in the database. - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to insert entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - - - - - - - - - - - - - - Creates a convention that configures stored procedures to be used to modify entities in the database. - - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a convention that configures stored procedures to be used to update entities in the database. - - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - The property to configure the parameter for. - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The name of the property to configure the result for. - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - The property to configure the result for. - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - - Performs configuration of a stored procedure uses to modify an entity in the database. - - - - - Sets the name of the stored procedure. - - Name of the procedure. - The same configuration instance so that multiple calls can be chained. - - - - Sets the name of the stored procedure. - - Name of the procedure. - Name of the schema. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the left key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - The type of the property to configure. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - Configures the parameter for the right key value(s). - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - Name of the parameter. - The same configuration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship. - - The type of the entity that the relationship is being configured from. - The type of the entity that the other end of the relationship targets. - - - Configures stored procedure used to insert relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete relationships. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows configuration to be performed for a stored procedure that is used to delete entities. - - The type of the entity that the stored procedure can be used to delete. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to insert entities. - - The type of the entity that the stored procedure can be used to insert. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to update entities. - - The type of the entity that the stored procedure can be used to update. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - - - Configures the name of the stored procedure. - The same configuration instance so that multiple calls can be chained. - The stored procedure name. - The schema name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the parameter. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - Configures a parameter for this stored procedure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The current value parameter name. - The original value parameter name. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The type of the property to configure. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - - Configures a column of the result for this stored procedure to map to a property. - This is used for database generated columns. - - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The name of the result column. - - - Configures the output parameter that returns the rows affected by this stored procedure. - The same configuration instance so that multiple calls can be chained. - The name of the parameter. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - Configures parameters for a relationship where the foreign key property is not included in the class. - The same configuration instance so that multiple calls can be chained. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A lambda expression that performs the configuration. - The type of the principal entity in the relationship. - - - - - - - - - - - - - - - - Allows configuration to be performed for a stored procedure that is used to modify entities. - - The type of the entity that the stored procedure can be used to modify. - - - Configures stored procedure used to insert entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to update entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - Configures stored procedure used to delete entities. - The same configuration instance so that multiple calls can be chained. - A lambda expression that performs configuration for the stored procedure. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via lightweight conventions. - - - - - Configures the name of the database column used to store the property. - - The name of the column. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Calling this method will have no effect if the - annotation with the given name has already been configured. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - - The same instance so that multiple calls can be chained. - - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be used as an optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures how values for the property are generated by the database. - - The pattern used to generate values for the property in the database. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - - - - - Configures the property to support Unicode string content. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to be variable length. - Properties are variable length by default. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the property to allow the maximum length supported by the database provider. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property does not have length facets. - - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method will throw if the property is not a . - - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - - The same instance so that multiple calls can be chained. - - - Calling this will have no effect once it has been configured. - This method throws if the property is not a . - - - - - Configures this property to be part of the entity type's primary key. - - - The same instance so that - multiple calls can be chained. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the for this property. - - - - - An implementation of that does nothing. Using this - initializer disables database initialization for the given context type. Passing an instance - of this class to is equivalent to passing null. - When is being used to resolve initializers an instance of - this class must be used to disable initialization. - - The type of the context. - - - - - - - FieldMetadata class providing the correlation between the column ordinals and MemberMetadata. - - - - - Initializes a new object with the specified ordinal value and field type. - - An integer specified the location of the metadata. - The field type. - - - - Gets the type of field for this object. - - - The type of field for this object. - - - - - Gets the ordinal for this object. - - An integer representing the ordinal value. - - - - Class representing a parameter collection used in EntityCommand - - - - - Adds the specified object to the . - - - The index of the new object. - - - An . - - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Removes all the objects from the - - . - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified one-dimensional - - starting at the specified destination index. - - - The one-dimensional that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the at which copying starts. - - - - - Returns an enumerator that iterates through the - - . - - - An for the - - . - - - - - - - - - - - Gets the location of the specified with the specified name. - - - The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the - - . - - - The case-sensitive name of the to find. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts an into the - - at the specified index. - - The zero-based index at which value should be inserted. - - An to be inserted in the - - . - - - - Removes the specified parameter from the collection. - - A object to remove from the collection. - - - - - Removes the from the - - at the specified index. - - - The zero-based index of the object to remove. - - - - - Removes the from the - - at the specified parameter name. - - - The name of the to remove. - - - - - - - - - - - Adds the specified object to the - - . - - - A new object. - - - The to add to the collection. - - - The specified in the value parameter is already added to this or another - - . - - - The parameter passed was not a . - - The value parameter is null. - - - - Adds a value to the end of the . - - - A object. - - The name of the parameter. - The value to be added. - - - - Adds a to the - - given the parameter name and the data type. - - - A new object. - - The name of the parameter. - - One of the values. - - - - - Adds a to the - - with the parameter name, the data type, and the column length. - - - A new object. - - The name of the parameter. - - One of the values. - - The column length. - - - - Adds an array of values to the end of the - - . - - - The values to add. - - - - - Determines whether the specified is in this - - . - - - true if the contains the value; otherwise false. - - - The value. - - - - - Copies all the elements of the current to the specified - - starting at the specified destination index. - - - The that is the destination of the elements copied from the current - - . - - - A 32-bit integer that represents the index in the - - at which copying starts. - - - - - Gets the location of the specified in the collection. - - - The zero-based location of the specified that is a - - in the collection. Returns -1 when the object does not exist in the - - . - - - The to find. - - - - - Inserts a object into the - - at the specified index. - - The zero-based index at which value should be inserted. - - A object to be inserted in the - - . - - - - - Removes the specified from the collection. - - - A object to remove from the collection. - - - The parameter is not a . - - The parameter does not exist in the collection. - - - - Gets an Integer that contains the number of elements in the - - . - - - The number of elements in the as an Integer. - - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true if the has a fixed size; otherwise false. - - - - - Gets a value that indicates whether the - - is read-only. - - - Returns true if the is read only; otherwise false. - - - - - Gets a value that indicates whether the - - is synchronized. - - - Returns true if the is synchronized; otherwise false. - - - - - Gets an object that can be used to synchronize access to the - - . - - - An object that can be used to synchronize access to the - - . - - - - - Gets the at the specified index. - - - The at the specified index. - - The zero-based index of the parameter to retrieve. - The specified index does not exist. - - - - Gets the with the specified name. - - - The with the specified name. - - The name of the parameter to retrieve. - The specified name does not exist. - - - - Class representing a command for the conceptual layer - - - - - Initializes a new instance of the class using the specified values. - - - - - Initializes a new instance of the class with the specified statement. - - The text of the command. - - - - Constructs the EntityCommand object with the given eSQL statement and the connection object to use - - The eSQL command text to execute - The connection object - Resolver used to resolve DbProviderServices - - - - Initializes a new instance of the class with the specified statement and connection. - - The text of the command. - A connection to the data source. - - - - Initializes a new instance of the class with the specified statement, connection and transaction. - - The text of the command. - A connection to the data source. - The transaction in which the command executes. - - - - Cancels the execution of an . - - - - - Creates a new instance of an object. - - - A new instance of an object. - - - - - Create and return a new parameter object representing a parameter in the eSQL statement - - The parameter object. - - - Executes the command and returns a data reader. - - The that contains the results. - - - - - Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an - - out of the produced result set using the specified - - . - - - The that contains the results. - - - One of the values. - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - The behavior to use when executing the command - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Asynchronously executes the command and returns a data reader for reading the results. May only - be called on CommandType.CommandText (otherwise, use the standard Execute* methods) - - The behavior to use when executing the command - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an EntityDataReader object. - - - For stored procedure commands, if called - for anything but an entity collection result - - - - - Executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - A DbDataReader object - - - - Asynchronously executes the command and returns a data reader for reading the results - - The behavior to use when executing the command - The token to monitor for cancellation requests - - A task that represents the asynchronous operation. - The task result contains a DbDataReader object. - - - - Executes the current command. - The number of rows affected. - - - - Asynchronously executes the command and discard any results returned from the command - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored. - The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty. - - - Compiles the entity-level command and creates a prepared version of the command. - - - Compiles the entity-level command and returns the store command text. - The store command text. - - - - Gets or sets the used by the - - . - - The connection used by the entity command. - - - - The connection object used for executing the command - - - - Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute. - The Entity SQL statement that specifies a command or stored procedure to execute. - - - Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both. - The command tree to execute. - - - Gets or sets the amount of time to wait before timing out. - The time in seconds to wait for the command to execute. - - - - Gets or sets a value that indicates how the - - property is to be interpreted. - - - One of the enumeration values. - - - - Gets the parameters of the Entity SQL statement or stored procedure. - The parameters of the Entity SQL statement or stored procedure. - - - - The collection of parameters for this command - - - - - Gets or sets the transaction within which the executes. - - - The transaction within which the executes. - - - - - The transaction that this command executes in - - - - Gets or sets how command results are applied to rows being updated. - - One of the values. - - - - Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control. - true if the command object should be visible in a Windows Form Designer control; otherwise, false. - - - Gets or sets a value that indicates whether the query plan caching is enabled. - true if the query plan caching is enabled; otherwise, false. - - - - Class representing a connection for the conceptual layer. An entity connection may only - be initialized once (by opening the connection). It is subsequently not possible to change - the connection string, attach a new store connection, or change the store connection string. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, based on the connection string. - - The provider-specific connection string. - An invalid connection string keyword has been provided, or a required connection string keyword has not been provided. - - - - Initializes a new instance of the class with a specified - and - . - - - A to be associated with this - . - - - The underlying data source connection for this object. - - The workspace or connection parameter is null. - The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state. - The connection is not from an ADO.NET Entity Framework-compatible provider. - - - - Constructs the EntityConnection from Metadata loaded in memory - - Workspace containing metadata information. - Store connection. - If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. - - - - Returns the associated with this - - . - - - The associated with this - - . - - The inline connection string contains an invalid Metadata keyword value. - - - Establishes a connection to the data source by calling the underlying data provider's Open method. - An error occurs when you open the connection, or the name of the underlying data provider is not known. - The inline connection string contains an invalid Metadata keyword value. - - - - Asynchronously establishes a connection to the data store by calling the Open method on the underlying data provider - - - A to observe while waiting for the task to complete. - - A task that represents the asynchronous operation. - - - - Creates a new instance of an , with the - - set to this - - . - - - An object. - - The name of the underlying data provider is not known. - - - - Create a new command object that uses this connection object - - The command object. - - - Closes the connection to the database. - An error occurred when closing the connection. - - - Not supported. - Not supported. - When the method is called. - - - Begins a transaction by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - Begins a transaction with the specified isolation level by using the underlying provider. - - A new . The returned - - instance can later be associated with the - - to execute the command under that transaction. - - The isolation level of the transaction. - - The underlying provider is not known.-or-The call to - - was made on an - - that already has a current transaction.-or-The state of the - - is not - - . - - - - - Begins a database transaction - - The isolation level of the transaction - An object representing the new transaction - - - - Enlists this in the specified transaction. - - The transaction object to enlist into. - - The state of the is not - - . - - - - - Cleans up this connection object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets or sets the connection string. - - The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned. - - An attempt was made to set the property after the - - ’s was initialized. The - - is initialized either when the instance is constructed through the overload that takes a - - as a parameter, or when the - - instance has been opened. - - An invalid connection string keyword has been provided or a required connection string keyword has not been provided. - - - Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error. - The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. - The value set is less than 0. - - - Gets the name of the current database, or the database that will be used after a connection is opened. - The value of the Database property of the underlying data provider. - The underlying data provider is not known. - - - - Gets the state of the EntityConnection, which is set up to track the state of the underlying - database connection that is wrapped by this EntityConnection. - - - - Gets the name or network address of the data source to connect to. - The name of the data source. The default value is an empty string. - The underlying data provider is not known. - - - Gets a string that contains the version of the data source to which the client is connected. - The version of the data source that is contained in the provider connection string. - The connection is closed. - - - - Gets the provider factory associated with EntityConnection - - - - - Provides access to the underlying data source connection that is used by the - - object. - - - The for the data source connection. - - - - - Gets the current transaction that this connection is enlisted in. May be null. - - - - - Class representing a connection string builder for the entity client provider - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class using the supplied connection string. - - A provider-specific connection string to the underlying data source. - - - - Clears the contents of the instance. - - - - - Determines whether the contains a specific key. - - - Returns true if the contains an element that has the specified key; otherwise, false. - - - The key to locate in the . - - - - - Retrieves a value corresponding to the supplied key from this - - . - - Returns true if keyword was found in the connection string; otherwise, false. - The key of the item to retrieve. - The value corresponding to keyword. - keyword contains a null value (Nothing in Visual Basic). - - - - Removes the entry with the specified key from the - - instance. - - Returns true if the key existed in the connection string and was removed; false if the key did not exist. - - The key of the keyword/value pair to be removed from the connection string in this - - . - - keyword is null (Nothing in Visual Basic) - - - Gets or sets the name of a section as defined in a configuration file. - The name of a section in a configuration file. - - - Gets or sets the name of the underlying .NET Framework data provider in the connection string. - The invariant name of the underlying .NET Framework data provider. - - - Gets or sets the metadata locations in the connection string. - Gets or sets the metadata locations in the connection string. - - - Gets or sets the inner, provider-specific connection string. - The inner, provider-specific connection string. - - - - Gets a value that indicates whether the - - has a fixed size. - - - Returns true in every case, because the - - supplies a fixed-size collection of keyword/value pairs. - - - - - Gets an that contains the keys in the - - . - - - An that contains the keys in the - - . - - - - Gets or sets the value associated with the specified key. In C#, this property is the indexer. - The value associated with the specified key. - The key of the item to get or set. - keyword is a null reference (Nothing in Visual Basic). - Tried to add a key that does not exist in the available keys. - Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied). - - - - A data reader class for the entity client provider - - - - - Closes the object. - - - - - Releases the resources consumed by this and calls - - . - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the value of the specified column as a Boolean. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a byte. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of bytes read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the value of the specified column as a single character. - The value of the specified column. - The zero-based column ordinal. - - - Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex . - The actual number of characters read. - The zero-based column ordinal. - The index within the row from which to begin the read operation. - The buffer into which to copy the data. - The index with the buffer to which the data will be copied. - The maximum number of characters to read. - - - Gets the name of the data type of the specified column. - The name of the data type. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - - Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation. - - A data reader. - The zero-based column ordinal. - - - - Gets the value of the specified column as a object. - - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a double-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the data type of the specified column. - The data type of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a single-precision floating point number. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a globally-unique identifier (GUID). - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 16-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 32-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the value of the specified column as a 64-bit signed integer. - The value of the specified column. - The zero-based column ordinal. - - - Gets the name of the column, given the zero-based column ordinal. - The name of the specified column. - The zero-based column ordinal. - - - Gets the column ordinal given the name of the column. - The zero-based column ordinal. - The name of the column. - The name specified is not a valid column name. - - - Returns the provider-specific field type of the specified column. - - The object that describes the data type of the specified column. - - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Gets all provider-specific attribute columns in the collection for the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - - Returns a that describes the column metadata of the - - . - - - A that describes the column metadata. - - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal. - - - Populates an array of objects with the column values of the current row. - - The number of instances of in the array. - - - An array of into which to copy the attribute columns. - - - - Gets a value that indicates whether the column contains nonexistent or missing values. - - true if the specified column is equivalent to ; otherwise, false. - - The zero-based column ordinal. - - - Advances the reader to the next result when reading the results of a batch of statements. - true if there are more result sets; otherwise, false. - - - - Asynchronously moves the reader to the next result set when reading a batch of statements - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if there are more result sets; false otherwise. - - - - Advances the reader to the next record in a result set. - true if there are more rows; otherwise, false. - - - - Asynchronously moves the reader to the next row of the current result set - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains true if there are more rows; false otherwise. - - - - - Returns an that can be used to iterate through the rows in the data reader. - - - An that can be used to iterate through the rows in the data reader. - - - - - Returns a nested . - - The nested data record. - The number of the DbDataRecord to return. - - - - Returns nested readers as objects. - - - The nested readers as objects. - - The ordinal of the column. - - - Gets a value indicating the depth of nesting for the current row. - The depth of nesting for the current row. - - - Gets the number of columns in the current row. - The number of columns in the current row. - - - - Gets a value that indicates whether this contains one or more rows. - - - true if the contains one or more rows; otherwise, false. - - - - - Gets a value indicating whether the is closed. - - - true if the is closed; otherwise, false. - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed. - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The zero-based column ordinal - - - - Gets the value of the specified column as an instance of . - - The value of the specified column. - The name of the column. - - - - Gets the number of fields in the that are not hidden. - - The number of fields that are not hidden. - - - - Gets for this - - . - - The information of a data record. - - - - Class representing a parameter used in EntityCommand - - - - - Initializes a new instance of the class using the default values. - - - - - Initializes a new instance of the class using the specified parameter name and data type. - - The name of the parameter. - - One of the values. - - - - - Initializes a new instance of the class using the specified parameter name, data type and size. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - The name of the source column. - - - - Initializes a new instance of the class using the specified properties. - - The name of the parameter. - - One of the values. - - The size of the parameter. - - One of the values. - - true to indicate that the parameter accepts null values; otherwise, false. - The number of digits used to represent the value. - The number of decimal places to which value is resolved. - The name of the source column. - - One of the values. - - The value of the parameter. - - - - Resets the type associated with the . - - - - Returns a string representation of the parameter. - A string representation of the parameter. - - - Gets or sets the name of the entity parameter. - The name of the entity parameter. - - - - Gets or sets the of the parameter. - - - One of the values. - - - - Gets or sets the type of the parameter, expressed as an EdmType. - The type of the parameter, expressed as an EdmType. - - - - Gets or sets the number of digits used to represent the - - property. - - The number of digits used to represent the value. - - - - Gets or sets the number of decimal places to which - - is resolved. - - The number of decimal places to which value is resolved. - - - Gets or sets the value of the parameter. - The value of the parameter. - - - Gets or sets the direction of the parameter. - - One of the values. - - - - Gets or sets a value that indicates whether the parameter accepts null values. - true if null values are accepted; otherwise, false. - - - Gets or sets the maximum size of the data within the column. - The maximum size of the data within the column. - - - - Gets or sets the name of the source column mapped to the and used for loading or returning the - - . - - The name of the source column mapped to the dataset and used for loading or returning the value. - - - Gets or sets a value that indicates whether source column is nullable. - true if source column is nullable; otherwise, false. - - - - Gets or sets the to use when loading the value. - - - One of the values. - - - - - Class representing a provider factory for the entity client provider - - - - - A singleton object for the entity client provider factory object. - This remains a public field (not property) because DbProviderFactory expects a field. - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - - - - Returns a new instance of the provider's class that implements the - - class. - - - A new instance of . - - - - - Throws a . This method is currently not supported. - - This method is currently not supported. - This method is currently not supported. - - - - Returns the requested class. - - - A new instance of . The supported types are - - , - - , and - - . Returns null (or Nothing in Visual Basic) for every other type. - - - The to return. - - - - - Class representing a transaction for the conceptual layer - - - - Commits the underlying transaction. - - - Rolls back the underlying transaction. - - - - Cleans up this transaction object - - true to release both managed and unmanaged resources; false to release only unmanaged resources - - - - Gets for this - - . - - - An to the underlying data source. - - - - - The connection object owning this transaction object - - - - - Gets the isolation level of this . - - - An enumeration value that represents the isolation level of the underlying transaction. - - - - - Gets the DbTransaction for the underlying provider transaction. - - - - - Represents a failure while trying to prepare or execute a CommandCompilation - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents a failure while trying to prepare or execute a CommandExecution - This exception is intended to provide a common exception that people can catch to - hold provider exceptions (SqlException, OracleException) when using the EntityCommand - to execute statements. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of . - - The message that describes the error. - - - - Initializes a new instance of . - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - An identifier for an entity. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with an entity set name and a generic - - collection. - - - A that is the entity set name qualified by the entity container name. - - - A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the - - . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name. - - - - - Initializes a new instance of the class with an entity set name and an - - collection of - - objects. - - - A that is the entity set name qualified by the entity container name. - - - An collection of - - objects with which to initialize the key. - - - - - Initializes a new instance of the class with an entity set name and specific entity key pair. - - - A that is the entity set name qualified by the entity container name. - - - A that is the name of the key. - - - An that is the key value. - - - - Gets the entity set for this entity key from the given metadata workspace. - - The for the entity key. - - The metadata workspace that contains the entity. - The entity set could not be located in the specified metadata workspace. - - - Returns a value that indicates whether this instance is equal to a specified object. - true if this instance and obj have equal values; otherwise, false. - - An to compare with this instance. - - - - - Returns a value that indicates whether this instance is equal to a specified - - . - - true if this instance and other have equal values; otherwise, false. - - An object to compare with this instance. - - - - - Serves as a hash function for the current object. - - is suitable for hashing algorithms and data structures such as a hash table. - - - A hash code for the current . - - - - - Compares two objects. - - true if the key1 and key2 values are equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Compares two objects. - - true if the key1 and key2 values are not equal; otherwise, false. - - A to compare. - - - A to compare. - - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Helper method that is used to deserialize an . - - Describes the source and destination of a given serialized stream and provides an additional caller-defined context. - - - - Gets a singleton EntityKey by which a read-only entity is identified. - - - - - Gets a singleton EntityKey identifying an entity resulted from a failed TREAT. - - - - Gets or sets the name of the entity set. - - A value that is the name of the entity set for the entity to which the - - belongs. - - - - Gets or sets the name of the entity container. - - A value that is the name of the entity container for the entity to which the - - belongs. - - - - - Gets or sets the key values associated with this . - - - A of key values for this - - . - - - - - Gets a value that indicates whether the is temporary. - - - true if the is temporary; otherwise, false. - - - - - Information about a key that is part of an EntityKey. - A key member contains the key name and value. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified entity key pair. - - The name of the key. - The key value. - - - Returns a string representation of the entity key. - A string representation of the entity key. - - - Gets or sets the name of the entity key. - The key name. - - - Gets or sets the value of the entity key. - The key value. - - - - Kind of collection (applied to Properties) - - - - - Property is not a Collection - - - - - Collection has Bag semantics( unordered and duplicates ok) - - - - - Collection has List semantics - (Order is deterministic and duplicates ok) - - - - - The concurrency mode for properties. - - - - - Default concurrency mode: the property is never validated - at write time - - - - - Fixed concurrency mode: the property is always validated at - write time - - - - - The pattern for Server Generated Properties. - - - - - Not a Server Generated Property. This is the default. - - - - - A value is generated on INSERT, and remains unchanged on update. - - - - - A value is generated on both INSERT and UPDATE. - - - - - Represents an eSQL Query compilation exception; - The class of exceptional conditions that may cause this exception to be raised are mainly: - 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar; - 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information - not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc. - For more information, see eSQL Language Spec. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - Gets a description of the error. - A string that describes the error. - - - Gets the approximate context where the error occurred, if available. - A string that describes the approximate context where the error occurred, if available. - - - Gets the approximate line number where the error occurred. - An integer that describes the line number where the error occurred. - - - Gets the approximate column number where the error occurred. - An integer that describes the column number where the error occurred. - - - - Thrown to indicate that a command tree is invalid. - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - Mapping exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Class for representing a collection of mapping items in Edm space. - - - - - Base class for the type created at design time to store the generated views. - - - - Returns the key/value pair at the specified index, which contains the view and its key. - The key/value pair at index , which contains the view and its key. - The index of the view. - - - - Gets or sets the name of . - - The container name. - - - - Gets or sets in storage schema. - - Container name. - - - Hash value. - Hash value. - - - Hash value of views. - Hash value. - - - Gets or sets view count. - View count. - - - - Attribute to mark the assemblies that contain the generated views type. - - - - - Initializes a new instance of the class. - - The view type. - - - Gets the T:System.Type of the view. - The T:System.Type of the view. - - - - Represents a complex type mapping for a function import result. - - - - - Specifies a function import structural type mapping. - - - - - Gets the property mappings for the result type of a function import. - - - - - Initializes a new FunctionImportComplexTypeMapping instance. - - The return type. - The property mappings for the result type of a function import. - - - - Ges the return type. - - - - - Represents a function import entity type mapping. - - - - - Initializes a new FunctionImportEntityTypeMapping instance. - - The entity types at the base of - the type hierarchies to be mapped. - The entity types to be mapped. - The property mappings for the result types of a function import. - The mapping conditions. - - - - Gets the entity types being mapped. - - - - - Gets the entity types at the base of the hierarchies being mapped. - - - - - Gets the mapping conditions. - - - - - Represents a mapping condition for a function import result. - - - - - - - - Gets the name of the column used to evaluate the condition. - - - - - Represents a mapping condition for the result of a function import - evaluated by checking null or not null. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance. - - The name of the column used to evaluate the condition. - Flag that indicates whether a null or not null check is performed. - - - - Gets a flag that indicates whether a null or not null check is performed. - - - - - Represents a mapping condition for the result of a function import, - evaluated by comparison with a specified value. - - - - - Initializes a new FunctionImportEntityTypeMappingConditionValue instance. - - The name of the column used to evaluate the condition. - The value to compare with. - - - - Gets the value used for comparison. - - - - - Represents a mapping from a model function import to a store composable or non-composable function. - - - - - Gets model function (or source of the mapping) - - - - - Gets store function (or target of the mapping) - - - - - Represents a mapping from a model function import to a store composable function. - - - - - Initializes a new FunctionImportMappingComposable instance. - - The model function import. - The store composable function. - The result mapping for the function import. - The parent container mapping. - - - - Gets the result mapping for the function import. - - - - - Represents a mapping from a model function import to a store non-composable function. - - - - - Initializes a new FunctionImportMappingNonComposable instance. - - The model function import. - The store non-composable function. - The function import result mappings. - The parent container mapping. - - - - Gets the function import result mappings. - - - - - Base class for mapping a property of a function import return type. - - - - - Maps a function import return type property to a table column. - - - - - Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance. - - The mapped property name. - The mapped column name. - - - - Gets the mapped property name. - - - - - Gets the mapped column name. - - - - - Represents the base item class for all the mapping metadata - - - - - Represents the base item class for all the metadata - - - - - Describes modification function mappings for an association set. - - - - - Initalizes a new AssociationSetModificationFunctionMapping instance. - - An association set. - A delete function mapping. - An insert function mapping. - - - - - - - Gets the association set. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Describes modification function mappings for an entity type within an entity set. - - - - - Initializes a new EntityTypeModificationFunctionMapping instance. - - An entity type. - A delete function mapping. - An insert function mapping. - An updated function mapping. - - - - - - - Gets the entity type. - - - - - Gets the delete function mapping. - - - - - Gets the insert function mapping. - - - - - Gets hte update function mapping. - - - - - Describes the location of a member within an entity or association type structure. - - - - - Initializes a new ModificationFunctionMemberPath instance. - - Gets the members in the path from the leaf (the member being bound) - to the root of the structure. - Gets the association set to which we are navigating - via this member. If the value is null, this is not a navigation member path. - - - - - - - Gets the members in the path from the leaf (the member being bound) - to the Root of the structure. - - - - - Gets the association set to which we are navigating via this member. If the value - is null, this is not a navigation member path. - - - - - Binds a modification function parameter to a member of the entity or association being modified. - - - - - Initializes a new ModificationFunctionParameterBinding instance. - - The parameter taking the value. - The path to the entity or association member defining the value. - A flag indicating whether the current or original member value is being bound. - - - - - - - Gets the parameter taking the value. - - - - - Gets the path to the entity or association member defining the value. - - - - - Gets a flag indicating whether the current or original - member value is being bound. - - - - - Defines a binding from a named result set column to a member taking the value. - - - - - Initializes a new ModificationFunctionResultBinding instance. - - The name of the column to bind from the function result set. - The property to be set on the entity. - - - - - - - Gets the name of the column to bind from the function result set. - - - - - Gets the property to be set on the entity. - - - - - Represents the Mapping metadata for an AssociationSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the AssociationSetMapping elements in the - above example. And it is possible to access the AssociationTypeMap underneath it. - There will be only one TypeMap under AssociationSetMap. - - - - - Represents the Mapping metadata for an Extent in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for all the extent map elements in the - above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - - - Gets the parent container mapping. - - - - - Gets or sets the query view associated with this mapping. - - - - - Initializes a new AssociationSetMapping instance. - - The association set to be mapped. - The store entity set to be mapped. - The parent container mapping. - - - - Adds a property mapping condition. - - The condition to add. - - - - Removes a property mapping condition. - - The property mapping condition to remove. - - - - Gets the association set that is mapped. - - - - - Gets the contained association type mapping. - - - - - Gets or sets the corresponding function mapping. Can be null. - - - - - Gets the store entity set that is mapped. - - - - - Gets or sets the source end property mapping. - - - - - Gets or sets the target end property mapping. - - - - - Gets the property mapping conditions. - - - - - Represents the Mapping metadata for an association type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ComplexTypeMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all association Type map elements in the - above example. Users can access the table mapping fragments under the - association type mapping through this class. - - - - - Represents the Mapping metadata for a type map in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all the Type map elements in the - above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping. - The TypeMapping elements contain TableMappingFragments which in turn contain the property maps. - - - - - Creates an AssociationTypeMapping instance. - - The AssociationSetMapping that - the contains this AssociationTypeMapping. - - - - Gets the AssociationSetMapping that contains this AssociationTypeMapping. - - - - - Gets the association type being mapped. - - - - - Gets the single mapping fragment. - - - - - Mapping metadata for Complex properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the complex property map elements in the - above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based - on the type of the ComplexProperty in case of inheritance. - - - - - Construct a new Complex Property mapping object - - The MemberMetadata object that represents this Complex member - - - - Adds a type mapping corresponding to a nested complex type. - - The complex type mapping to be added. - - - - Removes a type mapping corresponding to a nested complex type. - - The complex type mapping to be removed. - - - - Gets a read only collections of type mappings corresponding to the - nested complex types. - - - - - Mapping metadata for Complex Types. - - - - - Creates a ComplexTypeMapping instance. - - The ComplexType being mapped. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the ComplexType being mapped. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Mapping metadata for End property of an association. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the end property map elements in the - above example. EndPropertyMaps provide mapping for each end of the association. - - - - - Creates an association end property mapping. - - An AssociationEndMember that specifies - the association end to be mapped. - - - - Adds a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be added. - - - - Removes a child property-column mapping. - - A ScalarPropertyMapping that specifies - the property-column mapping to be removed. - - - - Gets an AssociationEndMember that specifies the mapped association end. - - - - - Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children - of this association end property mapping. - - - - - Represents the Mapping metadata for the EntityContainer map in CS space. - Only one EntityContainerMapping element is allowed in the MSL file for CS mapping. - - - For Example if conceptually you could represent the CS MSL file as following - ---Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --AssociationSetMapping - The type represents the metadata for EntityContainerMapping element in the above example. - The EntitySetBaseMapping elements that are children of the EntityContainerMapping element - can be accessed through the properties on this type. - - - We currently assume that an Entity Container on the C side - is mapped to a single Entity Container in the S - space. - - - - - Initializes a new EntityContainerMapping instance. - - The conceptual entity container to be mapped. - The store entity container to be mapped. - The parent mapping item collection. - Flag indicating whether to generate update views. - - - - Adds an entity set mapping. - - The entity set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds an association set mapping. - - The association set mapping to add. - - - - Removes an association set mapping. - - The association set mapping to remove. - - - - Adds a function import mapping. - - The function import mapping to add. - - - - Removes a function import mapping. - - The function import mapping to remove. - - - - Gets the parent mapping item collection. - - - - - Gets the type kind for this item - - - - - Gets the conceptual entity container. - - - - - Gets the store entity container. - - - - - Gets the entity set mappings. - - - - - Gets the association set mappings. - - - - - Gets the function import mappings. - - - - - Gets a flag that indicates whether to generate the update views or not. - - - - - Represents the Mapping metadata for an EnitytSet in CS space. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityTypeMapping - --MappingFragment - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - This class represents the metadata for the EntitySetMapping elements in the - above example. And it is possible to access the EntityTypeMaps underneath it. - - - - - Initialiazes a new EntitySetMapping instance. - - The entity set to be mapped. - The parent container mapping. - - - - Adds a type mapping. - - The type mapping to add. - - - - Removes a type mapping. - - The type mapping to remove. - - - - Adds a function mapping. - - The function mapping to add. - - - - Removes a function mapping. - - The function mapping to remove. - - - - Gets the entity set that is mapped. - - - - - Gets the contained entity type mappings. - - - - - Gets the corresponding function mappings. - - - - - Mapping metadata for Entity type. - If an EntitySet represents entities of more than one type, than we will have - more than one EntityTypeMapping for an EntitySet( For ex : if - PersonSet Entity extent represents entities of types Person and Customer, - than we will have two EntityType Mappings under mapping for PersonSet). - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ScalarPropertyMap - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap - --ComplexPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --ScalarPropertyMap - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap - --ScalarProperyMap - --EndPropertyMap - --ScalarPropertyMap - This class represents the metadata for all entity Type map elements in the - above example. Users can access the table mapping fragments under the - entity type mapping through this class. - - - - - Creates an EntityTypeMapping instance. - - The EntitySetMapping that contains this EntityTypeMapping. - - - - Adds an entity type to the mapping. - - The EntityType to be added. - - - - Removes an entity type from the mapping. - - The EntityType to be removed. - - - - Adds an entity type hierarchy to the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be added. - - - - Removes an entity type hierarchy from the mapping. - The hierarchy is represented by the specified root entity type. - - The root EntityType of the hierarchy to be removed. - - - - Adds a mapping fragment. - - The mapping fragment to be added. - - - - Removes a mapping fragment. - - The mapping fragment to be removed. - - - - Gets the EntitySetMapping that contains this EntityTypeMapping. - - - - - Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping. - - - - - Gets a flag that indicates whether this is a type hierarchy mapping. - - - - - Gets a read-only collection of mapping fragments. - - - - - Gets the mapped entity types. - - - - - Gets the mapped base types for a hierarchy mapping. - - - - - Represents the metadata for mapping fragment. - A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet ) - Each MappingFragment provides mapping for those properties of a type that map to a single table. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ComplexTypeMapping - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --DiscriminatorProperyMap ( constant value-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the mapping fragment elements in the - above example. Users can access all the top level constructs of - MappingFragment element like EntityKey map, Property Maps, Discriminator - property through this mapping fragment class. - - - - - Creates a MappingFragment instance. - - The EntitySet corresponding to the table of view being mapped. - The TypeMapping that contains this MappingFragment. - Flag that indicates whether to include 'DISTINCT' when generating queries. - - - - Adds a property mapping. - - The property mapping to be added. - - - - Removes a property mapping. - - The property mapping to be removed. - - - - Adds a property mapping condition. - - The property mapping condition to be added. - - - - Removes a property mapping condition. - - The property mapping condition to be removed. - - - - Gets the EntitySet corresponding to the table or view being mapped. - - - - - Gets the TypeMapping that contains this MappingFragment. - - - - - Gets a flag that indicates whether to include 'DISTINCT' when generating queries. - - - - - Gets a read-only collection of property mappings. - - - - - Gets a read-only collection of property mapping conditions. - - - - - Represents a collection of items in Storage Mapping (CS Mapping) space. - - - - Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths. - The that this mapping is to use. - The that this mapping is to use. - The file paths that this mapping is to use. - - - Initializes a new instance of the class using the specified , and XML readers. - The that this mapping is to use. - The that this mapping is to use. - The XML readers that this mapping is to use. - - - - Computes a hash value for the container mapping specified by the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A string that specifies the computed hash value. - - - - Computes a hash value for the single container mapping in the collection. - - A string that specifies the computed hash value. - - - - Creates a dictionary of (extent, generated view) for a container mapping specified by - the names of the mapped containers. - - The name of a container in the conceptual model. - The name of a container in the store model. - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Creates a dictionary of (extent, generated view) for the single container mapping - in the collection. - - A list that accumulates potential errors. - - A dictionary of (, ) that specifies the generated views. - - - - - Factory method that creates a . - - - The edm metadata collection to map. Must not be null. - - - The store metadata collection to map. Must not be null. - - - MSL artifacts to load. Must not be null. - - - Paths to MSL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - - Gets or sets a for creating instances - that are used to retrieve pre-generated mapping views. - - - - Gets the version of this represents. - The version of this represents. - - - - Describes modification function binding for change processing of entities or associations. - - - - - Initializes a new ModificationFunctionMapping instance. - - The entity or association set. - The entity or association type. - The metadata of function to which we should bind. - Bindings for function parameters. - The output parameter producing number of rows affected. - Bindings for the results of function evaluation - - - - - - - Gets output parameter producing number of rows affected. May be null. - - - - - Gets Metadata of function to which we should bind. - - - - - Gets bindings for function parameters. - - - - - Gets bindings for the results of function evaluation. - - - - - Mapping metadata for scalar properties. - - - For Example if conceptually you could represent the CS MSL file as following - --Mapping - --EntityContainerMapping ( CNorthwind-->SNorthwind ) - --EntitySetMapping - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --EntityTypeMapping - --MappingFragment - --EntityKey - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ComplexPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --AssociationSetMapping - --AssociationTypeMapping - --MappingFragment - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata ) - --EndPropertyMap - --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata ) - This class represents the metadata for all the scalar property map elements in the - above example. - - - - - Creates a mapping between a simple property and a column. - - The property to be mapped. - The column to be mapped. - - - - Gets an EdmProperty that specifies the mapped column. - - - - - metadata exception class - - - - - Initializes a new instance of the class with a default message. - - - - - Initializes a new instance of the class with the specified message. - - The exception message. - - - - Initializes a new instance of the class with the specified message and inner exception. - - The exception message. - - The exception that is the cause of this . - - - - - DataSpace - - - - - OSpace indicates the item in the clr space - - - - - CSpace indicates the item in the CSpace - edm primitive types + - types defined in csdl - - - - - SSpace indicates the item in the SSpace - - - - - Mapping between OSpace and CSpace - - - - - Mapping between CSpace and SSpace - - - - - This class encapsulates the error information for a generic EDM error. - - - - Gets the error message. - The error message. - - - - Class for representing a collection of items in Edm space. - - - - - Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist. - - - Initializes a new instance of the class. - The entity data model. - - - - Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist. - - The paths where the conceptual schema definition language (CSDL) files exist. - - - - Returns a collection of the objects. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - - - - Returns a collection of the objects with the specified conceptual model version. - - - A ReadOnlyCollection object that represents a collection of the - - objects. - - The conceptual model version. - - - - Factory method that creates an . - - - CSDL artifacts to load. Must not be null. - - - Paths to CSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the conceptual model version for this collection. - The conceptual model version for this collection. - - - - This class encapsulates the error information for a schema error that was encountered. - - - - - Constructs a EdmSchemaError object. - - The explanation of the error. - The code associated with this error. - The severity of the error. - - - Returns the error message. - The error message. - - - Gets the error code. - The error code. - - - Gets the severity level of the error. - - One of the values. The default is - - . - - - - Gets the line number where the error occurred. - The line number where the error occurred. - - - Gets the column where the error occurred. - The column where the error occurred. - - - Gets the location of the schema that contains the error. This string also includes the name of the schema at the end. - The location of the schema that contains the error. - - - Gets the name of the schema that contains the error. - The name of the schema that contains the error. - - - Gets a string representation of the stack trace at the time the error occurred. - A string representation of the stack trace at the time the error occurred. - - - - Defines the different severities of errors that can occur when validating an Entity Framework model. - - - - - A warning that does not prevent the model from being used. - - - - - An error that prevents the model from being used. - - - - - Represents a end of a Association Type - - - - - Initializes a new instance of the RelationshipEndMember class - - - - - Represents the edm member class - - - - Returns the name of this member. - The name of this member. - - - - Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database - column for this property. In the conceptual model, this should align with the corresponding property from the entity class - and should not be changed. - - The name of this member. - - - Gets the type on which this member is declared. - - A object that represents the type on which this member is declared. - - - - - Gets the instance of the class that contains both the type of the member and facets for the type. - - - A object that contains both the type of the member and facets for the type. - - - - - Tells whether this member is marked as a Computed member in the EDM definition - - - - - Tells whether this member's Store generated pattern is marked as Identity in the EDM definition - - - - Access the EntityType of the EndMember in an association. - The EntityType of the EndMember in an association. - - - Gets the operational behavior of this relationship end member. - - One of the values. The default is - - . - - - - Gets the multiplicity of this relationship end member. - - One of the values. - - - - - Creates a read-only AssociationEndMember instance. - - The name of the association end member. - The reference type for the end. - The multiplicity of the end. - Flag that indicates the delete behavior of the end. - Metadata properties to be associated with the instance. - The newly created AssociationEndMember instance. - The specified name is null or empty. - The specified reference type is null. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Class for representing an Association set - - - - - Class for representing a relationship set - - - - - Class for representing a entity set - - - - Returns the name of the current entity or relationship set. - The name of the current entity or relationship set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets escaped provider specific SQL describing this entity set. - - - - - Gets or sets the name of the current entity or relationship set. - If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. - To change the table name of a store space use the Table property. - - The name of the current entity or relationship set. - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - Gets the entity container of the current entity or relationship set. - - An object that represents the entity container of the current entity or relationship set. - - Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database table name for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets or sets the database schema for this entity set. - - if value passed into setter is null - Thrown if the setter is called when EntitySetBase instance is in ReadOnly state - - - - Gets the relationship type of this . - - - An object that represents the relationship type of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Creates a read-only AssociationSet instance from the specified parameters. - - The name of the association set. - The association type of the elements in the association set. - The entity set for the source association set end. - The entity set for the target association set end. - Metadata properties to be associated with the instance. - The newly created AssociationSet instance. - The specified name is null or empty. - The specified association type is null. - - The entity type of one of the ends of the specified - association type does not match the entity type of the corresponding entity set end. - - - - - Gets the association related to this . - - - An object that represents the association related to this - - . - - - - - Gets the ends of this . - - - A collection of type that contains the ends of this - - . - - - - - Gets the built-in type kind for this . - - - A object that represents built-in type kind for this - - . - - - - - Class representing a AssociationSet End - - - - - Returns the name of the End role for this . - - - The name of the End role for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the parent association set of this . - - - An object that represents the parent association set of this - - . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the End member that this object corresponds to. - - - An object that represents the End member that this - - object corresponds to. - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - - Gets the name of the End for this . - - - The name of the End for this . - - - - - Gets the name of the End role for this . - - - The name of the End role for this . - - Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state - - - Gets the entity set referenced by this End role. - - An object that represents the entity set referred by this End role. - - - - - Describes an association/relationship between two entities in the conceptual model or a foreign key relationship - between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property. - If a foreign key is defined the property will be true and the property will contain details of the foreign keys - - - - - Represents the Relationship type - - - - - Represents the Entity Type - - - - - Represents the Structural Type - - - - - Base EdmType class for all the model types - - - - Returns the full name of this type. - The full name of this type. - - - - Returns an instance of the whose element type is this type. - - - The object whose element type is this type. - - - - Gets the name of this type. - The name of this type. - - - Gets the namespace of this type. - The namespace of this type. - - - Gets a value indicating whether this type is abstract or not. - true if this type is abstract; otherwise, false. - Thrown if the setter is called on instance that is in ReadOnly state - - - Gets the base type of this type. - The base type of this type. - Thrown if the setter is called on instance that is in ReadOnly state - Thrown if the value passed in for setter will create a loop in the inheritance chain - - - Gets the full name of this type. - The full name of this type. - - - - Adds a member to this type - - The member to add - - - Removes a member from this type. - The member to remove. - - - Gets the list of members on this type. - - A collection of type that contains a set of members on this type. - - - - - Adds the specified property to the list of keys for the current entity. - - The property to add. - if member argument is null - Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type - If the EntityType instance is in ReadOnly state - - - Removes the specified key member from the collection. - The key member to remove. - - - Gets the list of all the key members for the current entity or relationship type. - - A object that represents the list of key members for the current entity or relationship type. - - - - Gets the list of all the key properties for this entity type. - The list of all the key properties for this entity type. - - - Gets the list of ends for this relationship type. - - A collection of type that contains the list of Ends for this relationship type. - - - - - Creates a read-only AssociationType instance from the specified parameters. - - The name of the association type. - The namespace of the association type. - Flag that indicates a foreign key (FK) relationship. - The data space for the association type. - The source association end member. - The target association end member. - A referential constraint. - Metadata properties to be associated with the instance. - The newly created AssociationType instance. - The specified name is null or empty. - The specified namespace is null or empty. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of ends for this . - - - A collection of type that contains the list of ends for this - - . - - - - Gets or sets the referential constraint. - The referential constraint. - - - - Gets the list of constraints for this . - - - A collection of type that contains the list of constraints for this - - . - - - - Gets the Boolean property value that specifies whether the column is a foreign key. - A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key. - - - - Represents the structure of an . In the conceptual-model this represents the shape and structure - of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet. - - - - - Returns a object that references this - - . - - - A object that references this - - . - - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - The factory method for constructing the EntityType object. - - The name of the entity type. - The namespace of the entity type. - The dataspace in which the EntityType belongs to. - The base type. - Name of key members for the type. - Members of the entity type (primitive and navigation properties). - Metadata properties to be associated with the instance. - The EntityType object. - Thrown if either name, namespace arguments are null. - The newly created EntityType will be read only. - - - - Adds the specified navigation property to the members of this type. - The navigation property is added regardless of the read-only flag. - - The navigation property to be added. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the declared navigation properties associated with the entity type. - The declared navigation properties associated with the entity type. - - - - Gets the navigation properties of this . - - - A collection of type that contains the list of navigation properties on this - - . - - - - Gets the list of declared properties for the entity type. - The declared properties for the entity type. - - - Gets the collection of declared members for the entity type. - The collection of declared members for the entity type. - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Represents an enumeration type. - - - - - Class representing a simple type - - - - - Creates a read-only EnumType instance. - - The name of the enumeration type. - The namespace of the enumeration type. - The underlying type of the enumeration type. - Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags. - The members of the enumeration type. - Metadata properties to be associated with the enumeration type. - The newly created EnumType instance. - underlyingType is null. - - name is null or empty. - -or- - namespaceName is null or empty. - -or- - underlyingType is not a supported underlying type. - -or- - The specified members do not have unique names. - -or- - The value of a specified member is not in the range of the underlying type. - - - - Returns the kind of the type - - - Gets a collection of enumeration members for this enumeration type. - - - Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) - - - Gets the underlying type for this enumeration type. - - - - Specifies the kinds of item attributes in the conceptual model. - - - - - An enumeration member indicating that an item attribute is System - - - - - An enumeration member indicating that an item attribute is Extended. - - - - - List of all the built in types - - - - - Association Type Kind - - - - - AssociationSetEnd Kind - - - - - AssociationSet Kind - - - - - Association Type Kind - - - - - EntitySetBase Kind - - - - - Entity Type Base Kind - - - - - Collection Type Kind - - - - - Collection Kind - - - - - Complex Type Kind - - - - - Documentation Kind - - - - - DeleteAction Type Kind - - - - - Edm Type Kind - - - - - Entity Container Kind - - - - - Entity Set Kind - - - - - Entity Type Kind - - - - - Enumeration Type Kind - - - - - Enum Member Kind - - - - - Facet Kind - - - - - EdmFunction Kind - - - - - Function Parameter Kind - - - - - Global Item Type Kind - - - - - Metadata Property Kind - - - - - Navigation Property Kind - - - - - Metadata Item Type Kind - - - - - EdmMember Type Kind - - - - - Parameter Mode Kind - - - - - Primitive Type Kind - - - - - Primitive Type Kind Kind - - - - - EdmProperty Type Kind - - - - - ProviderManifest Type Kind - - - - - Referential Constraint Type Kind - - - - - Ref Type Kind - - - - - RelationshipEnd Type Kind - - - - - Relationship Multiplicity Type Kind - - - - - Relationship Set Type Kind - - - - - Relationship Type - - - - - Row Type Kind - - - - - Simple Type Kind - - - - - Structural Type Kind - - - - - Type Information Kind - - - - - Represents the Edm Collection Type - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - The instance of the class that contains the type of the element that this current - - object includes and facets for that type. - - - - - Represents the Edm Complex Type. This can be used to configure complex types - from a conceptual-space model-based convention. Complex types are not supported in the store model. - - - - - Creates a new instance of the type. - - The name of the complex type. - The namespace of the complex type. - The dataspace to which the complex type belongs to. - Members of the complex type. - Metadata properties to be associated with the instance. - Thrown if either name, namespace or members argument is null. - - A new instance a the type. - - - The newly created will be read only. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties for this . - - - A collection of type that contains the list of properties for this - - . - - - - - Class representing the Documentation associated with an item - - - - - Initializes a new Documentation instance. - - A summary string. - A long description string. - - - - Returns the summary for this . - - - The summary for this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the summary for this . - - - The summary for this . - - - - - Gets the long description for this . - - - The long description for this . - - - - - Gets a value indicating whether this object contains only a null or an empty - - and a - - . - - - true if this object contains only a null or an empty - - and a - - ; otherwise, false. - - - - - Class for representing a function - - - - - Adds a parameter to this function. - - The parameter to be added. - - - - The factory method for constructing the object. - - The name of the function. - The namespace of the function. - The namespace the function belongs to. - Additional function attributes and properties. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - One of the enumeration values of the enumeration. - - - - Returns the full name (namespace plus name) of this type. - The full name of the type. - - - - Gets the parameters of this . - - - A collection of type that contains the parameters of this - - . - - - - - Gets the return parameter of this . - - - A object that represents the return parameter of this - - . - - - - - Gets the return parameters of this . - - - A collection of type that represents the return parameters of this - - . - - - - Gets the store function name attribute of this function. - - - Gets the parameter type semantics attribute of this function. - - - Gets the aggregate attribute of this function. - - - - Gets a value indicating whether built in attribute is present on this function. - - - true if the attribute is present; otherwise, false. - - - - - Gets a value indicating whether this instance is from the provider manifest. - - - true if this instance is from the provider manifest; otherwise, false. - - - - - Gets a value indicating whether the is a niladic function (a function that accepts no arguments). - - - true if the function is niladic; otherwise, false. - - - - Gets whether this instance is mapped to a function or to a stored procedure. - true if this instance is mapped to a function; false if this instance is mapped to a stored procedure. - - - Gets a query in the language that is used by the database management system or storage model. - - A string value in the syntax used by the database management system or storage model that contains the query or update statement of the - - . - - - - Gets or sets the schema associated with the function. - The schema associated with the function. - - - - In conceptual-space, EdmProperty represents a property on an Entity. - In store-space, EdmProperty represents a column in a table. - - - - Creates a new primitive property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new enum property. - The newly created property. - The name of the property. - The type of the property. - - - Creates a new complex property. - The newly created property. - The name of the property. - The type of the property. - - - - Creates a new instance of EdmProperty type. - - Name of the property. - - Property - - A new instance of EdmProperty type - - - Sets the metadata properties. - The metadata properties to be set. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a value indicating whether this can have a null value. - - - Nullability in the conceptual model and store model is a simple indication of whether or not - the property is considered nullable. Nullability in the object model is more complex. - When using convention based mapping (as usually happens with POCO entities), a property in the - object model is considered nullable if and only if the underlying CLR type is nullable and - the property is not part of the primary key. - When using attribute based mapping (usually used with entities that derive from the EntityObject - base class), a property is considered nullable if the IsNullable flag is set to true in the - attribute. This flag can - be set to true even if the underlying type is not nullable, and can be set to false even if the - underlying type is nullable. The latter case happens as part of default code generation when - a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string. - In such a case, the Entity Framework treats the property as non-nullable even though the CLR would - allow null to be set. - There is no good reason to set a non-nullable CLR type as nullable in the object model and this - should not be done even though the attribute allows it. - - - true if this can have a null value; otherwise, false. - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets the type name of the property. - The type name of the property. - - - - Gets the default value for this . - - - The default value for this . - - Thrown if the setter is called when the EdmProperty instance is in ReadOnly state - - - Gets whether the property is a collection type property. - true if the property is a collection type property; otherwise, false. - - - Gets whether this property is a complex type property. - true if this property is a complex type property; otherwise, false. - - - Gets whether this property is a primitive type. - true if this property is a primitive type; otherwise, false. - - - Gets whether this property is an enumeration type property. - true if this property is an enumeration type property; otherwise, false. - - - Gets whether this property is an underlying primitive type. - true if this property is an underlying primitive type; otherwise, false. - - - Gets the complex type information for this property. - The complex type information for this property. - - - Gets the primitive type information for this property. - The primitive type information for this property. - - - Gets the enumeration type information for this property. - The enumeration type information for this property. - - - Gets the underlying primitive type information for this property. - The underlying primitive type information for this property. - - - Gets or sets the concurrency mode for the property. - The concurrency mode for the property. - - - Gets or sets the database generation method for the database column associated with this property - The store generated pattern for the property. - - - Gets or sets the kind of collection for this model. - The kind of collection for this model. - - - Gets whether the maximum length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the maximum length of the property. - The maximum length of the property. - - - Gets or sets whether this property uses the maximum length supported by the provider. - true if this property uses the maximum length supported by the provider; otherwise, false. - - - Gets whether the fixed length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether the length of this property is fixed. - true if the length of this property is fixed; otherwise, false. - - - Gets whether the Unicode facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets whether this property is a Unicode property. - true if this property is a Unicode property; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the precision of this property. - The precision of this property. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets or sets the scale of this property. - The scale of this property. - - - - Class for representing an entity container - - - - - Creates an entity container with the specified name and data space. - - The entity container name. - The entity container data space. - Thrown if the name argument is null. - Thrown if the name argument is empty string. - - - - Returns an object by using the specified name for the entity set. - - - An object that represents the entity set that has the specified name. - - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns an object by using the specified name for the entity set. - - true if there is an entity set that matches the search criteria; otherwise, false. - The name of the entity set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains an object. If there is no entity set, this output parameter contains null. - - - - - Returns a object by using the specified name for the relationship set. - - - An object that represents the relationship set that has the specified name. - - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - - - Returns a object by using the specified name for the relationship set. - - true if there is a relationship set that matches the search criteria; otherwise, false. - The name of the relationship set that is searched for. - true to perform the case-insensitive search; otherwise, false. - - When this method returns, contains a object. - - - - - Returns the name of this . - - - The name of this . - - - - - Adds the specified entity set to the container. - - The entity set to add. - - - Removes a specific entity set from the container. - The entity set to remove. - - - - Adds a function import to the container. - - The function import to add. - - - - The factory method for constructing the EntityContainer object. - - The name of the entity container to be created. - DataSpace in which this entity container belongs to. - Entity sets that will be included in the new container. Can be null. - Functions that will be included in the new container. Can be null. - Metadata properties to be associated with the instance. - The EntityContainer object. - Thrown if the name argument is null or empty string. - The newly created EntityContainer will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets a list of entity sets and association sets that this - - includes. - - - A object that contains a list of entity sets and association sets that this - - includes. - - - - Gets the association sets for this entity container. - The association sets for this entity container . - - - Gets the entity sets for this entity container. - The entity sets for this entity container . - - - - Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties. - - - A that contains - - elements. - - - - - Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can - query and persist entities. In the store-model it represents a table. - From a store-space model-convention it can be used to configure - table name with property and table schema with property. - - - - - The factory method for constructing the EntitySet object. - - The name of the EntitySet. - The db schema. Can be null. - The db table. Can be null. - - The provider specific query that should be used to retrieve data for this EntitySet. Can be null. - - The entity type of the entities that this entity set type contains. - - Metadata properties that will be added to the newly created EntitySet. Can be null. - - The EntitySet object. - Thrown if the name argument is null or empty string. - The newly created EntitySet will be read only. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type of this . - - - An object that represents the entity type of this - - . - - - - - Represents an enumeration member. - - - - Overriding System.Object.ToString to provide better String representation for this type. - The name of this enumeration member. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - - Creates a read-only EnumMember instance. - - The name of the enumeration member. - The value of the enumeration member. - Metadata properties to be associated with the enumeration member. - The newly created EnumMember instance. - name is null or empty. - - - Gets the kind of this type. - - - Gets the name of this enumeration member. - - - Gets the value of this enumeration member. - - - - Class for representing a Facet object - This object is Immutable (not just set to readonly) and - some parts of the system are depending on that behavior - - - - - Returns the name of this . - - - The name of this . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the description of this . - - - The object that represents the description of this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the type of this . - - - The object that represents the type of this - - . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the Facet instance is in ReadOnly state - - - Gets a value indicating whether the value of the facet is unbounded. - true if the value of the facet is unbounded; otherwise, false. - - - - Class for representing a FacetDescription object - - - - Returns the name of this facet. - The name of this facet. - - - Gets the name of this facet. - The name of this facet. - - - Gets the type of this facet. - - An object that represents the type of this facet. - - - - Gets the minimum value for this facet. - The minimum value for this facet. - - - Gets the maximum value for this facet. - The maximum value for this facet. - - - Gets the default value of a facet with this facet description. - The default value of a facet with this facet description. - - - Gets a value indicating whether the value of this facet is a constant. - true if this facet is a constant; otherwise, false. - - - Gets a value indicating whether this facet is a required facet. - true if this facet is a required facet; otherwise, false. - - - - Class representing a function parameter - - - - - Returns the name of this . - - - The name of this . - - - - - The factory method for constructing the object. - - The name of the parameter. - The EdmType of the parameter. - - The of the parameter. - - - A new, read-only instance of the type. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the mode of this . - - - One of the values. - - Thrown if the FunctionParameter instance is in ReadOnly state - - - - Gets the name of this . - - - The name of this . - - - - - Gets the instance of the class that contains both the type of the parameter and facets for the type. - - - A object that contains both the type of the parameter and facets for the type. - - - - Gets the type name of this parameter. - The type name of this parameter. - - - Gets whether the max length facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the maximum length of the parameter. - The maximum length of the parameter. - - - Gets whether the parameter uses the maximum length supported by the database provider. - true if parameter uses the maximum length supported by the database provider; otherwise, false. - - - Gets whether the precision facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the precision value of the parameter. - The precision value of the parameter. - - - Gets whether the scale facet is constant for the database provider. - true if the facet is constant; otherwise, false. - - - Gets the scale value of the parameter. - The scale value of the parameter. - - - - Gets the on which this parameter is declared. - - - A object that represents the function on which this parameter is declared. - - - - - Class representing a metadata attribute for an item - - - - - The factory method for constructing the MetadataProperty object. - - The name of the metadata property. - The type usage of the metadata property. - The value of the metadata property. - The MetadataProperty object. - - Thrown is null. - - The newly created MetadataProperty will be read only. - - - - Creates a metadata annotation having the specified name and value. - - The annotation name. - The annotation value. - A MetadataProperty instance representing the created annotation. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the name of this . - - - The name of this . - - - - - Gets the value of this . - - - The value of this . - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the instance of the class that contains both the type of this - - and facets for the type. - - - A object that contains both the type of this - - and facets for the type. - - Thrown if the MetadataProperty instance is in readonly state - - - - Gets the value of this . - - - The value of this . - - - - - Gets a boolean that indicates whether the metadata property is an annotation. - - - - - Represent the edm navigation property class - - - - - Where the given navigation property is on the dependent end of a referential constraint, - returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order - of the principal end key properties. - - A collection of the foreign key properties. - - - - Creates a NavigationProperty instance from the specified parameters. - - The name of the navigation property. - Specifies the navigation property type and its facets. - The relationship type for the navigation. - The source end member in the navigation. - The target end member in the navigation. - The metadata properties of the navigation property. - The newly created NavigationProperty instance. - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - Gets the relationship type that this navigation property operates on. - The relationship type that this navigation property operates on. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "to" relationship end member of this navigation. - The "to" relationship end member of this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - Gets the "from" relationship end member in this navigation. - The "from" relationship end member in this navigation. - Thrown if the NavigationProperty instance is in ReadOnly state - - - - Represents the list of possible actions for delete operation - - - - - no action - - - - - Cascade to other ends - - - - - The enumeration defining the mode of a parameter - - - - - In parameter - - - - - Out parameter - - - - - Both in and out parameter - - - - - Return Parameter - - - - - Class representing a primitive type - - - - - Returns the equivalent of this - - . - - - For example if this instance is nvarchar and it's - base type is Edm String then the return type is Edm String. - If the type is actually already a model type then the - return type is "this". - - - An object that is an equivalent of this - - . - - - - Returns the list of primitive types. - - A collection of type that contains the list of primitive types. - - - - - Returns the equivalent of a - - . - - - An object that is an equivalent of a specified - - . - - - A value of type . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets a enumeration value that indicates a primitive type of this - - . - - - A enumeration value that indicates a primitive type of this - - . - - - - - Gets the list of facet descriptions for this . - - - A collection of type that contains the list of facet descriptions for this - - . - - - - - Returns an equivalent common language runtime (CLR) type of this - - . Note that the - - property always returns a non-nullable type value. - - - A object that represents an equivalent common language runtime (CLR) type of this - - . - - - - - Primitive Types as defined by EDM - - - - - Binary Type Kind - - - - - Boolean Type Kind - - - - - Byte Type Kind - - - - - DateTime Type Kind - - - - - Decimal Type Kind - - - - - Double Type Kind - - - - - Guid Type Kind - - - - - Single Type Kind - - - - - SByte Type Kind - - - - - Int16 Type Kind - - - - - Int32 Type Kind - - - - - Int64 Type Kind - - - - - String Type Kind - - - - - Time Type Kind - - - - - DateTimeOffset Type Kind - - - - - Geometry Type Kind - - - - - Geography Type Kind - - - - - Geometric point type kind - - - - - Geometric linestring type kind - - - - - Geometric polygon type kind - - - - - Geometric multi-point type kind - - - - - Geometric multi-linestring type kind - - - - - Geometric multi-polygon type kind - - - - - Geometric collection type kind - - - - - Geographic point type kind - - - - - Geographic linestring type kind - - - - - Geographic polygon type kind - - - - - Geographic multi-point type kind - - - - - Geographic multi-linestring type kind - - - - - Geographic multi-polygon type kind - - - - - Geographic collection type kind - - - - - This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship. - - - - - Constructs a new constraint on the relationship - - role from which the relationship originates - role to which the relationship is linked/targeted to - properties on entity type of to role which take part in the constraint - properties on entity type of from role which take part in the constraint - Argument Null exception if any of the arguments is null - - - - Returns the combination of the names of the - - and the - - . - - - The combination of the names of the - - and the - - . - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the "from role" that takes part in this - - . - - - A object that represents the "from role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the "to role" that takes part in this . - - - A object that represents the "to role" that takes part in this - - . - - Thrown if value passed into setter is null - Thrown if the ReferentialConstraint instance is in ReadOnly state - - - - Gets the list of properties for the "from role" on which this - - is defined. - - - A collection of type that contains the list of properties for "from role" on which this - - is defined. - - - - - Gets the list of properties for the "to role" on which this - - is defined. - - - A collection of type that contains the list of properties for the "to role" on which this - - is defined. - - - - - Class representing a ref type - - - - - - - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the entity type referenced by this . - - - An object that represents the entity type referenced by this - - . - - - - - Represents the multiplicity information about the end of a relationship type - - - - - Lower Bound is Zero and Upper Bound is One - - - - - Both lower bound and upper bound is one - - - - - Lower bound is zero and upper bound is null - - - - - Represents the Edm Row Type - - - - - The factory method for constructing the object. - - Properties of the row type object. - Metadata properties that will be added to the function. Can be null. - - A new, read-only instance of the object. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the list of properties on this . - - - A collection of type that contains the list of properties on this - - . - - - - Gets a collection of the properties defined by the current type. - A collection of the properties defined by the current type. - - - - Class representing a type information for an item - - - - - Factory method for creating a TypeUsage with specified EdmType and facets - - EdmType for which to create a type usage - facets to be copied into the new TypeUsage - new TypeUsage instance - - - - Creates a object with the specified conceptual model type. - - - A object with the default facet values for the specified - - . - - - A for which the - - object is created. - - - - - Creates a object to describe a string type by using the specified facet values. - - - A object describing a string type by using the specified facet values. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false. - - - - Creates a object to describe a string type by using the specified facet values and unbounded MaxLength. - - - A object describing a string type by using the specified facet values and unbounded MaxLength. - - - A for which the - - object is created. - - true to set the character-encoding standard of the string type to Unicode; otherwise, false. - true to set the length of the string type to fixed; otherwise, false - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - The maximum length of the binary type. - - - - Creates a object to describe a binary type by using the specified facet values. - - - A object describing a binary type by using the specified facet values. - - - A for which the - - object is created. - - true to set the length of the binary type to fixed; otherwise, false. - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - The simple type that defines the units of measurement of the offset. - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object of the type that the parameters describe. - - - A object. - - - The simple type that defines the units of measurement of the DateTime object. - - - The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds. - - - - - Creates a object to describe a decimal type by using the specified facet values. - - - A object describing a decimal type by using the specified facet values. - - - A for which the - - object is created. - - - The precision of the decimal type as type . - - - The scale of the decimal type as type . - - - - - Creates a object to describe a decimal type with unbounded precision and scale facet values. - - - A object describing a decimal type with unbounded precision and scale facet values. - - - A for which the - - object is created. - - - - - Checks whether this is a subtype of the specified - - . - - - true if this is a subtype of the specified - - ; otherwise, false. - - - The object to be checked. - - - - - Returns the full name of the type described by this . - - - The full name of the type described by this as string. - - - - - Gets the built-in type kind for this . - - - A object that represents the built-in type kind for this - - . - - - - - Gets the type information described by this . - - - An object that represents the type information described by this - - . - - - - - Gets the list of facets for the type that is described by this - - . - - - A collection of type that contains the list of facets for the type that is described by this - - . - - - - - Returns a Model type usage for a provider type - - Model (CSpace) type usage - - - - Do not perform any extension check - - - - - Check the extension against a specific value - - - - - Check the extension against the set of acceptable extensions - - - - - Runtime Metadata Workspace - - - - - Initializes a new instance of the class. - - - - - Constructs a with loaders for all item collections () - needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space - loaders. The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - Delegate to return the o-space item collection. - - - - Constructs a with loaders for all item collections () - that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used. - The item collection delegates are executed lazily when a given collection is used for the first - time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this - is rarely done, and any attempt by EF to use the collection in such cases will result in an exception. - - Delegate to return the c-space (CSDL) item collection. - Delegate to return the s-space (SSDL) item collection. - Delegate to return the c/s mapping (MSL) item collection. - - - - Initializes a new instance of the class using the specified paths and assemblies. - - The paths to workspace metadata. - The names of assemblies used to construct workspace. - - - - Creates an configured to use the - - data space. - - The created parser object. - - - - Creates a new bound to this metadata workspace based on the specified query expression. - - - A new with the specified expression as it's - - property. - - - A that defines the query. - - - If - - is null - - - If - - contains metadata that cannot be resolved in this metadata workspace - - - If - - is not structurally valid because it contains unresolvable variable references - - - - - Gets items. - - - The items. - - - The from which to retrieve items. - - - - Registers the item collection with each associated data model. - The output parameter collection that needs to be filled up. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The delegate for logging the load messages. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - The conceptual model in which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Returns an item by using the specified identity and the data model. - The item that matches the given identity in the specified data model. - The identity of the item. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns an item by using the specified identity and the data model. - true if there is an item that matches the search criteria; otherwise, false. - The conceptual model on which the item is searched. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the item is searched. - - When this method returns, contains a object. This parameter is passed uninitialized. - - The type returned by the method. - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - The type returned by the method. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null. - - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified type name, namespace name, and data model. - - - An object. - - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified type name, namespace name, and data model. - - true if there is a type that matches the search criteria; otherwise, false. - The name of the type. - The namespace of the type. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the type is searched. - - When this method returns, contains an object. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - - Returns an object by using the specified entity container name and the data model. - - If there is no entity container, this method returns null; otherwise, it returns the first entity container. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Returns an object by using the specified entity container name and the data model. - - true if there is an entity container that matches the search criteria; otherwise, false. - The name of the entity container. - true to perform the case-insensitive search; otherwise, false. - The conceptual model on which the entity container is searched. - - When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized. - - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns all the overloads of the functions by using the specified name, namespace name, and data model. - - A collection of type that contains all the functions that match the specified name in a given namespace and a data model. - - The name of the function. - The namespace of the function. - The conceptual model in which the functions are searched. - true to perform the case-insensitive search; otherwise, false. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Returns the list of primitive types in the specified data model. - - A collection of type that contains all the primitive types in the specified data model. - - The data model for which you need the list of primitive types. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - Gets all the items in the specified data model. - - A collection of type that contains all the items in the specified data model. - - The conceptual model for which the list of items is needed. - Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace - - - - Tests the retrieval of . - - true if the retrieval was successful; otherwise, false. - - The from which to attempt retrieval of - - . - - When this method returns, contains the item collection. This parameter is passed uninitialized. - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType . - - - A object that represents the Object space type. If there is no matched type, this method returns null. - - - A object that represents the - - . - - - - - Returns a object via the out parameter objectSpaceType that represents the type that matches the - - supplied by the parameter edmSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the - - . - - - When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true if there is a type that matches the search criteria; otherwise, false. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - - Returns a object that represents the - - that matches the type supplied by the parameter objectSpaceType . - - - A object that represents the - - . If there is no matched type, this method returns null. - - - A that supplies the type in the object space. - - - - - Returns a object via the out parameter edmSpaceType that represents the - - that matches the type supplied by the parameter objectSpaceType . - - true on success, false on failure. - - A object that represents the object space type. - - - When this method returns, contains a object that represents the - - . This parameter is passed uninitialized. - - - - Clears all the metadata cache entries. - - - Gets original value members from an entity set and entity type. - The original value members from an entity set and entity type. - The entity set from which to retrieve original values. - The entity type of which to retrieve original values. - - - - Returns members of a given / - - for which original values are needed when modifying an entity. - - - The s for which original value is required. - - - An belonging to the C-Space. - - - An that participates in the given - - . - - true if entities may be updated partially; otherwise, false. - - - - The Max EDM version thats going to be supported by the runtime. - - - - - Class for representing a collection of items for the object layer. - Most of the implementation for actual maintenance of the collection is - done by ItemCollection - - - - - Initializes a new instance of the class. - - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - - - Loads metadata from the given assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - The delegate to which log messages are sent. - - - Loads metadata from the specified assembly. - The assembly from which the metadata will be loaded. - The EDM metadata source for the O space metadata. - - - Returns a collection of primitive type objects. - A collection of primitive type objects. - - - - Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter. - - The CLR type of the OSpace argument. - - A that represents the object space type. - - - - - Returns a CLR type corresponding to the supplied by the objectSpaceType parameter. - - true if there is a type that matches the search criteria; otherwise, false. - - A that represents the object space type. - - The CLR type. - - - The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. - The CLR type of the OSpace argument. - The OSpace type to look up. - - - Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. - true on success, false on failure - The OSpace enum type to look up - The CLR enum type of the OSpace argument - - - Returns all the items of the specified type from this item collection. - - A collection of type that contains all items of the specified type. - - The type returned by the method. - - - - The enumeration defining the type semantics used to resolve function overloads. - These flags are defined in the provider manifest per function definition. - - - - - Allow Implicit Conversion between given and formal argument types (default). - - - - - Allow Type Promotion between given and formal argument types. - - - - - Use strict Equivalence only. - - - - - Class for representing a collection of items in Store space. - - - - - Initializes a new instance of the class using the specified XMLReader. - - The XMLReader used to create metadata. - - - Initializes a new instances of the class. - The model of the . - - - - Initializes a new instance of the class using the specified file paths. - - The file paths used to create metadata. - - - - Returns a collection of the objects. - - - A object that represents the collection of the - - objects. - - - - - Factory method that creates a . - - - SSDL artifacts to load. Must not be null. - - - Paths to SSDL artifacts. Used in error messages. Can be null in which case - the base Uri of the XmlReader will be used as a path. - - - Custom resolver. Currently used to resolve DbProviderServices implementation. If null - the default resolver will be used. - - - The collection of errors encountered while loading. - - - instance if no errors encountered. Otherwise null. - - - - Gets the provider factory of the StoreItemCollection. - The provider factory of the StoreItemCollection. - - - Gets the provider manifest of the StoreItemCollection. - The provider manifest of the StoreItemCollection. - - - Gets the manifest token of the StoreItemCollection. - The manifest token of the StoreItemCollection. - - - Gets the invariant name of the StoreItemCollection. - The invariant name of the StoreItemCollection. - - - Gets the version of the store schema for this collection. - The version of the store schema for this collection. - - - - This exception is thrown when a requested object is not found in the store. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of class that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Caches an ELinq query - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type. - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - Creates a new delegate that represents the compiled LINQ to Entities query. - - , a generic delegate that represents the compiled LINQ to Entities query. - - The lambda expression to compile. - - A type derived from . - - - The type T of the query results returned by executing the delegate returned by the - - method. - - - - - The values currently assigned to the properties of an entity. - - - - - Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object. - - - - Retrieves the field value as a Boolean. - The field value as a Boolean. - The ordinal of the field. - - - Retrieves the field value as a byte. - The field value as a byte. - The ordinal of the field. - - - Retrieves the field value as a byte array. - The number of bytes copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of bytes to copy. - - - Retrieves the field value as a char. - The field value as a char. - The ordinal of the field. - - - Retrieves the field value as a char array. - The number of characters copied. - The ordinal of the field. - The index at which to start copying data. - The destination buffer where data is copied. - The index in the destination buffer where copying will begin. - The number of characters to copy. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as a - - - The field value as a . - - The ordinal of the field. - - - Retrieves the name of the field data type. - The name of the field data type. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Retrieves the field value as a decimal. - The field value as a decimal. - The ordinal of the field. - - - Retrieves the field value as a double. - The field value as a double. - The ordinal of the field. - - - Retrieves the type of a field. - The field type. - The ordinal of the field. - - - Retrieves the field value as a float. - The field value as a float. - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - - Retrieves the field value as an . - - - The field value as an . - - The ordinal of the field. - - - Retrieves the name of a field. - The name of the field. - The ordinal of the field. - - - Retrieves the ordinal of a field by using the name of the field. - The ordinal of the field. - The name of the field. - - - Retrieves the field value as a string. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Retrieves the value of a field. - The field value. - The ordinal of the field. - - - Populates an array of objects with the field values of the current record. - The number of field values returned. - An array of objects to store the field values. - - - - Returns whether the specified field is set to . - - - true if the field is set to ; otherwise false. - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Sets field values in a record. - The number of the fields that were set. - The values of the field. - - - - Sets a field to the value. - - The ordinal of the field. - - - - Retrieves a field value as a . - - - A field value as a . - - The ordinal of the field. - - - - Retrieves the field value as a . - - - The field value as a . - - The ordinal of the field. - - - Sets the value of a field in a record. - The ordinal of the field. - The value of the field. - - - Gets the number of fields in the record. - An integer value that is the field count. - - - Returns a value that has the given field ordinal. - The value that has the given field ordinal. - The ordinal of the field. - - - Gets a value that has the given field name. - The field value. - The name of the field. - - - Gets data record information. - - A object. - - - - - This is the interface that represent the minimum interface required - to be an entity in ADO.NET. - - - - - This class contains the common methods need for an date object. - - - - - Public constant name used for change tracking - Providing this definition allows users to use this constant instead of - hard-coding the string. This helps to ensure the property name is correct - and allows faster comparisons in places where we are looking for this specific string. - Users can still use the case-sensitive string directly instead of the constant, - it will just be slightly slower on comparison. - Including the dash (-) character around the name ensures that this will not conflict with - a real data property, because -EntityKey- is not a valid identifier name - - - - - Raises the event. - - The name of the changed property. - - - - Raises the event. - - The name of the property changing. - - - Returns the minimum date time value supported by the data source. - - A value that is the minimum date time that is supported by the data source. - - - - Raises an event that is used to report that a property change is pending. - The name of the changing property. - - - Raises an event that is used to report that a property change has occurred. - The name for the changed property. - - - Returns a complex type for the specified property. - - Unlike most of the other helper methods in this class, this one is not static - because it references the SetValidValue for complex objects, which is also not static - because it needs a reference to this. - - A complex type object for the property. - A complex object that inherits from complex object. - The name of the complex property that is the complex object. - Indicates whether the type supports null values. - Indicates whether the type is initialized. - The type of the complex object being requested. - - - Determines whether the specified byte arrays contain identical values. - true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false. - The first byte array value to compare. - The second byte array to compare. - - - Returns a copy of the current byte value. - - A copy of the current value. - - The current byte array value. - - - - Makes sure the value being set for a property is valid. - - - The value being validated. - - The value passed into the property setter. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - If value is null for a non nullable value. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - The value being set. - Indicates whether the property is nullable. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - The Boolean value. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - A that is set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value that is set. - - The value that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - A value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - The name of the property that is being validated. - - - Makes sure the Single value being set for a property is valid. - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - Name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The nullable value being set. - - - The nullable value. - - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - The name of the property that is being validated. - - - Makes sure the UInt16 value being set for a property is valid. - The nullable UInt16 value being set. - The nullable UInt16 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - The name of the property that is being validated. - - - Makes sure the UInt32 value being set for a property is valid. - The nullable UInt32 value being set. - The nullable UInt32 value. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - - The value being set. - - - The value. - - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - The name of the property that is being validated. - - - - Makes sure the value being set for a property is valid. - - The nullable UInt64 value being set. - The nullable UInt64 value. - - - Validates that the property is not null, and throws if it is. - The validated property. - The string value to be checked. - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The string value is null for a non-nullable string. - - - Validates that the property is not null, and throws if it is. - - The validated value. - - The string value to be checked. - Flag indicating if this property is allowed to be null. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - Name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - value to be checked. - - Flag indicating if this property is allowed to be null. - The name of the property that is being validated. - The value is null for a non-nullable property. - - - Validates that the property is not null, and throws if it is. - - The value being set. - - - The value to be checked. - - Flag indicating if this property is allowed to be null. - The value is null for a non-nullable property. - - - Sets a complex object for the specified property. - A complex type that derives from complex object. - The original complex object for the property, if any. - The complex object is being set. - The complex property that is being set to the complex object. - The type of the object being replaced. - - - Verifies that a complex object is not null. - The complex object being validated. - The complex object that is being validated. - The complex property on the parent object that is associated with complexObject . - The type of the complex object being verified. - - - - Notification that a property has been changed. - - - The PropertyChanged event can indicate all properties on the - object have changed by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangedEventArgs. - - - - - Notification that a property is about to be changed. - - - The PropertyChanging event can indicate all properties on the - object are changing by using either a null reference - (Nothing in Visual Basic) or String.Empty as the property name - in the PropertyChangingEventArgs. - - - - Notifies the change tracker that a property change is pending on a complex object. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property of a complex object has changed. - The name of the changed property. - property is null. - - - - Attribute for complex properties - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Base attribute for properties mapped to store elements. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - attribute for complex types - - - - - Base attribute for schematized types - - - - The name of the type in the conceptual schema that maps to the class to which this attribute is applied. - - A that is the name. - - - - The namespace name of the entity object type or complex type in the conceptual schema that maps to this type. - - A that is the namespace name. - - - - - Attribute identifying the Edm base class - - - - - Attribute indicating an enum type. - - - - - Attribute identifying the Ends defined for a RelationshipSet - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - - Initializes a new instance of the - - class. - - The namespace name of the relationship property. - The name of the relationship. The relationship name is not namespace qualified. - The role name at the other end of the relationship. - - - The namespace name of the navigation property. - - A that is the namespace name. - - - - Gets the unqualified relationship name. - The relationship name. - - - Gets the role name at the other end of the relationship. - The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM). - - - - Defines a relationship between two entity types based on an association in the conceptual model. - - - - - Creates an instance of the class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - - - - Initializes a new instance of the - - class. - - The name of the namespace for the association in which this entity participates. - The name of a relationship in which this entity participates. - Name of the role for the type at one end of the association. - - A value of that indicates the multiplicity at one end of the association, such as one or many. - - The type of the entity at one end of the association. - Name of the role for the type at the other end of the association. - - A value of that indicates the multiplicity at the other end of the association, such as one or many. - - The type of the entity at the other end of the association. - A value that indicates whether the relationship is based on the foreign key value. - - - The namespace for the relationship. - - A that is the namespace for the relationship. - - - - Name of the relationship. - - A that is the name of a relationship that is defined by this - - . - - - - Name of the role at one end of the relationship. - - A that is the name of the role. - - - - Multiplicity at one end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at one end of the relationship. - - A that is the type of the object at this end of the association. - - - - Name of the role at the other end of the relationship. - - A that is the name of the role. - - - - Multiplicity at the other end of the relationship. - - A value that indicates the multiplicity. - - - - Type of the entity at the other end of the relationship. - - A that is the type of the object t the other end of the association. - - - - Gets a Boolean value that indicates whether the relationship is based on the foreign key value. - true if the relationship is based on the foreign key value; otherwise false. - - - - Attribute for scalar properties in an IEntity. - Implied default AttributeUsage properties Inherited=True, AllowMultiple=False, - The metadata system expects this and will only look at the first of each of these attributes, even if there are more. - - - - Gets or sets the value that indicates whether the property can have a null value. - The value that indicates whether the property can have a null value. - - - Gets or sets the value that indicates whether the property is part of the entity key. - The value that indicates whether the property is part of the entity key. - - - - Attribute for static types - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a unique value for each model referenced by the assembly. - - - Setting this parameter to a unique value for each model file in a Visual Basic - assembly will prevent the following error: - "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values." - - A string that is a unique GUID value for the model in the assembly. - - - - Collection of entities modeling a particular EDM construct - which can either be all entities of a particular type or - entities participating in a particular relationship. - - The type of entities in this collection. - - - - Base class for EntityCollection and EntityReference - - - - - Represents one end of a relationship. - - - - Loads the related object or objects into this related end with the default merge option. - - - Asynchronously loads the related object or objects into this related end with the default merge option. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - Loads the related object or objects into the related end with the specified merge option. - - The to use when merging objects into an existing - . - - - - Asynchronously loads the related object or objects into the related end with the specified merge option. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when merging objects into an existing - . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - Adds an object to the related end. - - An object to add to the collection. entity must implement - - . - - - - Adds an object to the related end. - An object to add to the collection. - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed, false if entity was not part of the - - . - - - The object to remove from the collection. entity must implement - - . - - - - Removes an object from the collection of objects at the related end. - - true if entity was successfully removed; false if entity was not part of the - - . - - An object to remove from the collection. - - - Defines a relationship between two attached objects. - - The object being attached. entity must implement - - . - - - - Defines a relationship between two attached objects. - The object being attached. - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Gets or sets a value indicating whether the entity (for an or all entities - in the collection (for an have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded - and wants to prevent any other entities from being loaded automatically. - Note that explicit loading using will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities - are now loaded. - - - True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false. - - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this is participating. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - The role name at the source end of the relationship. - - - Gets the role name at the target end of the relationship. - The role name at the target end of the relationship. - - - Returns a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - Returns an that represents the objects that belong to the related end. - - - An that represents the objects that belong to the related end. - - - - - Loads the related object or objects into the related end with the default merge option. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Asynchronously loads the related object or objects into the related end with the default merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - When the source object was retrieved by using a query - and the is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Loads an object or objects from the related end with the specified merge option. - - - The to use when merging objects into an existing - . - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Asynchronously loads an object or objects from the related end with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when merging objects into an existing - . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - When the source object was retrieved by using a query - and the - is not - or the related objects are already loaded - or when the source object is not attached to the - or when the source object is being tracked but is in the - or state - or the - used for - is . - - - - - Attaches an entity to the related end. This method works in exactly the same way as Attach(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Attaches an entity to the related end. If the related end is already filled - or partially filled, this merges the existing entities with the given entity. The given - entity is not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. - Deleted elements are allowed only when the state manager is already tracking the relationship - instance. - - The entity to attach to the related end - - Thrown when - - is null. - - Thrown when the entity cannot be related via the current relationship end. - - - - Adds an entity to the related end. This method works in exactly the same way as Add(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to add to the related end - - - - Adds an entity to the related end. If the owner is - attached to a cache then the all the connected ends are - added to the object cache and their corresponding relationships - are also added to the ObjectStateManager. The RelatedEnd of the - relationship is also fixed. - - Entity instance to add to the related end - - - - Removes an entity from the related end. This method works in exactly the same way as Remove(object). - It is maintained for backward compatibility with previous versions of IRelatedEnd. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Removes an entity from the related end. If owner is - attached to a cache, marks relationship for deletion and if - the relationship is composition also marks the entity for deletion. - - Entity instance to remove from the related end - Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. - - - - Returns an that iterates through the collection of related objects. - - - An that iterates through the collection of related objects. - - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - Occurs when a change is made to a related end. - - - Gets the name of the relationship in which this related end participates. - - The name of the relationship in which this participates. The relationship name is not namespace qualified. - - - - Gets the role name at the source end of the relationship. - - A that is the role name. - - - - Gets the role name at the target end of the relationship. - - A that is the role name. - - - - Gets a reference to the metadata for the related end. - - A object that contains metadata for the end of a relationship. - - - - - - - - Initializes a new instance of the class. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Loads related objects into the collection, using the specified merge option. - - Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same - - . - - - - - - - Defines relationships between an object and a collection of related objects in an object context. - - Loads related entities into the local collection. If the collection is already filled - or partially filled, merges existing entities with the given entities. The given - entities are not assumed to be the complete set of related entities. - Owner and all entities passed in must be in Unchanged or Modified state. We allow - deleted elements only when the state manager is already tracking the relationship - instance. - - Collection of objects in the object context that are related to the source object. - entities collection is null. - - The source object or an object in the entities collection is null or is not in an - - or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - - Defines a relationship between two attached objects in an object context. - The object being attached. - When the entity is null. - - When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an - - or state. - - - - Adds an object to the collection. - - An object to add to the collection. entity must implement - - . - - entity is null. - - - Removes an object from the collection and marks the relationship for deletion. - true if item was successfully removed; otherwise, false. - The object to remove from the collection. - entity object is null. - The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager. - - - Returns an enumerator that is used to iterate through the objects in the collection. - - An that iterates through the set of values cached by - - . - - - - - Returns an enumerator that is used to iterate through the set of values cached by - - . - - - An that iterates through the set of values cached by - - . - - - - Removes all entities from the collection. - - - Determines whether a specific object exists in the collection. - - true if the object is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies all the contents of the collection to an array, starting at the specified index of the target array. - The array to copy to. - The zero-based index in the array at which copying begins. - - - Used internally to serialize entity objects. - The streaming context. - - - Used internally to deserialize entity objects. - The streaming context. - - - Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. - - An that represents the entity collection. - - - When the object is in an state - or when the object is in a - state with a - other than - . - - - - Gets the number of objects that are contained in the collection. - - The number of elements that are contained in the - - . - - - - - Gets a value that indicates whether the - - is read-only. - - Always returns false. - - - - IListSource.ContainsListCollection implementation. Always returns false. - This means that the IList we return is the one which contains our actual data, - it is not a list of collections. - - - - - This is the class is the basis for all perscribed EntityObject classes. - - - - - Interface that defines an entity containing a key. - - - - - Gets or sets the for instances of entity types that implement this interface. - - - If an object is being managed by a change tracker, it is expected that - IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be - used to report changes on EntityKey. This allows the change tracker to validate the - EntityKey's new value and to verify if the change tracker is in a state where it can - allow updates to the EntityKey. - - - The for instances of entity types that implement this interface. - - - - - Minimum interface that a data class must implement in order to be managed by a change tracker. - - - - - Gets or sets the used to report changes. - - - The used to report changes. - - - - - Interface that a data class must implement if exposes relationships - - - - Returns the relationship manager that manages relationships for an instance of an entity type. - - Classes that expose relationships must implement this property - by constructing and setting RelationshipManager in their constructor. - The implementation of this property should use the static method RelationshipManager.Create - to create a new RelationshipManager when needed. Once created, it is expected that this - object will be stored on the entity and will be provided through this property. - - - The for this entity. - - - - - Used by the ObjectStateManager to attach or detach this EntityObject to the cache. - - Reference to the ObjectStateEntry that contains this entity - - - Notifies the change tracker that a property change is pending. - The name of the changing property. - property is null. - - - Notifies the change tracker that a property has changed. - The name of the changed property. - property is null. - - - Gets the entity state of the object. - - The of this object. - - - - Gets or sets the key for this object. - - The for this object. - - - - - Returns the container for the lazily created relationship - navigation property objects, collections and refs. - - - - - This interface is implemented by a change tracker and is used by data classes to report changes - - - - Notifies the change tracker of a pending change to a property of an entity type. - The name of the property that is changing. - - - Notifies the change tracker that a property of an entity type has changed. - The name of the property that has changed. - - - Notifies the change tracker of a pending change to a complex property. - The name of the top-level entity property that is changing. - The complex type that contains the property that is changing. - The name of the property that is changing on complex type. - - - Notifies the change tracker that a property of a complex type has changed. - The name of the complex property of the entity type that has changed. - The complex type that contains the property that changed. - The name of the property that changed on complex type. - - - Gets current state of a tracked object. - - An that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities. - - - - - Models a relationship end with multiplicity 1. - - - - Returns the key for the related object. - - Returns the EntityKey of the target entity associated with this EntityReference. - Is non-null in the following scenarios: - (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the - same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting - the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries. - (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation - occurs that would set it to null, as described below. - (c) Entities are detached and the EntityKey is explicitly set to non-null by the user. - (d) Entity graph was created using a NoTracking query with full span - Is null in the following scenarios: - (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the - same RelationshipName and source role. - (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key - is one of the special keys - (c) Entities are detached and the relationship was explicitly created by the user. - - - An that is the key of the related object. - - - - - Models a relationship end with multiplicity 1. - - The type of the entity being referenced. - - - - Creates a new instance of . - - - The default constructor is required for some serialization scenarios. It should not be used to - create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager - class instead. - - - - - Loads the related object for this with the specified merge option. - - - Specifies how the object should be returned if it already exists in the - - . - - - The source of the is null - or a query returned more than one related end - or a query returned zero related ends, and one related end was expected. - - - - - - - Creates a many-to-one or one-to-one relationship between two objects in the object context. - The object being attached. - When the entity is null. - When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types. - - - Creates an equivalent object query that returns the related object. - - An that returns the related object. - - - When the object is in an state - or when the object is in a - state with a - other than . - - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - This method is used internally to serialize related entity objects. - The serialized stream. - - - - Gets or sets the related object returned by this - - . - - - The object returned by this . - - - - - Identifies the kind of a relationship - - - - - The relationship is an Association - - - - - Container for the lazily created relationship navigation - property objects (collections and refs). - - - - - Creates a new object. - - - Used by data classes that support relationships. If the change tracker - requests the RelationshipManager property and the data class does not - already have a reference to one of these objects, it calls this method - to create one, then saves a reference to that object. On subsequent accesses - to that property, the data class should return the saved reference. - The reason for using a factory method instead of a public constructor is to - emphasize that this is not something you would normally call outside of a data class. - By requiring that these objects are created via this method, developers should - give more thought to the operation, and will generally only use it when - they explicitly need to get an object of this type. It helps define the intended usage. - - - The requested . - - Reference to the entity that is calling this method. - - - - Returns either an or - - of the correct type for the specified target role in a relationship. - - - representing the - - or - - that was retrieved. - - Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified. - Target role to use to retrieve the other end of relationshipName . - relationshipName or targetRoleName is null. - The source type does not match the type of the owner. - targetRoleName is invalid or unable to find the relationship type in the metadata. - - - - Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized, - if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W - - The relationship name. - The role name of the related end. - - The to initialize. - - - The type of the being initialized. - - - When the provided - is already initialized.-or-When the relationship manager is already attached to an - - or when the relationship manager already contains a relationship with this name and target role. - - - - - Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names. - This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized, - or if the relationship manager is already attached to a ObjectContext. - - The relationship name. - The target role name. - An existing EntityCollection. - Type of the entity represented by targetRoleName - - - - Gets an of related objects with the specified relationship name and target role name. - - - The of related objects. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - - Gets the for a related object by using the specified combination of relationship name and target role name. - - - The of a related object. - - Name of the relationship to navigate. The relationship name is not namespace qualified. - Name of the target role for the navigation. Indicates the direction of navigation across the relationship. - - The type of the returned . - - - The specified role returned an instead of an - - . - - - - Returns an enumeration of all the related ends managed by the relationship manager. - - An of objects that implement - - . An empty enumeration is returned when the relationships have not yet been populated. - - - - - Called by Object Services to prepare an for binary serialization with a serialized relationship. - - Describes the source and destination of a given serialized stream, and provides an additional caller-defined context. - - - - Used internally to deserialize entity objects along with the - - instances. - - The serialized stream. - - - - Represents either a entity, entity stub or relationship - - - - - Gets the updatable version of original values of the object associated with this - - . - - The updatable original values of object data. - - - Accepts the current values as original values. - - - Marks an entity as deleted. - - - - Returns the names of an object’s properties that have changed since the last time - - was called. - - - An collection of names as string. - - - - Sets the state of the object or relationship to modify. - If State is not Modified or Unchanged - - - Marks the specified property as modified. - The name of the property. - If State is not Modified or Unchanged - - - Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified. - The name of the property to change. - - - Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified. - - Note that this property always returns the same result as the modified state of the property for change tracking - proxies and entities that derive from the EntityObject base class. This is because original values are not tracked - for these entity types and hence there is no way to know if the current value is really different from the - original value. - - true if the property has changed; otherwise, false. - The name of the property. - - - - Changes state of the entry to the specified value. - - - The value to set for the - - property of the entry. - - - - Sets the current values of the entry to match the property values of a supplied object. - The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key. - - - Sets the original values of the entry to match the property values of a supplied object. - The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key. - - - - Used to report that a scalar entity property is about to change - The current value of the specified property is cached when this method is called. - - The name of the entity property that is changing - - - - Used to report that a scalar entity property has been changed - The property value that was cached during EntityMemberChanging is now - added to OriginalValues - - The name of the entity property that has changing - - - - Used to report that a complex property is about to change - The current value of the specified property is cached when this method is called. - - The name of the top-level entity property that is changing - The complex object that contains the property that is changing - The name of the property that is changing on complexObject - - - - Used to report that a complex property has been changed - The property value that was cached during EntityMemberChanging is now added to OriginalValues - - The name of the top-level entity property that has changed - The complex object that contains the property that changed - The name of the property that changed on complexObject - - - - Gets the for the - - . - - - The for the - - . - - - - - Gets the for the object or relationship. - - - The for the object or relationship. - - - - - Gets the state of the . - - - The state of the . - - - - Gets the entity object. - The entity object. - - - Gets the entity key. - The entity key. - - - - Gets a value that indicates whether the represents a relationship. - - - true if the represents a relationship; otherwise, false. - - - - Gets the read-only version of original values of the object or relationship. - The read-only version of original values of the relationship set entry or entity. - - - - Gets the current property values of the object or relationship associated with this - - . - - - A that contains the current values of the object or relationship associated with this - - . - - - - - Gets the instance for the object represented by entry. - - - The object. - - The entry is a stub or represents a relationship - - - - Returns the EntityState from the ObjectStateEntry - - - - - Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set. - - Type of entities returned from the queryable. - - - Notifies the set that an object that represents a new entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The new object to add to the set. - - - Notifies the set that an object that represents an existing entity must be added to the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to add to the set. - - - Notifies the set that an object that represents an existing entity must be deleted from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The existing object to delete from the set. - - - Notifies the set that an object that represents an existing entity must be detached from the set. - - Depending on the implementation, the change to the set may not be visible in an enumeration of the set - until changes to that set have been persisted in some manner. - - The object to detach from the set. - - - - The different ways that new objects loaded from the database can be merged with existing objects already in memory. - - - - - Will only append new (top level-unique) rows. This is the default behavior. - - - - - Same behavior as LoadOption.OverwriteChanges. - - - - - Same behavior as LoadOption.PreserveChanges. - - - - - Will not modify cache. - - - - - ObjectContext is the top-level object that encapsulates a connection between the CLR and the database, - serving as a gateway for Create, Read, Update, and Delete operations. - - - - - Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the - - object. - - - An that contains references to the model and to the data source connection. - - The connection is null. - The connection is invalid or the metadata workspace is invalid. - - - - Creates an ObjectContext with the given connection and metadata workspace. - - connection to the store - If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. - - - - Initializes a new instance of the class with the given connection string and default entity container name. - - The connection string, which also provides access to the metadata information. - The connectionString is null. - The connectionString is invalid or the metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection string and entity container name. - - The connection string, which also provides access to the metadata information. - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connectionString is null. - The connectionString , defaultContainerName , or metadata workspace is not valid. - - - - Initializes a new instance of the class with a given connection and entity container name. - - - An that contains references to the model and to the data source connection. - - The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only. - The connection is null. - The connection , defaultContainerName , or metadata workspace is not valid. - - - Accepts all changes made to objects in the object context. - - - Adds an object to the object context. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to add. - - The entity parameter is null or the entitySetName does not qualify. - - - Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. - The entity for which related objects are to be loaded. - The name of the navigation property that returns the related objects to be loaded. - - The value to use when you load the related objects. - - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. - The type of the entity. - The source object for which related objects are to be loaded. - A LINQ expression that defines the related objects to be loaded. - - The value to use when you load the related objects. - - selector does not supply a valid input parameter. - selector is null. - - The entity is in a , - - or state or the entity is attached to another instance of - - . - - - - Applies property changes from a detached object to an object already attached to the object context. - The name of the entity set to which the object belongs. - The detached object that has property updates to apply to the original object. - When entitySetName is null or an empty string or when changed is null. - - When the from entitySetName does not match the - - of the object - - or when the entity is in a state other than - - or - - or the original object is not attached to the context. - - When the type of the changed object is not the same type as the original object. - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - The entity type of the object. - entitySetName or current is null. - - The from entitySetName does not match the - - of the object - - or the object is not in the - - or it is in a - - state or the entity key of the supplied object is invalid. - - entitySetName is an empty string. - - - - Copies the scalar values from the supplied object into set of original values for the object in the - - that has the same key. - - The updated object. - The name of the entity set to which the object belongs. - - The detached object that has original values to apply to the object. The entity key of originalEntity must match the - - property of an entry in the - - . - - The type of the entity object. - entitySetName or original is null. - - The from entitySetName does not match the - - of the object - - or an - - for the object cannot be found in the - - or the object is in an - - or a - - state or the entity key of the supplied object is invalid or has property changes. - - entitySetName is an empty string. - - - Attaches an object or object graph to the object context in a specific entity set. - Represents the entity set name, which may optionally be qualified by the entity container name. - - The to attach. - - The entity is null. - - Invalid entity set or the object has a temporary key or the object has an - - and the - - does not match with the entity set passed in as an argument of the method or the object does not have an - - and no entity set is provided or any object from the object graph has a temporary - - or any object from the object graph has an invalid - - (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager. - - - - Attaches an object or object graph to the object context when the object has an entity key. - The object to attach. - The entity is null. - Invalid entity key. - - - Creates the entity key for a specific object, or returns the entity key if it already exists. - - The of the object. - - The fully qualified name of the entity set to which the entity object belongs. - The object for which the entity key is being retrieved. - When either parameter is null. - When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified. - When the entity key cannot be constructed successfully based on the supplied parameters. - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type. - - - The new instance. - - - Entity type of the requested . - - - The property is not set on the - - or the specified type belongs to more than one entity set. - - - - - Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name. - - - The new instance. - - - Name of the entity set for the returned . The string must be qualified by the default container name if the - - property is not set on the - - . - - - Entity type of the requested . - - - The from entitySetName does not match the - - of the object - - or the - - property is not set on the - - and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set. - - - - - Creates an in the current object context by using the specified query string. - - - An of the specified type. - - The query string to be executed. - Parameters to pass to the query. - - The entity type of the returned . - - The queryString or parameters parameter is null. - - - Marks an object for deletion. - - An object that specifies the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - The entity is null. - - The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached). - - - - - Finalizes an instance of the class. - - - - Releases the resources used by the object context. - - - - Releases the resources used by the object context. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Returns an object that has the specified entity key. - - An that is an instance of an entity type. - - The key of the object to be found. - The key parameter is null. - - The object is not found in either the or the data source. - - - - Updates a collection of objects in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Updates an object in the object context with data from the database. - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Asynchronously updates a collection of objects in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - - A task that represents the asynchronous operation. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Asynchronously updates a collection of objects in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - - An collection of objects to refresh. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - collection is null. - refreshMode is not valid. - collection is empty or an object is not attached to the context. - - - Asynchronously updates an object in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - - A task that represents the asynchronous operation. - - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Asynchronously updates an object in the object context with data from the database. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that indicates whether - property changes in the object context are overwritten with property values from the database. - - The object to be refreshed. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - entity is null. - refreshMode is not valid. - entity is not attached to the context. - - - Persists all updates to the database and resets change tracking in the object context. - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after - - finishes. If false, you must call the - method after . - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Persists all updates to the database and optionally resets change tracking in the object context. - - A value that determines the behavior of the operation. - - - The number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and optionally resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that determines the behavior of the operation. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - Asynchronously persists all updates to the database and optionally resets change tracking in the object context. - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A value that determines the behavior of the operation. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous save operation. - The task result contains the number of state entries written to the underlying database. This can include - state entries for entities and/or relationships. Relationship state entries are created for - many-to-many relationships and relationships where there is no foreign key property - included in the entity class (often referred to as independent associations). - - An optimistic concurrency violation has occurred while saving changes. - - - - Ensures that changes are synchronized with changes in all objects that are tracked by the - - . - - - - Returns an object that has the specified entity key. - true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null. - The key of the object to be found. - When this method returns, contains the object. - Incompatible metadata for key . - key is null. - - - - Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed - - . - - - An for the data that is returned by the stored procedure. - - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - The to use when executing the query. - - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - The entity type of the returned when the function is executed against the data source. This type must implement - - . - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - - Executes the given function on the default container. - - Element type for function results. - - Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known. - - The options for executing this function. - - The parameter values to use for the function. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - An object representing the result of executing this function. - If function is null or empty - - If function is invalid (syntax, - does not exist, refers to a function with return type incompatible with T) - - - - Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution. - The number of rows affected. - The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required. - - An array of objects. If output parameters are used, - their values will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - function is null or empty or function is not found. - The entity reader does not support this function or there is a type mismatch on the reader and the function . - - - Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration. - - An enumeration of objects that represent custom data classes that map to the conceptual model. - - - - Returns all the existing proxy types. - - An of all the existing proxy types. - - - - Returns the entity type of the POCO entity associated with a proxy object of a specified type. - - The of the associated POCO entity. - - - The of the proxy object. - - - - Creates and returns an instance of the requested type . - An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework. - Type of object to be returned. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - The number of rows affected. - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command specified in the server's native query language. - - A to observe while waiting for the task to complete. - - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Asynchronously executes an arbitrary command directly against the data source using the existing connection. - The command is specified using the server's native query language, such as SQL. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command specified in the server's native query language. - - A to observe while waiting for the task to complete. - - The parameter values to use for the query. - - A task that represents the asynchronous operation. - The task result contains the number of rows affected. - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior of - DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - - The to use when executing the query. The default is - . - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - An enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - Results are not tracked by the context, use the overload that specifies an entity set name to track results. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The options for executing this query. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Asynchronously executes a query directly against the data source and returns a sequence of typed results. - The query is specified using the server's native query language, such as SQL. - If an entity set name is specified, results are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The element type of the result sequence. - The query specified in the server's native query language. - The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked. - The options for executing this query. - - A to observe while waiting for the task to complete. - - - The parameter values to use for the query. If output parameters are used, their values will not be - available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A task that represents the asynchronous operation. - The task result contains an enumeration of objects of type . - - - - - Translates a that contains rows of entity data to objects of the requested entity type. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - When reader is null. - - - - Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option. - - The entity type. - An enumeration of objects of type TResult . - - The that contains entity data to translate into entity objects. - - The entity set of the TResult type. - - The to use when translated objects are added to the object context. The default is - - . - - When reader is null. - - When the supplied mergeOption is not a valid value. - - When the supplied entitySetName is not a valid entity set for the TResult type. - - - - Creates the database by using the current data source connection and the metadata in the - - . - - - - Deletes the database that is specified as the database in the current data source connection. - - - - Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work - is done by the DbProviderServices implementation for the current store connection. - - true if the database exists; otherwise, false. - - - - Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the - - . The - - loads metadata from store schema definition language (SSDL) files. - - - A DDL script that creates schema objects for the metadata in the - - . - - - - Gets the connection used by the object context. - - A object that is the connection. - - - When the instance has been disposed. - - - - Gets or sets the default container name. - - A that is the default container name. - - - - Gets the metadata workspace used by the object context. - - The object associated with this - - . - - - - Gets the object state manager used by the object context to track object changes. - - The used by this - - . - - - - Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used. - - An value that is the timeout value, in seconds. - - The timeout value is less than 0. - - - Gets the LINQ query provider associated with this object context. - - The instance used by this object context. - - - - - Gets the instance that contains options that affect the behavior of the - - . - - - The instance that contains options that affect the behavior of the - - . - - - - - Returns itself. ObjectContext implements to provide a common - interface for and ObjectContext both of which will return the underlying - ObjectContext. - - - - - Gets the transaction handler in use by this context. May be null if no transaction have been started. - - - The transaction handler. - - - - - Returns the being used for this context. - - - - Occurs when changes are saved to the data source. - - - Occurs when a new entity object is created from data in the data source as part of a query or load operation. - - - - Defines options that affect the behavior of the ObjectContext. - - - - - Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. - - - This flag determines whether a new transaction will be started when methods such as - and are executed outside of a transaction. - Note that this does not change the behavior of . - - - The default transactional behavior. - - - - Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed. - true if lazy loading is enabled; otherwise, false. - - - Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant. - true if proxies are created; otherwise, false. The default value is true. - - - Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior. - true if the legacy PreserveChanges behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior. - - If this flag is set to false then setting the Value property of the for an - FK relationship to null when it is already null will have no effect. When this flag is set to true, then - setting the value to null will always cause the FK to be nulled and the relationship to be deleted - even if the value is currently null. The default value is false when using ObjectContext and true - when using DbContext. - - true if the consistent NullReference behavior should be used; otherwise, false. - - - Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior. - - This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities. - If this flag is set, then any equality comparison between two operands, both of which are potentially - nullable, will be rewritten to show C# null comparison semantics. As an example: - (operand1 = operand2) will be rewritten as - (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL)) - The default value is false when using . - - true if the C# NullComparison behavior should be used; otherwise, false. - - - - EventArgs for the ObjectMaterialized event. - - - - Gets the entity object that was created. - The entity object that was created. - - - - Delegate for the ObjectMaterialized event. - - The ObjectContext responsable for materializing the object. - EventArgs containing a reference to the materialized object. - - - - This class represents a query parameter at the object layer, which consists - of a Name, a Type and a Value. - - - - - Initializes a new instance of the class with the specified name and type. - - The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The common language runtime (CLR) type of the parameter. - If the value of either argument is null. - If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - - Initializes a new instance of the class with the specified name and value. - - The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character. - The initial value (and inherently, the type) of the parameter. - If the value of either argument is null. - If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores. - - - Gets the parameter name, which can only be set through a constructor. - The parameter name, which can only be set through a constructor. - - - Gets the parameter type. - - The of the parameter. - - - - Gets or sets the parameter value. - The parameter value. - - - - This class represents a collection of query parameters at the object layer. - - - - - Adds the specified to the collection. - - The parameter to add to the collection. - The parameter argument is null. - - The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a - - . - - The type of the parameter is not valid. - - - - Deletes all instances from the collection. - - - - - Checks for the existence of a specified in the collection by reference. - - Returns true if the parameter object was found in the collection; otherwise, false. - - The to find in the collection. - - The parameter argument is null. - - - - Determines whether an with the specified name is in the collection. - - Returns true if a parameter with the specified name was found in the collection; otherwise, false. - The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - The name parameter is null. - - - Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index. - The array into which to copy the parameters. - The index in the array at which to start copying the parameters. - - - - Removes an instance of an from the collection by reference if it exists in the collection. - - Returns true if the parameter object was found and removed from the collection; otherwise, false. - An object to remove from the collection. - The parameter argument is null. - - - - These methods return enumerator instances, which allow the collection to - be iterated through and traversed. - - An object that can be used to iterate through the collection. - - - Returns an untyped enumerator over the collection. - - An instance. - - - - Gets the number of parameters currently in the collection. - - The number of objects that are currently in the collection. - - - - - This collection is read-write - parameters may be added, removed - and [somewhat] modified at will (value only) - provided that the - implementation the collection belongs to has not locked its parameters - because it's command definition has been prepared. - - - - Provides an indexer that allows callers to retrieve parameters by name. - - The instance. - - The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. - No parameter with the specified name is found in the collection. - - - - This class implements untyped queries at the object-layer. - - - - Returns the commands to execute against the data source. - A string that represents the commands that the query executes against the data source. - - - Returns information about the result type of the query. - - A value that contains information about the result type of the query. - - - - Executes the untyped object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the untyped object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A task that represents the asynchronous operation. - The task result contains an an - that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the untyped object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an an - that contains a collection of entity objects returned by the query. - - - - - Returns the collection as an used for data binding. - - - An of entity objects. - - - - Returns an enumerator that iterates through a collection. - - An that can be used to iterate through the collection. - - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Returns the command text for the query. - A string value. - - - Gets the object context associated with this object query. - - The associated with this - - instance. - - - - Gets or sets how objects returned from a query are added to the object context. - - The query . - - - - - Whether the query is streaming or buffering - - - - Gets the parameter collection for this object query. - - The parameter collection for this . - - - - Gets or sets a value that indicates whether the query plan should be cached. - A value that indicates whether the query plan should be cached. - - - - Gets the result element type for this query instance. - - - - - Gets the expression describing this query. For queries built using - LINQ builder patterns, returns a full LINQ expression tree; otherwise, - returns a constant expression wrapping this query. Note that the - default expression is not cached. This allows us to differentiate - between LINQ and Entity-SQL queries. - - - - - Gets the associated with this query instance. - - - - - ObjectQuery implements strongly-typed queries at the object-layer. - Queries are specified using Entity-SQL strings and may be created by calling - the Entity-SQL-based query builder methods declared by ObjectQuery. - - The result type of this ObjectQuery - - - - Creates a new instance using the specified Entity SQL command as the initial query. - - The Entity SQL query. - - The on which to execute the query. - - - - - Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option. - - The Entity SQL query. - - The on which to execute the query. - - - Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same - - . - - - - Executes the object query with the specified merge option. - - The to use when executing the query. - The default is . - - - An that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A task that represents the asynchronous operation. - The task result contains an - that contains a collection of entity objects returned by the query. - - - - - Asynchronously executes the object query with the specified merge option. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - The to use when executing the query. - The default is . - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains an - that contains a collection of entity objects returned by the query. - - - - Specifies the related objects to include in the query results. - - A new with the defined query path. - - Dot-separated list of related objects to return in the query results. - path is null. - path is empty. - - - Limits the query to unique results. - - A new instance that is equivalent to the original instance with SELECT DISTINCT applied. - - - - - This query-builder method creates a new query whose results are all of - the results of this query, except those that are also part of the other - query specified. - - A query representing the results to exclude. - a new ObjectQuery instance. - If the query parameter is null. - - - Groups the query results by the specified criteria. - - A new instance of type - - that is equivalent to the original instance with GROUP BY applied. - - The key columns by which to group the results. - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - The query parameter is null or an empty string - or the projection parameter is null or an empty string. - - - - This query-builder method creates a new query whose results are those that - are both in this query and the other query specified. - - A query representing the results to intersect with. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to only results of a specific type. - - A new instance that is equivalent to the original instance with OFTYPE applied. - - - The type of the returned when the query is executed with the applied filter. - - The type specified is not valid. - - - Orders the query results by the specified criteria. - - A new instance that is equivalent to the original instance with ORDER BY applied. - - The key columns by which to order the results. - Zero or more parameters that are used in this method. - The keys or parameters parameter is null. - The key is an empty string. - - - Limits the query results to only the properties that are defined in the specified projection. - - A new instance of type - - that is equivalent to the original instance with SELECT applied. - - The list of selected properties that defines the projection. - Zero or more parameters that are used in this method. - projection is null or parameters is null. - The projection is an empty string. - - - Limits the query results to only the property specified in the projection. - - A new instance of a type compatible with the specific projection. The returned - - is equivalent to the original instance with SELECT VALUE applied. - - The projection list. - An optional set of query parameters that should be in scope when parsing. - - The type of the returned by the - - method. - - projection is null or parameters is null. - The projection is an empty string. - - - Orders the query results by the specified criteria and skips a specified number of results. - - A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied. - - The key columns by which to order the results. - The number of results to skip. This must be either a constant or a parameter reference. - An optional set of query parameters that should be in scope when parsing. - Any argument is null. - keys is an empty string or count is an empty string. - - - Limits the query results to a specified number of items. - - A new instance that is equivalent to the original instance with TOP applied. - - The number of items in the results as a string. - An optional set of query parameters that should be in scope when parsing. - count is null. - count is an empty string. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - without duplicates (i.e., results are unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - - This query-builder method creates a new query whose results are all of - the results of this query, plus all of the results of the other query, - including any duplicates (i.e., results are not necessarily unique). - - A query representing the results to add. - a new ObjectQuery instance. - If the query parameter is null. - - - Limits the query to results that match specified filtering criteria. - - A new instance that is equivalent to the original instance with WHERE applied. - - The filter predicate. - Zero or more parameters that are used in this method. - predicate is null or parameters is null. - The predicate is an empty string. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - - Returns an which when enumerated will execute the given SQL query against the database. - - The query results. - - - Gets or sets the name of this object query. - - A string value that is the name of this . - - The value specified on set is not valid. - - - - This class implements IEnumerable and IDisposable. Instance of this class - is returned from ObjectQuery.Execute method. - - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - Returns the results in a format useful for data binding. - - An of entity objects. - - - - Performs tasks associated with freeing, releasing, or resetting resources. - - - Releases the resources used by the object result. - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - Gets the next result set of a stored procedure. - An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call. - The type of the element. - - - - IListSource.ContainsListCollection implementation. Always returns false. - - - - - When overridden in a derived class, gets the type of the generic - - . - - - The type of the generic . - - - - - This class represents the result of the method. - - The type of the result. - - - - This constructor is intended only for use when creating test doubles that will override members - with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected - behavior including but not limited to throwing . - - - - Returns an enumerator that iterates through the query results. - An enumerator that iterates through the query results. - - - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - true to release managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the type of the . - - - A that is the type of the . - - - - - Represents a typed entity set that is used to perform create, read, update, and delete operations. - - The type of the entity. - - - Adds an object to the object context in the current entity set. - The object to add. - - - Attaches an object or object graph to the object context in the current entity set. - The object to attach. - - - Marks an object for deletion. - - An object that represents the entity to delete. The object can be in any state except - - . - - - - Removes the object from the object context. - - Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same - - , those will not be detached automatically. - - - - - Copies the scalar values from the supplied object into the object in the - - that has the same key. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the - - property of an entry in the - - . - - - - - Sets the property of an - - to match the property values of a supplied object. - - The updated object. - - The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the - - property of an entry in the - - . - - - - Creates a new entity type object. - The new entity type object, or an instance of a proxy type that corresponds to the entity type. - - - Creates an instance of the specified type. - An instance of the requested type T , or an instance of a proxy type that corresponds to the type T . - Type of object to be returned. - - - - Gets the metadata of the entity set represented by this instance. - - - An object. - - - - - The original values of the properties of an entity when it was retrieved from the database. - - - - - Maintains object state and identity management for entity type instances and relationship instances. - - - - - Initializes a new instance of the class. - - - The , which supplies mapping and metadata information. - - - - - Returns a collection of objects for objects or relationships with the given state. - - - A collection of objects in the given - - . - - - An used to filter the returned - - objects. - - - When state is . - - - - - Changes state of the for a specific object to the specified entityState . - - - The for the supplied entity . - - The object for which the state must be changed. - The new state of the object. - When entity is null. - - When the object is not detached and does not have an entry in the state manager - or when you try to change the state to - from any other - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - When source or target is null. - - When trying to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - A LINQ expression that selects the navigation property on source that returns the specified target . - - The requested of the specified relationship. - - The entity type of the source object. - When source , target , or selector is null. - selector is malformed or cannot return a navigation property. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a - state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an state - or when state is not a valid value. - - - - Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship. - - The for the relationship that was changed. - - - The object instance or of the source entity at one end of the relationship. - - - The object instance or of the target entity at the other end of the relationship. - - The name of the relationship. - The role name at the target end of the relationship. - - The requested of the specified relationship. - - When source or target is null. - - When you try to change the state of the relationship to a state other than - or - when either source or target is in a state - or when you try to change the state of the relationship to a state other than - or - when either source or target is in an - state - or when state is not a valid value. - - - - - Returns an for the object or relationship entry with the specified key. - - - The corresponding for the given - - . - - - The . - - When key is null. - When the specified key cannot be found in the state manager. - - No entity with the specified exists in the - - . - - - - - Returns an for the specified object. - - - The corresponding for the given - - . - - - The to which the retrieved - - belongs. - - - No entity for the specified exists in the - - . - - - - - Tries to retrieve the corresponding for the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given object; otherwise, false. - - - The to which the retrieved - - belongs. - - - When this method returns, contains the for the given - - This parameter is passed uninitialized. - - - - - Tries to retrieve the corresponding for the object or relationship with the specified - - . - - - A Boolean value that is true if there is a corresponding - - for the given - - ; otherwise, false. - - - The given . - - - When this method returns, contains an for the given - - This parameter is passed uninitialized. - - A null (Nothing in Visual Basic) value is provided for key . - - - - Returns the that is used by the specified object. - - - The for the specified object. - - - The object for which to return the . - - - The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager - - - - - Returns the that is used by the specified object. - - - true if a instance was returned for the supplied entity ; otherwise false. - - - The object for which to return the . - - - When this method returns, contains the - - for the entity . - - - - - Gets the associated with this state manager. - - - The associated with this - - . - - - - Occurs when entities are added to or removed from the state manager. - - - - A DataContractResolver that knows how to resolve proxy types created for persistent - ignorant classes to their base types. This is used with the DataContractSerializer. - - - - During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. - Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type. - The xsi:type information to map. - The namespace of the xsi:type. - The declared type. - - An instance of . - - - - During serialization, maps actual types to xsi:type information. - true if the type was resolved; otherwise, false. - The actual type of the persistence-ignorant object. - The declared type. - - An instance of . - - When this method returns, contains a list of xsi:type declarations. - When this method returns, contains a list of namespaces used. - - - - Defines the different ways to handle modified properties when refreshing in-memory data from the database. - - - - - For unmodified client objects, same behavior as StoreWins. For modified client - objects, Refresh original values with store value, keeping all values on client - object. The next time an update happens, all the client change units will be - considered modified and require updating. - - - - - Discard all changes on the client and refresh values with store values. - Client original values is updated to match the store. - - - - - Flags used to modify behavior of ObjectContext.SaveChanges() - - - - - Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called. - - - - - After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager. - - - - - Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager. - - - - - This exception is thrown when a update operation violates the concurrency constraint. - - - - - Exception during save changes to store - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The collection of objects. - - - - - Initializes a new instance of with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - - - - Gets the objects for this - - . - - - A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message and a reference to the inner exception. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of - - objects. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - The enumerable collection of objects. - - - - - Property constraint exception class. Note that this class has state - so if you change even - its internals, it can be a breaking change - - - - - Initializes a new instance of the class with default message. - - - - - Initializes a new instance of the class with supplied message. - - A localized error message. - - - - Initializes a new instance of the class with supplied message and inner exception. - - A localized error message. - The inner exception. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - - - - Initializes a new instance of the class. - - A localized error message. - The name of the property. - The inner exception. - - - Gets the name of the property that violated the constraint. - The name of the property that violated the constraint. - - - - This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with a specialized error message. - - The message that describes the error. - - - - Initializes a new instance of that uses a specified error message. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides common language runtime (CLR) methods that expose EDM canonical functions - for use in or LINQ to Entities queries. - - - Note that this class was called EntityFunctions in some previous versions of Entity Framework. - - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate - the standard deviation of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate - the standard deviation for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The standard deviation for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate - the variance of the collection. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate - the variance for the population. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The collection over which to perform the calculation. - The variance for the population. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given - number of the leftmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the left of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given - number of the rightmost characters in a string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The number of characters to return - A string containing the number of characters asked for from the right of the input string. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given - string with the order of the characters reversed. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input string. - The input string with the order of the characters reversed. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to - return the number of minutes that the given date/time is offset from UTC. This is generally between +780 - and -780 (+ or - 13 hrs). - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The offset of the input from UTC. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return - the given date with the time portion cleared. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The date/time value to use. - The input date with the time portion cleared. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The year. - The month (1-based). - The day (1-based). - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The time zone offset part of the new date. - The new date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to - create a new object. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The hours. - The minutes. - The seconds, including fractional parts of the seconds if desired. - The new time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to - add the given number of years to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of years to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to - add the given number of months to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of months to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to - add the given number of days to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of days to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to - add the given number of hours to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of hours to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to - add the given number of minutes to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of minutes to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to - add the given number of seconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of seconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to - add the given number of milliseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of milliseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to - add the given number of microseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of microseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a date/time. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting date/time. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to - add the given number of nanoseconds to a time span. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The input date/time. - The number of nanoseconds to add. - A resulting time span. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to - calculate the number of years between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of years between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to - calculate the number of months between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of months between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to - calculate the number of days between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of days between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of hours between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to - calculate the number of hours between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of hours between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of minutes between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to - calculate the number of minutes between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of minutes between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of seconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to - calculate the number of seconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of seconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of milliseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to - calculate the number of milliseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of milliseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of microseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to - calculate the number of microseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of microseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two date/times. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first date/time. - The second date/time. - The number of nanoseconds between the first and second date/times. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to - calculate the number of nanoseconds between two time spans. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The first time span. - The second time span. - The number of nanoseconds between the first and second time spans. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to - truncate the given value to the number of specified digits. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function is translated to a corresponding function in the database. - - The value to truncate. - The number of digits to preserve. - The truncated value. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a Unicode string. - - - - When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input - is treated as a non-Unicode string. - - - You cannot call this function directly. This function can only appear within a LINQ to Entities query. - This function impacts the way the LINQ query is translated to a query that can be run in the database. - - The input string. - The input string treated as a non-Unicode string. - - - - Describes the state of an entity. - - - - - The entity is not being tracked by the context. - An entity is in this state immediately after it has been created with the new operator - or with one of the Create methods. - - - - - The entity is being tracked by the context and exists in the database, and its property - values have not changed from the values in the database. - - - - - The entity is being tracked by the context but does not yet exist in the database. - - - - - The entity is being tracked by the context and exists in the database, but has been marked - for deletion from the database the next time SaveChanges is called. - - - - - The entity is being tracked by the context and exists in the database, and some or all of its - property values have been modified. - - - - - Represents information about a database connection. - - - - - Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. - - The name of the connection string in the application configuration. - - - - Creates a new instance of DbConnectionInfo based on a connection string. - - The connection string to use for the connection. - The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Instances of this class are used to create DbConnection objects for - SQL Server LocalDb based on a given database name or connection string. - - - An instance of this class can be set on the class or in the - app.config/web.config for the application to cause all DbContexts created with no - connection information or just a database name to use SQL Server LocalDb by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Implementations of this interface are used to create DbConnection objects for - a type of database server based on a given database name. - An Instance is set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use a certain type of database server by default. - Two implementations of this interface are provided: - is used to create connections to Microsoft SQL Server, including EXPRESS editions. - is used to create connections to Microsoft SQL - Server Compact Editions. - Other implementations for other database servers can be added as needed. - Note that implementations should be thread safe or immutable since they may - be accessed by multiple threads at the same time. - - - - - Creates a connection based on the given database name or connection string. - - The database name or connection string. - An initialized DbConnection. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - - - - Creates a new instance of the connection factory for the given version of LocalDb. - For SQL Server 2012 LocalDb use "v11.0". - For SQL Server 2014 and later LocalDb use "mssqllocaldb". - - The LocalDb version to use. - The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. - - - - Creates a connection for SQL Server LocalDb based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog', - 'Data Source', and 'AttachDbFilename'. - The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the - database name when CreateConnection is called. - The 'Data Source' will be set based on the LocalDbVersion argument. - The default is 'Integrated Security=True;'. - - - - - An implementation of that will use Code First Migrations - to update the database to the latest version. - - The type of the context. - The type of the migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use - the connection information from a context constructed using the default constructor - or registered factory if applicable - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to - use the connection information from the context that triggered initialization to perform the migration. - Also allows specifying migrations configuration to use during initialization. - - - If set to true the initializer is run using the connection information from the context that - triggered initialization. Otherwise, the connection information will be taken from a context constructed - using the default constructor or registered factory if applicable. - - Migrations configuration to use during initialization. - - - - Initializes a new instance of the MigrateDatabaseToLatestVersion class that will - use a specific connection string from the configuration file to connect to - the database to perform the migration. - - The name of the connection string to use for migration. - - - - - - - Helper class that is used to configure a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a new column definition to store Binary data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the array data. - Value indicating whether or not all data should be padded to the maximum length. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - Value indicating whether or not this column should be configured as a timestamp. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Boolean data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Byte data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTime data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Decimal data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The numeric precision of the column. - The numeric scale of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Value indicating whether or not the database will generate values for this column during insert. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Double data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store GUID data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Single data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Short data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Integer data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Long data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Value indicating whether or not the database will generate values for this column during insert. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store String data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The maximum allowable length of the string data. - Value indicating whether or not all data should be padded to the maximum length. - Value indicating whether or not the column supports Unicode content. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store Time data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store DateTimeOffset data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - The precision of the column. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geography data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - Creates a new column definition to store geometry data. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Value indicating whether or not the column allows null values. - Constant value to use as the default value for this column. - SQL expression used as the default value for this column. - The name of the column. - Provider specific data type to use for this column. - Custom annotations usually from the Code First model. - The newly constructed column definition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Helper class that is used to further configure a table being created from a CreateTable call on - - . - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The type that represents the table's columns. - - - - Initializes a new instance of the TableBuilder class. - - The table creation operation to be further configured. - The migration the table is created in. - - - - Specifies a primary key for the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The name of the primary key. If null is supplied, a default name will be generated. - A value indicating whether or not this is a clustered primary key. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies an index to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - The name of the index. - A value indicating whether or not this is a unique index. - A value indicating whether or not this is a clustered index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - Specifies a foreign key constraint to be created on the table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table that the foreign key constraint targets. - A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } - A value indicating whether or not cascade delete should be configured on the foreign key constraint. - The name of this foreign key constraint. If no name is supplied, a default name will be calculated. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - Itself, so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Creates a shallow copy of the current . - - A shallow copy of the current . - - - - Base class for code-based migrations. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Operations to be performed during the upgrade process. - - - - - Operations to be performed during the downgrade process. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - The parameters in this create stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter a stored procedure. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The parameters in this alter stored procedure operation. You do not need to specify this - type, it will be inferred from the parameter you supply. - - - The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is - assumed. - - The action that specifies the parameters of the stored procedure. - The body of the stored procedure. - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing stored procedure with the specified name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The additional arguments that may be processed by providers. Use anonymous type syntax - to specify arguments. For example, 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to create a new table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this create table operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - Custom annotations that exist on the table to be created. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - An object that allows further configuration of the table creation operation. - - - - Adds an operation to handle changes in the annotations defined on tables. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The columns in this operation. You do not need to specify this type, it will - be inferred from the columnsAction parameter you supply. - - The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. - - An action that specifies the columns to be included in the table. i.e. t => new { Id = - t.Int(identity: true), Name = t.String() } - - The custom annotations on the table that have changed. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The column this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new foreign key constraint. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - The columns this foreign key references. If no value is supplied the primary key of the - principal table will be referenced. - - - A value indicating if cascade delete should be configured for the foreign key - relationship. If no value is supplied, cascade delete will be off. - - - The name of the foreign key constraint in the database. If no value is supplied a unique name will - be generated. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The name of the foreign key constraint in the database. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the column it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key column. - Schema name is optional, if no schema is specified then dbo is assumed. - - The foreign key column. - - The table that contains the column this foreign key references. - Schema name is optional, if no schema is specified then dbo is assumed. - - The columns this foreign key references. - - Additional arguments that may be processed by providers. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a foreign key constraint based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the foreign key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The foreign key columns. - - The table that contains the columns this foreign key references. Schema name is optional, - if no schema is specified then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is - assumed. - - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a table to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is - assumed. - - The schema the table is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to move a stored procedure to a new schema. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be moved. Schema name is optional, if no schema is specified - then dbo is assumed. - - The schema the stored procedure is to be moved to. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a table. To change the schema of a table use MoveTable. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is - assumed. - - - The new name for the table. Schema name is optional, if no schema is specified then dbo is - assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified - then dbo is assumed. - - - The new name for the stored procedure. Schema name is optional, if no schema is specified then - dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the column to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the column to be renamed. - The new name for the column. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to add a column to an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to add the column to. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be added. - - An action that specifies the column to be added. i.e. c => c.Int(nullable: false, - defaultValue: 3) - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the column from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to alter the definition of an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table the column exists in. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to be changed. - - An action that specifies the new definition for the column. i.e. c => c.String(nullable: - false, defaultValue: "none") - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The primary key column. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create a new primary key based on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key columns. Schema name is optional, if no schema is - specified then dbo is assumed. - - The primary key columns. - - The name of the primary key in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered primary key. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that does not have the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the primary key to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an existing primary key that was created with the default name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The table that contains the primary key column. Schema name is optional, if no schema is specified - then dbo is assumed. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on a single column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to create an index on multiple columns. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to create the index on. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the columns to create the index on. - - A value indicating if this is a unique index. If no value is supplied a non-unique index will be - created. - - - The name to use for the index in the database. If no value is supplied a unique name will be - generated. - - A value indicating whether or not this is a clustered index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on its name. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the index to be dropped. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to drop an index based on the columns it targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table to drop the index from. Schema name is optional, if no schema is specified - then dbo is assumed. - - The name of the column(s) the index targets. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to rename an index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The name of the table that contains the index to be renamed. Schema name is optional, if no - schema is specified then dbo is assumed. - - The name of the index to be renamed. - The new name for the index. - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL command or set of SQL commands. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Adds an operation to execute a SQL resource file. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The manifest resource name of the SQL resource file to be executed. - - The assembly containing the resource file. The calling assembly is assumed if not provided. - - - A value indicating if the SQL should be executed outside of the transaction being - used for the migration process. If no value is supplied the SQL will be executed within the transaction. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - - - - - - - - - - - - - - - - - - - Configuration relating to the use of migrations for a given model. - You will typically create a configuration class that derives - from rather than - using this class. - - - - - The default directory that migrations are stored in. - - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Adds a new SQL generator to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - The SQL generator to be used. - - - - Gets the SQL generator that is set to be used with a given database provider. - - Name of the database provider to get the SQL generator for. - The SQL generator that is set for the database provider. - - - - Adds a new factory for creating instances to be used for a given database provider. - - Name of the database provider to set the SQL generator for. - - A factory for creating instances for a given and - representing the default schema. - - - - - Gets the history context factory that is set to be used with a given database provider. - - Name of the database provider to get thefactory for. - The history context factory that is set for the database provider. - - - - Gets or sets a value indicating if automatic migrations can be used when migrating the database. - - - - - Gets or sets the string used to distinguish migrations belonging to this configuration - from migrations belonging to other configurations using the same database. - This property enables migrations from multiple different models to be applied to applied to a single database. - - - - - Gets or sets a value indicating if data loss is acceptable during automatic migration. - If set to false an exception will be thrown if data loss may occur as part of an automatic migration. - - - - - Gets or sets the derived DbContext representing the model to be migrated. - - - - - Gets or sets the namespace used for code-based migrations. - - - - - Gets or sets the sub-directory that code-based migrations are stored in. - Note that this property must be set to a relative path for a sub-directory under the - Visual Studio project root; it cannot be set to an absolute path. - - - - - Gets or sets the code generator to be used when scaffolding migrations. - - - - - Gets or sets the assembly containing code-based migrations. - - - - - Gets or sets a value to override the connection of the database to be migrated. - - - - - Gets or sets the timeout value used for the individual commands within a - migration. A null value indicates that the default value of the underlying - provider will be used. - - - - - Configuration relating to the use of migrations for a given model. - - The context representing the model that this configuration applies to. - - - - Initializes a new instance of the DbMigrationsConfiguration class. - - - - - Runs after upgrading to the latest migration to allow seed data to be updated. - - - Note that the database may already contain seed data when this method runs. This means that - implementations of this method must check whether or not seed data is present and/or up-to-date - and then only make changes if necessary and in a non-destructive way. The - - can be used to help with this, but for seeding large amounts of data it may be necessary to do less - granular checks if performance is an issue. - If the database - initializer is being used, then this method will be called each time that the initializer runs. - If one of the , , - or initializers is being used, then this method will not be - called and the Seed method defined in the initializer should be used instead. - - Context to be used for updating seed data. - - - - - - - - - - - - - - - - - - - DbMigrator is used to apply existing migrations to a database. - DbMigrator can be used to upgrade and downgrade to any given migration. - To scaffold migrations based on changes to your model use - - - - - Base class for decorators that wrap the core - - - - - Initializes a new instance of the MigratorBase class. - - The migrator that this decorator is wrapping. - - - - Gets a list of the pending migrations that have not been applied to the database. - - List of migration Ids - - - - Updates the target database to the latest migration. - - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets a list of the migrations that are defined in the assembly. - - List of migration Ids - - - - Gets a list of the migrations that have been applied to the database. - - List of migration Ids - - - - Gets the configuration being used for the migrations process. - - - - - Migration Id representing the state of the database before any migrations are applied. - - - - - Initializes a new instance of the DbMigrator class. - - Configuration to be used for the migration process. - - - - Gets all migrations that are defined in the configured migrations assembly. - - The list of migrations. - - - - Gets all migrations that have been applied to the target database. - - The list of migrations. - - - - Gets all migrations that are defined in the assembly but haven't been applied to the target database. - - The list of migrations. - - - - Updates the target database to a given migration. - - The migration to upgrade/downgrade to. - - - - Gets the configuration that is being used for the migration process. - - - - - A set of extension methods for - - - - - Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation - from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Adds or updates entities by a custom identification expression when SaveChanges is called. - Equivalent to an "upsert" operation from database terminology. - This method can useful when seeding data using Migrations. - - The type of entities to add or update. - The set to which the entities belong. - An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. - The entities to add or update. - - When the parameter is a custom or fake IDbSet implementation, this method will - attempt to locate and invoke a public, instance method with the same signature as this extension method. - - - - - Generates C# code for a code-based migration. - - - - - Base class for providers that generate code for code-based migrations. - - - - - Generates the code that should be added to the users project. - - Unique identifier of the migration. - Operations to be performed by the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Gets the namespaces that must be output as "using" or "Imports" directives to handle - the code generated by the given operations. - - The operations for which code is going to be generated. - An ordered list of namespace names. - - - - Gets the default namespaces that must be output as "using" or "Imports" directives for - any code generated. - - A value indicating if this class is being generated for a code-behind file. - An ordered list of namespace names. - - - - Gets the instances that are being used. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to specify the definition for a . - The parameter definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Scaffolds code-based migrations to apply pending model changes to the database. - - - - - Initializes a new instance of the MigrationScaffolder class. - - Configuration to be used for scaffolding. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - The scaffolded migration. - - - - Scaffolds a code based migration to apply any pending model changes to the database. - - The name to use for the scaffolded migration. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The scaffolded migration. - - - - Gets or sets the namespace used in the migration's generated code. - By default, this is the same as MigrationsNamespace on the migrations - configuration object passed into the constructor. For VB.NET projects, this - will need to be updated to take into account the project's root namespace. - - - - - Represents a code-based migration that has been scaffolded and is ready to be written to a file. - - - - - Gets or sets the unique identifier for this migration. - Typically used for the file name of the generated code. - - - - - Gets or sets the scaffolded migration code that the user can edit. - - - - - Gets or sets the scaffolded migration code that should be stored in a code behind file. - - - - - Gets or sets the programming language used for this migration. - Typically used for the file extension of the generated code. - - - - - Gets or sets the subdirectory in the user's project that this migration should be saved in. - - - - - Gets a dictionary of string resources to add to the migration resource file. - - - - - Gets or sets whether the migration was re-scaffolded. - - - - - Helper class that is used by design time tools to run migrations related - commands that need to interact with an application that is being edited - in Visual Studio. - Because the application is being edited the assemblies need to - be loaded in a separate AppDomain to ensure the latest version - is always loaded. - The App/Web.config file from the startup project is also copied - to ensure that any configuration is applied. - - - - - Initializes a new instance of the ToolingFacade class. - - The name of the assembly that contains the migrations configuration to be used. - The name of the assembly that contains the DbContext to be used. - The namespace qualified name of migrations configuration to be used. - The working directory containing the compiled assemblies. - The path of the config file from the startup project. - The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. - The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. - - - - Releases all unmanaged resources used by the facade. - - - - - Gets the fully qualified name of all types deriving from . - - All context types found. - - - - Gets the fully qualified name of a type deriving from . - - The name of the context type. If null, the single context type found in the assembly will be returned. - The context type found. - - - - Gets a list of all migrations that have been applied to the database. - - Ids of applied migrations. - - - - Gets a list of all migrations that have not been applied to the database. - - Ids of pending migrations. - - - - Updates the database to the specified migration. - - The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. - Value indicating if data loss during automatic migration is acceptable. - - - - Generates a SQL script to migrate between two migrations. - - The migration to update from. If null is supplied, a script to update the current database will be produced. - The migration to update to. If null is supplied, a script to update to the latest migration will be produced. - Value indicating if data loss during automatic migration is acceptable. - The generated SQL script. - - - - Scaffolds a code-based migration to apply any pending model changes. - - The name for the generated migration. - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - Whether or not to include model changes. - The scaffolded migration. - - - - Scaffolds the initial code-based migration corresponding to a previously run database initializer. - - The programming language of the generated migration. - The root namespace of the project the migration will be added to. - The scaffolded migration. - - - - - - - Releases all resources used by the facade. - - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - - Gets or sets an action to be run to log information. - - - - - Gets or sets an action to be run to log warnings. - - - - - Gets or sets an action to be run to log verbose information. - - - - - Base class for loggers that can be used for the migrations process. - - - - - Logs an informational message. - - The message to be logged. - - - - Logs a warning that the user should be made aware of. - - The message to be logged. - - - - Logs some additional information that should only be presented to the user if they request verbose output. - - The message to be logged. - - - - Generates VB.Net code for a code-based migration. - - - - - - - - Generates the primary code file that the user can view and edit. - - Operations to be performed by the migration. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates the code behind file with migration metadata. - - Unique identifier of the migration. - Source model to be stored in the migration metadata. - Target model to be stored in the migration metadata. - Namespace that code should be generated in. - Name of the class that should be generated. - The generated code. - - - - Generates a property to return the source or target model in the code behind file. - - Name of the property. - Value to be returned. - Text writer to add the generated code to. - - - - Generates class attributes. - - Text writer to add the generated code to. - A value indicating if this class is being generated for a code-behind file. - - - - Generates a namespace, using statements and class definition. - - Namespace that code should be generated in. - Name of the class that should be generated. - Text writer to add the generated code to. - Base class for the generated class. - A value indicating if this class is being generated for a code-behind file. - Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. - - - - Generates the closing code for a class that was started with WriteClassStart. - - Namespace that code should be generated in. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for to re-create the given dictionary of annotations for use when passing - these annotations as a parameter of a . call. - - The annotations to generate. - The writer to which generated code should be written. - - - - Generates code for the given annotation value, which may be null. The default behavior is to use an - if one is registered, otherwise call ToString on the annotation value. - - - Note that a can be registered to generate code for custom annotations - without the need to override the entire code generator. - - The name of the annotation for which code is needed. - The annotation value to generate. - The writer to which generated code should be written. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - Generates code to perform a . - The parameter model definition to generate code for. - Text writer to add the generated code to. - true to include the column name in the definition; otherwise, false. - - - Generates code to perform a . - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code for an . - - The operation for which code should be generated. - The writer to which generated code should be written. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a as part of a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify a set of column names using a lambda expression. - - The columns to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform an . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to specify the definition for a . - - The column definition to generate code for. - Text writer to add the generated code to. - A value indicating whether to include the column name in the definition. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to specify the default value for a column of unknown data type. - - The value to be used as the default. - Code representing the default value. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Generates code to perform a . - - The operation to generate code for. - Text writer to add the generated code to. - - - - Removes any invalid characters from the name of an database artifact. - - The name to be scrubbed. - The scrubbed name. - - - - Gets the type name to use for a column of the given data type. - - The data type to translate. - The type name to use in the generated migration. - - - - Quotes an identifier using appropriate escaping to allow it to be stored in a string. - - The identifier to be quoted. - The quoted identifier. - - - - Contains extension methods for the class. - - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - - The type of the result produced by the associated . - - The task to be awaited on. - An object used to await this task. - - - - Configures an awaiter used to await this to avoid - marshalling the continuation - back to the original context, but preserve the current culture and UI culture. - - The task to be awaited on. - An object used to await this task. - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - - The type of the result produced by the associated . - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The result of the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - Provides an awaitable object that allows for awaits on that - preserve the culture. - - This type is intended for compiler use only. - - - - Constructs a new instance of the class. - - The task to be awaited on. - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler user rather than use directly in code. - - - Ends the await on the completed . - The awaiter was not properly initialized. - The task was canceled. - The task completed in a Faulted state. - - - This method is not implemented and should not be called. - The action to invoke when the await operation completes. - - - - Schedules the continuation onto the associated with this - . - - The action to invoke when the await operation completes. - - The argument is null - (Nothing in Visual Basic). - - The awaiter was not properly initialized. - This method is intended for compiler user rather than use directly in code. - - - - Gets whether this Task has completed. - - - will return true when the Task is in one of the three - final states: RanToCompletion, - Faulted, or - Canceled. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - To customize the definition of the migrations history table you can derive from - this class and override OnModelCreating. Derived instances can either be registered - on a per migrations configuration basis using , - or globally using . - - - - - The default name used for the migrations history table. - - - - - Initializes a new instance of the HistoryContext class. - If you are creating a derived history context you will generally expose a constructor - that accepts these same parameters and passes them to this base constructor. - - - An existing connection to use for the new context. - - - The default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Applies the default configuration for the migrations history table. If you override - this method it is recommended that you call this base implementation before applying your - custom configuration. - - The builder that defines the model for the context being created. - - - - Gets the key used to locate a model that was previously built for this context. This is used - to avoid processing OnModelCreating and calculating the model every time a new context instance is created. - By default this property returns the default schema. - In most cases you will not need to override this property. However, if your implementation of OnModelCreating - contains conditional logic that results in a different model being built for the same database provider and - default schema you should override this property and calculate an appropriate key. - - - - - Gets the default schema of the model being migrated. - This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating. - - - - - Gets or sets a that can be used to read and write instances. - - - - - This class is used by Code First Migrations to read and write migration history - from the database. - - - - - Gets or sets the Id of the migration this row represents. - - - - - Gets or sets a key representing to which context the row applies. - - - - - Gets or sets the state of the model after this migration was applied. - - - - - Gets or sets the version of Entity Framework that created this entry. - - - - - Represents an error that occurs when an automatic migration would result in data loss. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - - - - Initializes a new instance of the AutomaticDataLossException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - - - - Initializes a new instance of the AutomaticMigrationsDisabledException class. - - The message that describes the error. - - - - Initializes a new instance of the MigrationsException class. - - The message that describes the error. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Provides additional metadata about a code-based migration. - - - - - Gets the unique identifier for the migration. - - - - - Gets the state of the model before this migration is run. - - - - - Gets the state of the model after this migration is run. - - - - - Decorator to provide logging during migrations operations.. - - - - - Initializes a new instance of the MigratorLoggingDecorator class. - - The migrator that this decorator is wrapping. - The logger to write messages to. - - - - Decorator to produce a SQL script instead of applying changes to the database. - Using this decorator to wrap will prevent - from applying any changes to the target database. - - - - - Initializes a new instance of the MigratorScriptingDecorator class. - - The migrator that this decorator is wrapping. - - - - Produces a script to update the database. - - - The migration to update from. If null is supplied, a script to update the - current database will be produced. - - - The migration to update to. If null is supplied, - a script to update to the latest migration will be produced. - - The generated SQL script. - - - - Represents a column being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be added to. - Details of the column being added. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be added to. - - - - - Gets the details of the column being added. - - - - - Gets an operation that represents dropping the added column. - - - - - - - - Represents a foreign key constraint being added to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Base class for changes that affect foreign key constraints. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that the foreign key constraint targets. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the name of the table that the foreign key columns exist in. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - The names of the foreign key column(s). - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this foreign key constraint. - - - - - Gets or sets the name of this foreign key constraint. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AddForeignKeyOperation class. - The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to create an index on the foreign key column(s). - - An operation to add the index. - - - - The names of the column(s) that the foreign key constraint should target. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. - - - - - Gets an operation to drop the foreign key constraint. - - - - - - - - Represents adding a primary key to a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class to represent operations affecting primary keys. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Returns the default name for the primary key. - - The target table name. - The default primary key name. - - - - Initializes a new instance of the PrimaryKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets the name of the table that contains the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the column(s) that make up the primary key. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this primary key. - - - - - Gets or sets the name of this primary key. - If no name is supplied, a default name will be calculated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - - - - Initializes a new instance of the AddPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the primary key. - - - - - Gets or sets whether this is a clustered primary key. - - - - - Represents altering an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the AlterColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table that the column belongs to. - Details of what the column should be altered to. - Value indicating if this change will result in data loss. - An operation to revert this alteration of the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table that the column belongs to. - - - - - Gets the new definition for the column. - - - - - Gets an operation that represents reverting the alteration. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents information about a column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - - - - Initializes a new instance of the ColumnModel class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The data type for this column. - Additional details about the data type. This includes details such as maximum length, nullability etc. - - - - Determines if this column is a narrower data type than another column. - Used to determine if altering the supplied column definition to this definition will result in data loss. - - The column to compare to. - Details of the database provider being used. - True if this column is of a narrower data type. - - - - Gets the CLR type corresponding to the database type of this column. - - - - - Gets the default value for the CLR type corresponding to the database type of this column. - - - - - Gets or sets a value indicating if this column can store null values. - - - - - Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. - - - - - Gets or sets a value indicating if this property model should be configured as a timestamp. - - - - - Gets or sets the custom annotations that have changed on the column. - - - - - Represents creating a database index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Common base class for operations affecting indexes. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Creates a default index name based on the supplied column names. - - The column names used to create a default index name. - A default index name. - - - - Initializes a new instance of the IndexOperation class. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - Additional arguments that may be processed by providers. Use anonymous type syntax to - specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - - Gets or sets the table the index belongs to. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets the columns that are indexed. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets a value indicating if a specific name has been supplied for this index. - - - - - Gets or sets the name of this index. - If no name is supplied, a default name will be calculated. - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateIndexOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets or sets a value indicating if this is a unique index. - - - - - Gets an operation to drop this index. - - - - - - - - Gets or sets whether this is a clustered index. - - - - - Represents creating a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the CreateTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be created. - Custom annotations that exist on the table to be created. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be created. - - - - - Gets the columns to be included in the new table. - - - - - Gets or sets the primary key for the new table. - - - - - Gets custom annotations that exist on the table to be created. - - - - - Gets an operation to drop the table. - - - - - - - - Represents a column being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table the column should be dropped from. - The name of the column to be dropped. - Custom annotations that exist on the column that is being dropped. May be null or empty. - The operation that represents reverting the drop operation. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column should be dropped from. - - - - - Gets the name of the column to be dropped. - - - - - Gets custom annotations that exist on the column that is being dropped. - - - - - Gets an operation that represents reverting dropping the column. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents a foreign key constraint being dropped from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropForeignKeyOperation class. - The PrincipalTable, DependentTable and DependentColumns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropForeignKeyOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc.. - - The operation that represents reverting dropping the foreign key constraint. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to drop the associated index on the foreign key column(s). - - An operation to drop the index. - - - - Gets an operation that represents reverting dropping the foreign key constraint. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping an existing index. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropIndexOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The operation that represents reverting dropping the index. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation that represents reverting dropping the index. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Represents dropping a primary key from a table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropPrimaryKeyOperation class. - The Table and Columns properties should also be populated. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets an operation to add the primary key. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents dropping an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Initializes a new instance of the DropTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The name of the table to be dropped. - Custom annotations that exist on the table that is being dropped. May be null or empty. - Custom annotations that exist on columns of the table that is being dropped. May be null or empty. - An operation that represents reverting dropping the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be dropped. - - - - - Gets custom annotations that exist on the table that is being dropped. - - - - - Gets custom annotations that exist on columns of the table that is being dropped. - - - - - Gets an operation that represents reverting dropping the table. - The inverse cannot be automatically calculated, - if it was not supplied to the constructor this property will return null. - - - - - - - - Operation representing DML changes to the migrations history table. - The migrations history table is used to store a log of the migrations that have been applied to the database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the HistoryOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - A sequence of command trees representing the operations being applied to the history table. - Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - A sequence of commands representing the operations being applied to the history table. - - - - - - - - Represents moving a table from one schema to another. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the MoveTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be moved. - Name of the schema to move the table to. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be moved. - - - - - Gets the name of the schema to move the table to. - - - - - Gets an operation that moves the table back to its original schema. - - - - - - - - Used when altering the migrations history table so that data can be moved to the new table. - - - The context key for the model. - - - - - Gets a value that indicates whether this is a system table. - - - true if the table is a system table; otherwise, false. - - - - - Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key. - - - The create table operation for the migrations history table. - - - - - Represents renaming an existing column. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameColumnOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table the column belongs to. - Name of the column to be renamed. - New name for the column. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table the column belongs to. - - - - - Gets the name of the column to be renamed. - - - - - Gets the new name for the column. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents renaming an existing table. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the RenameTableOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - Name of the table to be renamed. - New name for the table. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the name of the table to be renamed. - - - - - Gets the new name for the table. - - - - - Gets an operation that reverts the rename. - - - - - - - - Represents a provider specific SQL statement to be executed directly against the target database. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Initializes a new instance of the SqlOperation class. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - The SQL to be executed. - Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. - - - - Gets the SQL to be executed. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - - - - Common base class for providers that convert provider agnostic migration - operations into database provider specific SQL commands. - - - - - Converts a set of migration operations into database provider specific SQL. - - The operations to be converted. - Token representing the version of the database being targeted. - A list of SQL statements to be executed to perform the migration operations. - - - - Generates the SQL body for a stored procedure. - - The command trees representing the commands for an insert, update or delete operation. - The rows affected parameter name. - The provider manifest token. - The SQL body for the stored procedure. - - - - Builds the store type usage for the specified using the facets from the specified . - - Name of the store type. - The target property. - A store-specific TypeUsage - - - - Gets or sets the provider manifest. - - - The provider manifest. - - - - - Represents a migration operation that has been translated into a SQL statement. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets the SQL to be executed to perform this migration operation. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - - - Gets or sets a value indicating whether this statement should be performed outside of - the transaction scope that is used to make the migration process transactional. - If set to true, this operation will not be rolled back if the migration process fails. - - - - - Gets or sets the batch terminator for the database provider. - - Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources - (such as the end user of an application). If input is accepted from such sources it should be validated - before being passed to these APIs to protect against SQL injection attacks etc. - - - The batch terminator for the database provider. - - - - - Extension methods for . - - - - - Returns an implementation that stays in sync with the given - . - - The element type. - The collection that the binding list will stay in sync with. - The binding list. - - - - Represents data in a geodetic (round earth) coordinate system. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)( - - ). - - A byte array that contains a well known binary representation of the geography value. - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new value based on the specified well known text value. - - - A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geography value. - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known text value. - The multi polygon value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeography value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geography value. - The identifier of the coordinate system that the new DbGeography value should use. - - - Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points. - A string containing the well known text representation of this DbGeography value. - - - Generates the well known binary representation of this DbGeography value. - The well-known binary representation of this DbGeography value. - - - Generates the Geography Markup Language (GML) representation of this DbGeography value. - A string containing the GML representation of this DbGeography value. - - - Determines whether this DbGeography is spatially equal to the specified DbGeography argument. - true if other is spatially equal to this geography value; otherwise false. - The geography value that should be compared with this geography value for equality. - - - Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. - true if other is disjoint from this geography value; otherwise false. - The geography value that should be compared with this geography value for disjointness. - - - Determines whether this DbGeography value spatially intersects the specified DbGeography argument. - true if other intersects this geography value; otherwise false. - The geography value that should be compared with this geography value for intersection. - - - Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value. - A geography object that represents the union of all points - The distance. - - - Computes the distance between the closest points in this DbGeography value and another DbGeography value. - A double value that specifies the distance between the two closest points in this geography value and other. - The geography value for which the distance from this value should be computed. - - - Computes the intersection of this DbGeography value and another DbGeography value. - A new DbGeography value representing the intersection between this geography value and other. - The geography value for which the intersection with this value should be computed. - - - Computes the union of this DbGeography value and another DbGeography value. - A new DbGeography value representing the union between this geography value and other. - The geography value for which the union with this value should be computed. - - - Computes the difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the difference between this geography value and other. - The geography value for which the difference with this value should be computed. - - - Computes the symmetric difference of this DbGeography value and another DbGeography value. - A new DbGeography value representing the symmetric difference between this geography value and other. - The geography value for which the symmetric difference with this value should be computed. - - - Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeography value from a specific position - The index. - - - Returns a string representation of the geography value. - A string representation of the geography value. - - - Gets the default coordinate system id (SRID) for geography values (WGS 84) - The default coordinate system id (SRID) for geography values (WGS 84) - - - Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. - A representation of this DbGeography value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeography value. - A data contract serializable well known representation of this DbGeography value. - - - Gets the identifier associated with the coordinate system. - The identifier associated with the coordinate system. - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of the given value. - - - - Gets the spatial type name of the DBGeography. - The spatial type name of the DBGeography. - - - Gets a nullable Boolean value indicating whether this DbGeography value is empty. - True if this DbGeography value is empty; otherwise, false. - - - Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns> - The number of elements in this DbGeography value. - - - Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Latitude coordinate of this DbGeography value. - - - Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The Longitude coordinate of this DbGeography value. - - - Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeography value. - - - Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns> - The M (Measure) coordinate of this DbGeography value. - - - Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. - A nullable double value that indicates the length of this DbGeography value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. - A DbGeography value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. - True if this DbGeography value is closed; otherwise, false. - - - Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeography value. - - - Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeography value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - Represents geometric shapes. - - - - - Creates a new value based on the specified well known binary value. - - - A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier ( - - ). - - A byte array that contains a well known binary representation of the geometry value. - wellKnownBinary - - - - Creates a new value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownBinary - coordinateSystemId - - - - Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownBinary - coordinateSystemId - - - - Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownBinary - coordinateSystemId - - - - Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownBinary - coordinateSystemId - - - Returns the multiline value from a binary value. - The multiline value from a binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multipoint value from a well-known binary value. - The multipoint value from a well-known binary value. - The well-known binary value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multipoint value from a well-known text value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier. - A byte array that contains a well known binary representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownBinary - coordinateSystemId - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - geometryMarkup - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the GML value with the specified coordinate system identifier. - A string that contains a Geography Markup Language (GML) representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryMarkup - coordinateSystemId - - - - Creates a new value based on the specified well known text value. - - - A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) ( - - ). - - A string that contains a well known text representation of the geometry value. - wellKnownText - - - - Creates a new value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - wellKnownText - coordinateSystemId - - - - Creates a new line value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - lineWellKnownText - coordinateSystemId - - - - Creates a new point value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - pointWellKnownText - coordinateSystemId - - - - Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - polygonWellKnownText - coordinateSystemId - - - Returns the multiline value from a well-known text value. - The multiline value from a well-known text value. - The well-known text. - The coordinate system identifier. - - - Returns the multipoint value from a well-known text value. - The multipoint value from a well-known text value. - The well-known text value. - The coordinate system identifier. - - - Returns the multi polygon value from a well-known binary value. - The multi polygon value from a well-known binary value. - The multi polygon well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID). - - A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier. - A string that contains a well known text representation of the geometry value. - The identifier of the coordinate system that the new DbGeometry value should use. - geometryCollectionWellKnownText - coordinateSystemId - - - Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points. - A string containing the well known text representation of this DbGeometry value. - - - Generates the well known binary representation of this DbGeometry value. - The well-known binary representation of this DbGeometry value. - - - Generates the Geography Markup Language (GML) representation of this DbGeometry value. - A string containing the GML representation of this DbGeometry value. - - - Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. - true if other is spatially equal to this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for equality. - other - - - Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. - true if other is disjoint from this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for disjointness. - other - - - Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. - true if other intersects this geometry value; otherwise false. - The geometry value that should be compared with this geometry value for intersection. - other - - - Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. - true if other touches this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. - true if other crosses this geometry value; otherwise false. - The geometry value that should be compared with this geometry value. - other - - - Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. - true if this geometry value is within other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. - true if this geometry value contains other; otherwise false. - The geometry value that should be compared with this geometry value for containment. - other - - - Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. - true if this geometry value overlaps other; otherwise false. - The geometry value that should be compared with this geometry value for overlap. - other - - - Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false. - The geometry value that should be compared with this geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - othermatrix - - - Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value. - A geometry object that represents the union of all points. - The distance. - - - Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. - A double value that specifies the distance between the two closest points in this geometry value and other. - The geometry value for which the distance from this value should be computed. - other - - - Computes the intersection of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the intersection between this geometry value and other. - The geometry value for which the intersection with this value should be computed. - other - - - Computes the union of this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the union between this geometry value and other. - The geometry value for which the union with this value should be computed. - other - - - Computes the difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the difference between this geometry value and other. - The geometry value for which the difference with this value should be computed. - other - - - Computes the symmetric difference between this DbGeometry value and another DbGeometry value. - A new DbGeometry value representing the symmetric difference between this geometry value and other. - The geometry value for which the symmetric difference with this value should be computed. - other - - - Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns> - An element of this DbGeometry value from a specific position. - The index. - - - Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns> - An interior ring from this DbGeometry value at a specific position. - The index. - - - Returns a string representation of the geometry value. - A string representation of the geometry value. - - - Gets the default coordinate system id (SRID) for geometry values. - The default coordinate system id (SRID) for geometry values. - - - Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. - A representation of this DbGeometry value. - - - - Gets the spatial provider that will be used for operations on this spatial type. - - - - Gets or sets a data contract serializable well known representation of this DbGeometry value. - A data contract serializable well known representation of this DbGeometry value. - - - Gets the coordinate system identifier of the DbGeometry object. - The coordinate system identifier of the DbGeometry object. - - - Gets the boundary of the DbGeometry objects. - The boundary of the DbGeometry objects. - - - - Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element. - - - The dimension of the given value. - - - - Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. - The envelope (minimum bounding box) of this DbGeometry value. - - - Gets a spatial type name representation of this DbGeometry value. - A spatial type name representation of this DbGeometry value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve. - True if this DbGeometry value is empty; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is simple. - True if this DbGeometry value is simple; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is valid. - True if this DbGeometry value is valid; otherwise, false. - - - Gets the convex hull of this DbGeometry value as another DbGeometry value. - The convex hull of this DbGeometry value as another DbGeometry value. - - - Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns> - The number of elements in this DbGeometry value. - - - Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The X coordinate of this DbGeometry value. - - - Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns> - The Y coordinate of this DbGeometry value. - - - Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns> - The elevation (Z coordinate) of this DbGeometry value. - - - Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns> - The Measure (M coordinate) of this DbGeometry value. - - - Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. - The length of this DbGeometry value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. - A DbGeometry value representing the start point of this value. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. - True if this DbGeometry value is closed; otherwise, false. - - - Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. - True if this DbGeometry value is a ring; otherwise, false. - - - Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns> - The number of points in this DbGeometry value. - - - Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. - A nullable double value that indicates the area of this DbGeometry value. - - - Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. - The DbGeometry value that represents the centroid of this DbGeometry value. - - - Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. - A point on the surface of this DbGeometry value. - - - Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. - The DbGeometry value that represents the exterior ring of this DbGeometry value. - - - Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns> - The number of interior rings in this DbGeometry value. - - - - A data contract serializable representation of a value. - - - - Gets or sets the coordinate system identifier (SRID) of this value. - - - Gets or sets the well known text representation of this value. - - - Gets or sets the well known binary representation of this value. - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeography at the specified column value - The ordinal of the column that contains the geography value - - - - Asynchronously reads an instance of from the column at the specified column ordinal. - - - Providers should override with an appropriate implementation. - The default implementation invokes the synchronous method and returns - a completed task, blocking the calling thread. - - The ordinal of the column that contains the geography value. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the instance of at the specified column value. - - - - - When implemented in derived types, reads an instance of from the column at the specified column ordinal. - - The instance of DbGeometry at the specified column value - The ordinal of the data record column that contains the provider-specific geometry data - - - - Asynchronously reads an instance of from the column at the specified column ordinal. - - - Providers should override with an appropriate implementation. - The default implementation invokes the synchronous method and returns - a completed task, blocking the calling thread. - - The ordinal of the data record column that contains the provider-specific geometry data. - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the instance of at the specified column value. - - - - - Returns whether the column at the specified column ordinal is of geography type - - The column ordinal. - - true if the column at the specified column ordinal is of geography type; - false otherwise. - - - - - Returns whether the column at the specified column ordinal is of geometry type - - The column ordinal. - - true if the column at the specified column ordinal is of geometry type; - false otherwise. - - - - - A provider-independent service API for geospatial (Geometry/Geography) type support. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - The provider value. - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geography value. - A new DbGeography value backed by this spatial services implementation and the specified provider value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geography value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geographyValue, as a new - - . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geometry Markup Language (GML) representation of the geography value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geographyValue, or the largest element dimension if - - is a collection. - - The geography value for which the dimension value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points. - - A string containing the well-known text representation of geographyValue. - The geography value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of . - - The geography value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geography value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeography value. - The geography value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geographyValue is spatially equal to otherGeography; otherwise false. - The first geography value to compare for equality. - The second geography value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geographyValue is disjoint from otherGeography; otherwise false. - The first geography value to compare for disjointness. - The second geography value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geographyValue intersects otherGeography; otherwise false. - The first geography value to compare for intersection. - The second geography value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geography value representing all points less than or equal to distance from the given - - value. - - A new DbGeography value representing all points less than or equal to distance from geographyValue. - The geography value. - A double value specifying how far from geographyValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference of two values. - - A new DbGeography value representing the difference of geographyValue and otherGeography. - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference of two values. - - - A new value representing the symmetric difference of geographyValue and otherGeography. - - The first geography value. - The second geography value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geography collection. - - The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geography collection. - - The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null. - The geography value, which need not represent a geography collection. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Latitude coordinate of the given value, if it represents a point. - - - The Latitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Longitude coordinate of the given value, if it represents a point. - - - The Longitude coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z coordinate) of the given value, if it represents a point. - - The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null. - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geography value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve. - - The end point of geographyValue, if it represents a curve; otherwise null. - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geography value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geography value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null. - The geography value, which need not represent a linestring or linear ring. - The position within the geography value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geography value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - This method is intended for use by derived implementations of - - after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation. - - - A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation. - - - The spatial services instance that the returned value will depend on for its implementation of spatial functionality. - - A provider value. - - - - Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known - - representation. - - A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation. - - An instance of that contains the well-known representation of a geometry value. - - - - - Creates an instance of that represents the specified - - value using one or both of the standard well-known spatial formats. - - - The well-known representation of geometryValue, as a new - - . - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on a provider-specific value that is compatible with this spatial services implementation. - - - A new value backed by this spatial services implementation and the specified provider value. - - A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Creates a new value based on the specified well-known binary value. - - - A new value as defined by the well-known binary value with the default - - coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - - - Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known binary value and coordinate system identifier. - - - The new multiline value - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier. - - - A new multipoint value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier. - - - A new multi polygon value. - - The well-known binary value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID). - - - A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) ( - - ). - - A byte array that contains a well-known binary representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified well-known text value. - - - A new value as defined by the well-known text value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - - - Creates a new value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new multiline value based on the specified well-known text value and coordinate system identifier. - - - A new multiline value - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multipoint value based on the specified well-known text value and coordinate system identifier. - - - A new multipoint value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier. - - - A new multi polygon value. - - The well-known text value. - The coordinate system identifier. - - - - Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID). - - - A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) ( - - ). - - A string that contains a well-known text representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Creates a new value based on the specified Geography Markup Language (GML) value. - - - A new value as defined by the GML value with the default - - coordinate system identifier (SRID) ( - - ). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - - - Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID). - - - A new value as defined by the GML value with the specified coordinate system identifier (SRID). - - A string that contains a Geography Markup Language (GML) representation of the geometry value. - - The identifier of the coordinate system that the new value should use. - - - - - Returns the coordinate system identifier of the given value. - - - The coordinate system identifier of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the boundary of the given - - value. - - - The boundary of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the dimension of the given value or, if the value is a collections, the largest element dimension. - - - The dimension of geometryValue, or the largest element dimension if - - is a collection. - - The geometry value for which the dimension value should be retrieved. - - - - Gets the envelope (minimum bounding box) of the given value, as a geometry value. - - - The envelope of geometryValue, as a value. - - The geometry value for which the envelope value should be retrieved. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that indicates the spatial type name of the given - - value. - - - The spatial type name of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is empty. - - - True if the given value is empty; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is simple. - - - True if the given value is simple; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is valid. - - - True if the given value is valid; otherwise, false. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known text representation of the given value, including only X and Y coordinates for points. - - A string containing the well-known text representation of geometryValue. - The geometry value for which the well-known text should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a text representation of with elevation and measure. - - - A text representation of with elevation and measure. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the well-known binary representation of the given value. - - - The well-known binary representation of the given value. - - The geometry value for which the well-known binary should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Generates the Geography Markup Language (GML) representation of this - - value. - - A string containing the GML representation of this DbGeometry value. - The geometry value for which the GML should be generated. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially equal. - - true if geometryValue is spatially equal to otherGeometry; otherwise false. - The first geometry value to compare for equality. - The second geometry value to compare for equality. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially disjoint. - - true if geometryValue is disjoint from otherGeometry; otherwise false. - The first geometry value to compare for disjointness. - The second geometry value to compare for disjointness. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially intersect. - - true if geometryValue intersects otherGeometry; otherwise false. - The first geometry value to compare for intersection. - The second geometry value to compare for intersection. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially touch. - - true if geometryValue touches otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially cross. - - true if geometryValue crosses otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value is spatially within the other. - - true if geometryValue is within otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether one value spatially contains the other. - - true if geometryValue contains otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values spatially overlap. - - true if geometryValue overlaps otherGeometry; otherwise false. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. - - true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false. - The first geometry value. - The geometry value that should be compared with the first geometry value for relation. - A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation. - - - , - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Creates a geometry value representing all points less than or equal to distance from the given - - value. - - A new DbGeometry value representing all points less than or equal to distance from geometryValue. - The geometry value. - A double value specifying how far from geometryValue to buffer. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the distance between the closest points in two values. - - A double value that specifies the distance between the two closest points in geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the convex hull of the given - - value. - - - The convex hull of the given value. - - The geometry value. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Computes the intersection of two values. - - - A new value representing the intersection of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the union of two values. - - - A new value representing the union of geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the difference between two values. - - A new DbGeometry value representing the difference between geometryValue and otherGeometry. - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Computes the symmetric difference between two values. - - - A new value representing the symmetric difference between geometryValue and otherGeometry. - - The first geometry value. - The second geometry value. - - - or - - is null. - - - - or - - is not compatible with this spatial services implementation. - - - - - Returns the number of elements in the given value, if it represents a geometry collection. - - The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an element of the given value, if it represents a geometry collection. - - The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null. - The geometry value, which need not represent a geometry collection. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the X coordinate of the given value, if it represents a point. - - - The X coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the Y coordinate of the given value, if it represents a point. - - - The Y coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the elevation (Z) of the given value, if it represents a point. - - The elevation (Z) of geometryValue, if it represents a point; otherwise null. - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the M (Measure) coordinate of the given value, if it represents a point. - - - The M (Measure) coordinate of the given value. - - The geometry value, which need not represent a point. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the length of the given - - value, which may be null if the value does not represent a curve. - - - The length of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve. - - - The start point of the given value. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve. - - The end point of geometryValue, if it represents a curve; otherwise null. - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve. - - - True if the given value is closed; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve. - - - True if the given value is a ring; otherwise, false. - - The geometry value, which need not represent a curve. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of points in the given value, if it represents a linestring or linear ring. - - - The number of points in the given value. - - The geometry value, which need not represent a linestring or linear ring. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a point element of the given value, if it represents a linestring or linear ring. - - The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null. - The geometry value, which need not represent a linestring or linear ring. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a nullable double value that indicates the area of the given - - value, which may be null if the value does not represent a surface. - - - A nullable double value that indicates the area of the given value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface. - - The centroid of geometryValue, if it represents a surface; otherwise null. - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface. - - - A value that represents a point on the surface of the given DbGeometry value. - - The geometry value, which need not represent a surface. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon. - - A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns the number of interior rings in the given value, if it represents a polygon. - - The number of elements in geometryValue, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Returns an interior ring from the given value, if it represents a polygon. - - The interior ring in geometryValue at position index, if it represents a polygon; otherwise null. - The geometry value, which need not represent a polygon. - The position within the geometry value from which the element should be taken. - - - is null. - - - - is not compatible with this spatial services implementation. - - - - - Gets the default services for the . - - The default services. - - - - Override this property to allow the spatial provider to fail fast when native types or other - resources needed for the spatial provider to function correctly are not available. - The default value is true which means that EF will continue with the assumption - that the provider has the necessary types/resources rather than failing fast. - - - - - The same as but works in partial trust and adds explicit caching of - generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure - we indent the next line properly. - - - - - Specifies the default tab string. This field is constant. - - - - - Specifies the culture what will be used by the underlying TextWriter. This static property is read-only. - Note that any writer passed to one of the constructors of must use this - same culture. The culture is . - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - - - - Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. - Note that the writer passed to this constructor must use the specified by the - property. - - - The to use for output. - - The tab string to use for indentation. - - - - Closes the document being written to. - - - - - Flushes the stream. - - - - - Outputs the tab string once for each level of indentation according to the - - property. - - - - - Builds a string representing the current indentation level for a new line. - - - Does NOT check if tabs are currently pending, just returns a string that would be - useful in replacing embedded newline characters. - - An empty string, or a string that contains .Indent level's worth of specified tab-string. - - - - Writes the specified string to the text stream. - - The string to write. - - - - Writes the text representation of a Boolean value to the text stream. - - The Boolean value to write. - - - - Writes a character to the text stream. - - The character to write. - - - - Writes a character array to the text stream. - - The character array to write. - - - - Writes a subarray of characters to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double to the text stream. - - The double to write. - - - - Writes the text representation of a Single to the text stream. - - The single to write. - - - - Writes the text representation of an integer to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object to the text stream. - - The object to write. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the specified string to a line without tabs. - - The string to write. - - - - Writes the specified string, followed by a line terminator, to the text stream. - - The string to write. - - - - Writes a line terminator. - - - - - Writes the text representation of a Boolean, followed by a line terminator, to the text stream. - - The Boolean to write. - - - - Writes a character, followed by a line terminator, to the text stream. - - The character to write. - - - - Writes a character array, followed by a line terminator, to the text stream. - - The character array to write. - - - - Writes a subarray of characters, followed by a line terminator, to the text stream. - - The character array to write data from. - Starting index in the buffer. - The number of characters to write. - - - - Writes the text representation of a Double, followed by a line terminator, to the text stream. - - The double to write. - - - - Writes the text representation of a Single, followed by a line terminator, to the text stream. - - The single to write. - - - - Writes the text representation of an integer, followed by a line terminator, to the text stream. - - The integer to write. - - - - Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. - - The 8-byte integer to write. - - - - Writes the text representation of an object, followed by a line terminator, to the text stream. - - The object to write. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string. - The object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The first object to write into the formatted string. - The second object to write into the formatted string. - - - - Writes out a formatted string, followed by a line terminator, using the same semantics as specified. - - The formatting string to use. - The argument array to output. - - - - Writes the text representation of a UInt32, followed by a line terminator, to the text stream. - - A UInt32 to output. - - - - Gets the encoding for the text writer to use. - - - An that indicates the encoding for the text writer to use. - - - - - Gets or sets the new line character to use. - - The new line character to use. - - - - Gets or sets the number of spaces to indent. - - The number of spaces to indent. - - - - Gets the to use. - - - The to use. - - - - - Convention to apply column ordering specified via - - or the API. This convention throws if a duplicate configured column order - is detected. - - - - - Convention to apply column ordering specified via - - or the API. - - - - - - - - Validates the ordering configuration supplied for columns. - This base implementation is a no-op. - - The name of the table that the columns belong to. - The definition of the table. - - - - Validates the ordering configuration supplied for columns to ensure - that the same ordinal was not supplied for two columns. - - The name of the table that the columns belong to. - The definition of the table. - - - - Represents a conceptual or store model. This class can be used to access information about the shape of the model - and the way the that it has been configured. - - - - - Adds an association type to the model. - - The AssociationType instance to be added. - - - - Adds a complex type to the model. - - The ComplexType instance to be added. - - - - Adds an entity type to the model. - - The EntityType instance to be added. - - - - Adds an enumeration type to the model. - - The EnumType instance to be added. - - - - Adds a function to the model. - - The EdmFunction instance to be added. - - - - Removes an association type from the model. - - The AssociationType instance to be removed. - - - - Removes a complex type from the model. - - The ComplexType instance to be removed. - - - - Removes an entity type from the model. - - The EntityType instance to be removed. - - - - Removes an enumeration type from the model. - - The EnumType instance to be removed. - - - - Removes a function from the model. - - The EdmFunction instance to be removed. - - - Gets the built-in type kind for this type. - - A object that represents the built-in type kind for this type. - - - - - Gets the data space associated with the model, which indicates whether - it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace). - - - - - Gets the association types in the model. - - - - - Gets the complex types in the model. - - - - - Gets the entity types in the model. - - - - - Gets the enum types in the model. - - - - - Gets the functions in the model. - - - - - Gets the container that stores entity and association sets, and function imports. - - - - Gets the global items associated with the model. - The global items associated with the model. - - - - An implementation of IDatabaseInitializer that will recreate and optionally re-seed the - database only if the database does not exist. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An instance of this class is obtained from an object and can be used - to manage the actual database backing a DbContext or connection. - This includes creating, deleting, and checking for the existence of a database. - Note that deletion and checking for existence of a database can be performed using just a - connection (i.e. without a full context) by using the static methods of this class. - - - - - Enables the user to pass in a database transaction created outside of the object - if you want the Entity Framework to execute commands within that external transaction. - Alternatively, pass in null to clear the framework's knowledge of that transaction. - - the external transaction - Thrown if the transaction is already completed - - Thrown if the connection associated with the object is already enlisted in a - - transaction - - - Thrown if the connection associated with the object is already participating in a transaction - - Thrown if the connection associated with the transaction does not match the Entity Framework's connection - - - - Begins a transaction on the underlying store connection - - - a object wrapping access to the underlying store's transaction object - - - - - Begins a transaction on the underlying store connection using the specified isolation level - - The database isolation level with which the underlying store transaction will be created - - a object wrapping access to the underlying store's transaction object - - - - - Sets the database initializer to use for the given context type. The database initializer is called when a - the given type is used to access a database for the first time. - The default strategy for Code First contexts is an instance of . - - The type of the context. - The initializer to use, or null to disable initialization for the given context type. - - - - Runs the the registered on this context. - If "force" is set to true, then the initializer is run regardless of whether or not it - has been run before. This can be useful if a database is deleted while an app is running - and needs to be reinitialized. - If "force" is set to false, then the initializer is only run if it has not already been - run for this context, model, and connection in this app domain. This method is typically - used when it is necessary to ensure that the database has been created and seeded - before starting some operation where doing so lazily will cause issues, such as when the - operation is part of a transaction. - - - If set to true the initializer is run even if it has already been run. - - - - - Checks whether or not the database is compatible with the the current Code First model. - - - Model compatibility currently uses the following rules. - If the context was created using either the Model First or Database First approach then the - model is assumed to be compatible with the database and this method returns true. - For Code First the model is considered compatible if the model is stored in the database - in the Migrations history table and that model has no differences from the current model as - determined by Migrations model differ. - If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, - then this is used to check for compatibility. - - - If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found. - - True if the model hash in the context and the database match; false otherwise. - - - - Creates a new database on the database server for the model defined in the backing context. - Note that calling this method before the database initialization strategy has run will disable - executing that strategy. - - - - - Creates a new database on the database server for the model defined in the backing context, but only - if a database with the same name does not already exist on the server. - - True if the database did not exist and was created; false otherwise. - - - - Checks whether or not the database exists on the server. - - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - Calling this method from outside of an initializer will mark the database as having - not been initialized. This means that if an attempt is made to use the database again - after it has been deleted, then any initializer set will run again and, usually, will - try to create the database again automatically. - - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - The connection to the database is created using the given database name or connection string - in the same way as is described in the documentation for the class. - - The database name or a connection string to the database. - True if the database did exist and was deleted; false otherwise. - - - - Checks whether or not the database exists on the server. - - An existing connection to the database. - True if the database exists; false otherwise. - - - - Deletes the database on the database server if it exists, otherwise does nothing. - - An existing connection to the database. - True if the database did exist and was deleted; false otherwise. - - - - Creates a raw SQL query that will return elements of the given generic type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Creates a raw SQL query that will return elements of the given type. - The type can be any type that has properties that match the names of the columns returned - from the query, or can be a simple primitive type. The type does not have to be an - entity type. The results of this query are never tracked by the context even if the - type of object returned is an entity type. Use the - method to return entities that are tracked by the context. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The type of object returned by the query. - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - If there isn't an existing local or ambient transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - The result returned by the database after executing the command. - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command string. - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command string. - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - If there isn't an existing local transaction a new transaction will be used - to execute the command. - - The command string. - - A to observe while waiting for the task to complete. - - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - Asynchronously executes the given DDL/DML command against the database. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - Controls the creation of a transaction for this command. - The command string. - - A to observe while waiting for the task to complete. - - The parameters to apply to the command string. - - A task that represents the asynchronous operation. - The task result contains the result returned by the database after executing the command. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the transaction the underlying store connection is enlisted in. May be null. - - - - - Returns the connection being used by this context. This may cause the - connection to be created if it does not already exist. - - Thrown if the context has been disposed. - - - - The connection factory to use when creating a from just - a database name or a connection string. - - - This is used when just a database name or connection string is given to or when - the no database name or connection is given to DbContext in which case the name of - the context class is passed to this factory in order to generate a DbConnection. - By default, the instance to use is read from the application's .config - file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in - the config file then is used. Setting this property in code - always overrides whatever value is found in the config file. - - - - - Gets or sets the timeout value, in seconds, for all context operations. - The default value is null, where null indicates that the default value of the underlying - provider will be used. - - - The timeout, in seconds, or null to use the provider default. - - - - - Set this property to log the SQL generated by the to the given - delegate. For example, to log to the console, set this property to . - - - The format of the log text can be changed by creating a new formatter that derives from - and setting it with . - For more low-level control over logging/interception see and - . - - - - - DbModelBuilder is used to map CLR classes to a database schema. - This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. - - - DbModelBuilder is typically used to configure a model by overriding - DbContext.OnModelCreating(DbModelBuilder) - . - You can also use DbModelBuilder independently of DbContext to build a model and then construct a - or . - The recommended approach, however, is to use OnModelCreating in as - the workflow is more intuitive and takes care of common tasks, such as caching the created model. - Types that form your model are registered with DbModelBuilder and optional configuration can be - performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder - API. - When the Build method is called a set of conventions are run to discover the initial model. - These conventions will automatically discover aspects of the model, such as primary keys, and - will also process any data annotations that were specified on your classes. Finally - any configuration that was performed using the DbModelBuilder API is applied. - Configuration done via the DbModelBuilder API takes precedence over data annotations which - in turn take precedence over the default conventions. - - - - - Initializes a new instance of the class. - The process of discovering the initial model will use the set of conventions included - in the most recent version of the Entity Framework installed on your machine. - - - Upgrading to newer versions of the Entity Framework may cause breaking changes - in your application because new conventions may cause the initial model to be - configured differently. There is an alternate constructor that allows a specific - version of conventions to be specified. - - - - - Initializes a new instance of the class that will use - a specific set of conventions to discover the initial model. - - The version of conventions to be used. - - - - Excludes a type from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The type to be excluded. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Configures the default database schema name. This default database schema name is used - for database objects that do not have an explicitly configured schema name. - - The name of the default database schema. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Excludes the specified type(s) from the model. This is used to remove types from the model that were added - by convention during initial model discovery. - - The types to be excluded from the model. - The same DbModelBuilder instance so that multiple calls can be chained. - - - - Registers an entity type as part of the model and returns an object that can be used to - configure the entity. This method can be called multiple times for the same entity to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified entity type. - - - - Registers an entity type as part of the model. - - The type to be registered. - - This method is provided as a convenience to allow entity types to be registered dynamically - without the need to use MakeGenericMethod in order to call the normal generic Entity method. - This method does not allow further configuration of the entity type using the fluent APIs since - these APIs make extensive use of generic type parameters. - - - - - Registers a type as a complex type in the model and returns an object that can be used to - configure the complex type. This method can be called multiple times for the same type to - perform multiple lines of configuration. - - The type to be registered or configured. - The configuration object for the specified complex type. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types in - the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all entities and complex types - in the model that inherit from or implement the type specified by the generic argument. - This method does not register types as part of the model. - - The type of the entities or complex types that this convention will apply to. - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all properties - in the model. - - A configuration object for the convention. - - - - Begins configuration of a lightweight convention that applies to all primitive - properties of the specified type in the model. - - The type of the properties that the convention will apply to. - A configuration object for the convention. - - The convention will apply to both nullable and non-nullable properties of the - specified type. - - - - - Creates a based on the configuration performed using this builder. - The connection is used to determine the database provider being used as this - affects the database layer of the generated model. - - Connection to use to determine provider information. - The model that was built. - - - - Creates a based on the configuration performed using this builder. - Provider information must be specified because this affects the database layer of the generated model. - For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) - - The database provider that the model will be used with. - The model that was built. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Provides access to the settings of this DbModelBuilder that deal with conventions. - - - - - Gets the for this DbModelBuilder. - The registrar allows derived entity and complex type configurations to be registered with this builder. - - - - - A value from this enumeration can be provided directly to the - class or can be used in the applied to - a class derived from . The value used defines which version of - the DbContext and DbModelBuilder conventions should be used when building a model from - code--also known as "Code First". - - - Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available - when upgrading to a new release of the Entity Framework. However, it may result in an - application behaving differently with the new release than it did with a previous release. - This can be avoided by using a specific version of the conventions, but if a version - other than the latest is set then not all the latest functionality will be available. - - - - - Indicates that the latest version of the and - conventions should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v4.1 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - when targeting .Net Framework 4 should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v5.0 - should be used. - - - - - Indicates that the version of the and - conventions shipped with Entity Framework v6.0 - should be used. - - - - - This attribute can be applied to a class derived from to set which - version of the DbContext and conventions should be used when building - a model from code--also known as "Code First". See the - enumeration for details about DbModelBuilder versions. - - - If the attribute is missing from DbContextthen DbContext will always use the latest - version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. - - - - - Initializes a new instance of the class. - - - The conventions version to use. - - - - - Gets the conventions version. - - - The conventions version. - - - - - A non-generic version of which can be used when the type of entity - is not known at build time. - - - - - Represents a non-generic LINQ to Entities query against a DbContext. - - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new DbQuery<T> with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Returns the equivalent generic object. - - The type of element for which the query was created. - The generic set object. - - - - Returns a representation of the underlying query. - - The query string. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Returns the equivalent generic object. - - The type of entity for which the set was created. - The generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values - will not be available until the results have been read completely. This is due to the underlying - behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - A DbSet represents the collection of all entities in the context, or that can be queried from the - database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. - - - Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a - one-to-one correlation between a type and a set. - - The type that defines the set. - - - - Represents a LINQ to Entities query against a DbContext. - - The type of entity to query for. - - - - Specifies the related objects to include in the query results. - - - Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will - OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on - the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected. - Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to - specify multiple paths for the query. - - The dot-separated list of related objects to return in the query results. - - A new with the defined query path. - - - - - Returns a new query where the entities returned will not be cached in the . - - A new query with NoTracking applied. - - - - Returns a new query that will stream the results instead of buffering. - - A new query with AsStreaming applied. - - - - Throws an exception indicating that binding directly to a store query is not supported. - Instead populate a DbSet with data, for example by using the Load extension method, and - then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to - DbSet.Local.ToBindingList(). - - Never returns; always throws. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns an which when enumerated will execute the query against the database. - - The query results. - - - - Returns a representation of the underlying query. - - The query string. - - - - Returns a new instance of the non-generic class for this query. - - The query. - A non-generic version. - - - - - - - - - - - - - Returns false. - - - false . - - - - - The IQueryable element type. - - - - - The IQueryable LINQ Expression. - - - - - The IQueryable provider. - - - - - An represents the collection of all entities in the context, or that - can be queried from the database, of a given type. is a concrete - implementation of IDbSet. - - - was originally intended to allow creation of test doubles (mocks or - fakes) for . However, this approach has issues in that adding new members - to an interface breaks existing code that already implements the interface without the new members. - Therefore, starting with EF6, no new members will be added to this interface and it is recommended - that be used as the base class for test doubles. - - The type that defines the set. - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - - - - Adds the given entity to the context underlying the set in the Added state such that it will - be inserted into the database when SaveChanges is called. - - The entity to add. - The entity. - - Note that entities that are already in the context in some other state will have their state set - to Added. Add is a no-op if the entity is already in the context in the Added state. - - - - - Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges - is called. Note that the entity must exist in the context in some other state before this method - is called. - - The entity to remove. - The entity. - - Note that if the entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - Attaches the given entity to the context underlying the set. That is, the entity is placed - into the context in the Unchanged state, just as if it had been read from the database. - - The entity to attach. - The entity. - - Attach is used to repopulate a context with an entity that is known to already exist in the database. - SaveChanges will therefore not attempt to insert an attached entity into the database because - it is assumed to already be there. - Note that entities that are already in the context in some other state will have their state set - to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. - - - - - Creates a new instance of an entity for the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The entity instance, which may be a proxy. - - - - Creates a new instance of an entity for the type of this set or for a type derived - from the type of this set. - Note that this instance is NOT added or attached to the set. - The instance returned will be a proxy if the underlying context is configured to create - proxies and the entity type meets the requirements for creating a proxy. - - The type of entity to create. - The entity instance, which may be a proxy. - - - - Gets an that represents a local view of all Added, Unchanged, - and Modified entities in this set. This local view will stay in sync as entities are added or - removed from the context. Likewise, entities added to or removed from the local view will automatically - be added to or removed from the context. - - - This property can be used for data binding by populating the set with data, for example by using the Load - extension method, and then binding to the local data through this property. For WPF bind to this property - directly. For Windows Forms bind to the result of calling ToBindingList on this property - - The local view. - - - - Creates an instance of a when called from the constructor of a derived - type that will be used as a test double for DbSets. Methods and properties that will be used by the - test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where - the default implementation is a no-op. - - - - - Finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - - The values of the primary key for the entity to be found. - The entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - Thrown if multiple entities exist in the context with the primary key values given. - Thrown if the type of entity is not part of the data model for this context. - Thrown if the types of the key values do not match the types of the key values for the entity type to be found. - Thrown if the context has been disposed. - - - - Asynchronously finds an entity with the given primary key values. - If an entity with the given primary key values exists in the context, then it is - returned immediately without making a request to the store. Otherwise, a request - is made to the store for an entity with the given primary key values and this entity, - if found, is attached to the context and returned. If no entity is found in the - context or the store, then null is returned. - - - The ordering of composite key values is as defined in the EDM, which is in turn as defined in - the designer, by the Code First fluent API, or by the DataMember attribute. - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - The values of the primary key for the entity to be found. - A task that represents the asynchronous find operation. The task result contains the entity found, or null. - - - - - - - - - - Adds the given collection of entities into context underlying the set with each entity being put into - the Added state such that it will be inserted into the database when SaveChanges is called. - - The collection of entities to add. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before adding any entities and will not be called - again. This means that in some situations AddRange may perform significantly better than calling - Add multiple times would do. - Note that entities that are already in the context in some other state will have their state set to - Added. AddRange is a no-op for entities that are already in the context in the Added state. - - - - - - - - Removes the given collection of entities from the context underlying the set with each entity being put into - the Deleted state such that it will be deleted from the database when SaveChanges is called. - - The collection of entities to delete. - - The collection of entities. - - - Note that if is set to true (which is - the default), then DetectChanges will be called once before delete any entities and will not be called - again. This means that in some situations RemoveRange may perform significantly better than calling - Remove multiple times would do. - Note that if any entity exists in the context in the Added state, then this method - will cause it to be detached from the context. This is because an Added entity is assumed not to - exist in the database such that trying to delete it does not make sense. - - - - - - - - - - - Returns the equivalent non-generic object. - - The generic set object. - The non-generic set object. - - - - Creates a raw SQL query that will return entities in this set. By default, the - entities returned are tracked by the context; this can be changed by calling - AsNoTracking on the returned. - Note that the entities returned are always of the type for this set and never of - a derived type. If the table or tables queried may contain data for other entity - types, then the SQL query must be written appropriately to ensure that only entities of - the correct type are returned. - - As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); - Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string. - context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); - - The SQL query string. - - The parameters to apply to the SQL query string. If output parameters are used, their values will - not be available until the results have been read completely. This is due to the underlying behavior - of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details. - - - A object that will execute the query when it is enumerated. - - - - - - - - - - - - - - - - - An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the - database the first time that a context is used in the app domain. - To seed the database, create a derived class and override the Seed method. - - The type of the context. - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the - database only if the model has changed since the database was created. - - The type of the context. - - Whether or not the model has changed is determined by the - method. - To seed the database create a derived class and override the Seed method. - - - - Initializes a new instance of the class. - - - - Executes the strategy to initialize the database for the given context. - - The context. - - - is - null - . - - - - - A method that should be overridden to actually add data to the context for seeding. - The default implementation does nothing. - - The context to seed. - - - - Returned by the ChangeTracker method of to provide access to features of - the context that are related to change tracking of entities. - - - - - Gets objects for all the entities tracked by this context. - - The entries. - - - - Gets objects for all the entities of the given type - tracked by this context. - - The type of the entity. - The entries. - - - - Checks if the is tracking any new, deleted, or changed entities or - relationships that will be sent to the database if is called. - - - Functionally, calling this method is equivalent to checking if there are any entities or - relationships in the Added, Updated, or Deleted state. - Note that this method calls unless - has been set to false. - - - True if underlying have changes, else false. - - - - - Detects changes made to the properties and relationships of POCO entities. Note that some types of - entity (such as change tracking proxies and entities that derive from - ) - report changes automatically and a call to DetectChanges is not normally needed for these types of entities. - Also note that normally DetectChanges is called automatically by many of the methods of - and its related classes such that it is rare that this method will need to be called explicitly. - However, it may be desirable, usually for performance reasons, to turn off this automatic calling of - DetectChanges using the AutoDetectChangesEnabled flag from . - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - A non-generic version of the class. - - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the name of the property. - - The property name. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the collection element. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Collection method of - and allow operations such as loading to - be performed on the an entity's collection navigation properties. - - The type of the entity to which this property belongs. - The type of the element in the collection of entities. - - - - This is an abstract base class use to represent a scalar or complex property, or a navigation property - of an entity. Scalar and complex properties use the derived class , - reference navigation properties use the derived class , and collection - navigation properties use the derived class . - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Validates this property. - - - Collection of objects. Never null. If the entity is valid the collection will be empty. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Gets the name of the property. - The name of the property. - - - - Gets or sets the current value of this property. - - The current value. - - - - The to which this member belongs. - - An entry for the entity that owns this member. - - - - Loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the collection of entities from the database. - Note that entities that already exist in the context are not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this collection from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database, such - as counting the number of entities in the collection in the database without actually loading them. - - A query for the collection. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether all entities of this collection have been loaded from the database. - - - Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded. - This can be useful if the application has caused a subset of related entities to be loaded into this collection - and wants to prevent any other entities from being loaded automatically. - Note that explict loading using one of the Load methods will load all related entities from the database - regardless of whether or not IsLoaded is true. - When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the - not all related entities are now loaded. - - - true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - An immutable representation of an Entity Data Model (EDM) model that can be used to create an - or can be passed to the constructor of a . - For increased performance, instances of this type should be cached and re-used to construct contexts. - - - - - Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance - of DbContext can be created instead by using the appropriate DbContext constructor. - If a derived ObjectContext is used, then it must have a public constructor with a single - EntityConnection parameter. - The connection passed is used by the ObjectContext created, but is not owned by the context. The caller - must dispose of the connection once the context has been disposed. - - The type of context to create. - An existing connection to a database for use by the context. - The context. - - - - A non-generic version of the class. - - - - - A non-generic version of the class. - - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - Setting this value to false for a modified property will revert the change by setting the - current value to the original value. If the result is that no properties of the entity are - marked as modified, then the entity will be marked as Unchanged. - Setting this value to false for properties of Added, Unchanged, or Deleted entities - is a no-op. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the complex property. - The equivalent generic object. - - - - Instances of this class are returned from the ComplexProperty method of - and allow access to the state of a complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Instances of this class are returned from the Property method of - and allow access to the state of the scalar - or complex property. - - The type of the entity to which this property belongs. - The type of the property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the original value of this property. - - The original value. - - - - Gets or sets the current value of this property. - - The current value. - - - - Gets or sets a value indicating whether the value of this property has been modified since - it was loaded from the database. - - - true if this instance is modified; otherwise, false . - - - - - The to which this property belongs. - - An entry for the entity that owns this property. - - - - The of the property for which this is a nested property. - This method will only return a non-null entry for properties of complex objects; it will - return null for properties of the entity itself. - - An entry for the parent complex property, or null if this is an entity property. - - - - Returns a new instance of the non-generic class for - the property represented by this object. - - The object representing the property. - A non-generic version. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested property of this property. - This method can be used for both scalar or complex properties. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - The name of the nested property. - An object representing the nested property. - - - - Gets an object that represents a nested complex property of this property. - - The type of the nested property. - An expression representing the nested property. - An object representing the nested property. - - - - Describes the origin of the database connection string associated with a . - - - - - The connection string was created by convention. - - - - - The connection string was read from external configuration. - - - - - The connection string was explicitly specified at runtime. - - - - - The connection string was overriden by connection information supplied to DbContextInfo. - - - - - Returned by the Configuration method of to provide access to configuration - options for the context. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction. - - - This flag determines whether a new transaction will be started when methods such as - are executed outside of a transaction. - Note that this does not change the behavior of . - - - The default transactional behavior. - - - - - Gets or sets a value indicating whether lazy loading of relationships exposed as - navigation properties is enabled. Lazy loading is enabled by default. - - - true if lazy loading is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether or not the framework will create instances of - dynamically generated proxy classes whenever it creates an instance of an entity type. - Note that even if proxy creation is enabled with this flag, proxy instances will only - be created for entity types that meet the requirements for being proxied. - Proxy creation is enabled by default. - - - true if proxy creation is enabled; otherwise, false . - - - - - Gets or sets a value indicating whether database null semantics are exhibited when comparing - two operands, both of which are potentially nullable. The default value is false. - - For example (operand1 == operand2) will be translated as: - - (operand1 = operand2) - - if UseDatabaseNullSemantics is true, respectively - - (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL))) - - if UseDatabaseNullSemantics is false. - - - true if database null comparison behavior is enabled, otherwise false . - - - - - Gets or sets a value indicating whether the - method is called automatically by methods of and related classes. - The default value is true. - - - true if should be called automatically; otherwise, false. - - - - - Gets or sets a value indicating whether tracked entities should be validated automatically when - is invoked. - The default value is true. - - - - - Provides runtime information about a given type. - - - - - Creates a new instance representing a given type. - - - The type deriving from . - - - - - Creates a new instance representing a given targeting a specific database. - - - The type deriving from . - - Connection information for the database to be used. - - - - Creates a new instance representing a given type. An external list of - connection strings can be supplied and will be used during connection string resolution in place - of any connection strings specified in external configuration files. - - - It is preferable to use the constructor that accepts the entire config document instead of using this - constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config - to be found in addition to explicitly specified connection strings. - - - The type deriving from . - - A collection of connection strings. - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - - - - Creates a new instance representing a given , targeting a specific database. - An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - - - The type deriving from . - - An object representing the config file. - Connection information for the database to be used. - - - - Creates a new instance representing a given type. A - can be supplied in order to override the default determined provider used when constructing - the underlying EDM model. - - - The type deriving from . - - - A specifying the underlying ADO.NET provider to target. - - - - - Creates a new instance representing a given type. An external config - object (e.g. app.config or web.config) can be supplied and will be used during connection string - resolution. This includes looking for connection strings and DefaultConnectionFactory entries. - A can be supplied in order to override the default determined - provider used when constructing the underlying EDM model. This can be useful to prevent EF from - connecting to discover a manifest token. - - - The type deriving from . - - An object representing the config file. - - A specifying the underlying ADO.NET provider to target. - - - - - If instances of the underlying type can be created, returns - a new instance; otherwise returns null. - - - A instance. - - - - - The concrete type. - - - - - Whether or not instances of the underlying type can be created. - - - - - The connection string used by the underlying type. - - - - - The connection string name used by the underlying type. - - - - - The ADO.NET provider name of the connection used by the underlying type. - - - - - The origin of the connection string used by the underlying type. - - - - - An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. - - - - - A non-generic version of the class. - - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Returns a new instance of the generic class for the given - generic type for the tracked entity represented by this object. - Note that the type of the tracked entity must be compatible with the generic type or - an exception will be thrown. - - The type of the entity. - A generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Instances of this class provide access to information about and control of entities that - are being tracked by the . Use the Entity or Entities methods of - the context to obtain objects of this type. - - The type of the entity. - - - - Queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - The store values. - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database. - Note that changing the values in the returned dictionary will not update the values in the database. - If the entity is not found in the database then null is returned. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - The task result contains the store values. - - - - - Reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously reloads the entity from the database overwriting any property values with values from the database. - The entity will be in the Unchanged state after calling this method. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the reference (i.e. non-collection) navigation property from this - entity to another entity. - - The type of the property. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - The name of the navigation property. - An object representing the navigation property. - - - - Gets an object that represents the collection navigation property from this - entity to a collection of related entities. - - The type of elements in the collection. - An expression representing the navigation property. - An object representing the navigation property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - The name of the property. - An object representing the property. - - - - Gets an object that represents a scalar or complex property of this entity. - - The type of the property. - An expression representing the property. - An object representing the property. - - - - Gets an object that represents a complex property of this entity. - - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - The name of the complex property. - An object representing the complex property. - - - - Gets an object that represents a complex property of this entity. - - The type of the complex property. - An expression representing the complex property. - An object representing the complex property. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The name of the member. - An object representing the member. - - - - Gets an object that represents a member of the entity. The runtime type of the returned object will - vary depending on what kind of member is asked for. The currently supported member types and their return - types are: - Reference navigation property: . - Collection navigation property: . - Primitive/scalar property: . - Complex property: . - - The type of the member. - The name of the member. - An object representing the member. - - - - Returns a new instance of the non-generic class for - the tracked entity represented by this object. - - The object representing the tracked entity. - A non-generic version. - - - - Validates this instance and returns validation result. - - - Entity validation result. Possibly null if - DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object}) - method is overridden. - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Determines whether the specified is equal to this instance. - Two instances are considered equal if they are both entries for - the same entity on the same . - - - The to compare with this instance. - - - true if the specified is equal to this instance; otherwise, false . - - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the entity. - - The entity. - - - - Gets or sets the state of the entity. - - The state. - - - - Gets the current property values for the tracked entity represented by this object. - - The current values. - - - - Gets the original property values for the tracked entity represented by this object. - The original values are usually the entity's property values as they were when last queried from - the database. - - The original values. - - - - Represents an Entity Data Model (EDM) created by the . - The Compile method can be used to go from this EDM representation to a - which is a compiled snapshot of the model suitable for caching and creation of - or instances. - - - - - Creates a for this mode which is a compiled snapshot - suitable for caching and creation of instances. - - The compiled model. - - - - Gets the provider information. - - - - - Gets the provider manifest. - - - - - Gets the conceptual model. - - - - - Gets the store model. - - - - - Gets the mapping model. - - - - - A collection of all the properties for an underlying entity or complex object. - - - An instance of this class can be converted to an instance of the generic class - using the Cast method. - Complex properties in the underlying entity or complex object are represented in - the property values as nested instances of this class. - - - - - Creates an object of the underlying type for this dictionary and hydrates it with property - values from this dictionary. - - The properties of this dictionary copied into a new object. - - - - Sets the values of this dictionary by reading values out of the given object. - The given object can be of any type. Any property on the object with a name that - matches a property name in the dictionary and can be read will be read. Other - properties will be ignored. This allows, for example, copying of properties from - simple Data Transfer Objects (DTOs). - - The object to read values from. - - - - Creates a new dictionary containing copies of all the properties in this dictionary. - Changes made to the new dictionary will not be reflected in this dictionary and vice versa. - - A clone of this dictionary. - - - - Sets the values of this dictionary by reading values from another dictionary. - The other dictionary must be based on the same type as this dictionary, or a type derived - from the type for this dictionary. - - The dictionary to read values from. - - - - Gets the value of the property just like using the indexed property getter but - typed to the type of the generic parameter. This is useful especially with - nested dictionaries to avoid writing expressions with lots of casts. - - The type of the property. - Name of the property. - The value of the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Gets the set of names of all properties in this dictionary as a read-only set. - - The property names. - - - - Gets or sets the value of the property with the specified property name. - The value may be a nested instance of this class. - - The property name. - The value of the property. - - - - Groups a pair of strings that identify a provider and server version together into a single object. - - - Instances of this class act as the key for resolving a for a specific - provider from a . This is typically used when registering spatial services - in or when the spatial services specific to a provider is - resolved by an implementation of . - - - - - Creates a new object for a given provider invariant name and manifest token. - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - The manifest token is sometimes referred to as a version hint. - - - - - - - - - - - A string that identifies that provider. For example, the SQL Server - provider uses the string "System.Data.SqlCient". - - - - - A string that identifies that version of the database server being used. For example, the SQL Server - provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty. - - - - - A non-generic version of the class. - - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns the equivalent generic object. - - The type of entity on which the member is declared. - The type of the property. - The equivalent generic object. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Instances of this class are returned from the Reference method of - and allow operations such as loading to - be performed on the an entity's reference navigation properties. - - The type of the entity to which this property belongs. - The type of the property. - - - - Loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A task that represents the asynchronous operation. - - - - - Asynchronously loads the entity from the database. - Note that if the entity already exists in the context, then it will not overwritten with values from the database. - - - Multiple active operations on the same context instance are not supported. Use 'await' to ensure - that any asynchronous operations have completed before calling another method on this context. - - - A to observe while waiting for the task to complete. - - - A task that represents the asynchronous operation. - - - - - Returns the query that would be used to load this entity from the database. - The returned query can be modified using LINQ to perform filtering or operations in the database. - - A query for the entity. - - - - Returns a new instance of the non-generic class for - the navigation property represented by this object. - - The object representing the navigation property. - A non-generic version. - - - - Gets the property name. - - The property name. - - - - Gets or sets the current value of the navigation property. The current value is - the entity that the navigation property references. - - The current value. - - - - Gets or sets a value indicating whether the entity has been loaded from the database. - - - Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly - with one of the Load methods will set the IsLoaded flag to true. - IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded. - Note that explict loading using one of the Load methods will load the related entity from the database - regardless of whether or not IsLoaded is true. - When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is - no longer loaded. - - - true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false. - - - - - The to which this navigation property belongs. - - An entry for the entity that owns this navigation property. - - - - Exception thrown by when it was expected that SaveChanges for an entity would - result in a database update but in fact no rows in the database were affected. This usually indicates - that the database has been concurrently updated such that a concurrency token that was expected to match - did not actually match. - Note that state entries referenced by this exception are not serialized due to security and accesses to - the state entries after serialization will return null. - - - - - Exception thrown by when the saving of changes to the database fails. - Note that state entries referenced by this exception are not serialized due to security and accesses to the - state entries after serialization will return null. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Gets objects that represents the entities that could not - be saved to the database. - - The entries representing the entities that could not be saved. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Represents an entity used to store metadata about an EDM in the database. - - - - - Attempts to get the model hash calculated by Code First for the given context. - This method will return null if the context is not being used in Code First mode. - - The context. - The hash string. - - - - Gets or sets the ID of the metadata entity, which is currently always 1. - - The id. - - - - Gets or sets the model hash which is used to check whether the model has - changed since the database was created from it. - - The model hash. - - - - Contains methods used to access the Entity Data Model created by Code First in the EDMX form. - These methods are typically used for debugging when there is a need to look at the model that - Code First creates internally. - - - - - Uses Code First with the given context and writes the resulting Entity Data Model to the given - writer in EDMX form. This method can only be used with context instances that use Code First - and create the model internally. The method cannot be used for contexts created using Database - First or Model First, for contexts created using a pre-existing , or - for contexts created using a pre-existing . - - The context. - The writer. - - - - Writes the Entity Data Model represented by the given to the - given writer in EDMX form. - - An object representing the EDM. - The writer. - - - - A factory for creating derived instances. Implement this - interface to enable design-time services for context types that do not have a - public default constructor. - At design-time, derived instances can be created in order to enable specific - design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation - for derived types that do not have a public, default constructor, implement - this interface. Design-time services will auto-discover implementations of this interface that are in the - same assembly as the derived type. - - The type of the context. - - - - Creates a new instance of a derived type. - - An instance of TContext - - - - This convention causes DbModelBuilder to include metadata about the model - when it builds the model. When creates a model by convention it will - add this convention to the list of those used by the DbModelBuilder. This will then result in - model metadata being written to the database if the DbContext is used to create the database. - This can then be used as a quick check to see if the model has changed since the last time it was - used against the database. - This convention can be removed from the conventions by overriding - the OnModelCreating method on a derived DbContext class. - - - - - This convention uses the name of the derived - class as the container for the conceptual model built by - Code First. - - - - - Applies the convention to the given model. - - The container to apply the convention to. - The model. - - - - This convention uses the namespace of the derived - class as the namespace of the conceptual model built by - Code First. - - - - - Instances of this class are used internally to create constant expressions for - that are inserted into the expression tree to replace references to - and . - - The type of the element. - - - - The public property expected in the LINQ expression tree. - - The query. - - - - Instances of this class are used to create DbConnection objects for - SQL Server Compact Edition based on a given database name or connection string. - - - It is necessary to provide the provider invariant name of the SQL Server Compact - Edition to use when creating an instance of this class. This is because different - versions of SQL Server Compact Editions use different invariant names. - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server Compact Edition by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString - properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - - - - Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. - - The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. - The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. - The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server Compact Edition based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The path to prepend to the database name that will form the file name used by - SQL Server Compact Edition when it creates or reads the database file. - The default value is "|DataDirectory|", which means the file will be placed - in the designated data directory. - - - - - The connection string to use for options to the database other than the 'Data Source'. - The Data Source will be prepended to this string based on the database name when - CreateConnection is called. - The default is the empty string, which means no other options will be used. - - - - - The provider invariant name that specifies the version of SQL Server Compact Edition - that should be used. - - - - - Instances of this class are used to create DbConnection objects for - SQL Server based on a given database name or connection string. By default, the connection is - made to '.\SQLEXPRESS'. This can be changed by changing the base connection - string when constructing a factory instance. - - - An instance of this class can be set on the class to - cause all DbContexts created with no connection information or just a database - name or connection string to use SQL Server by default. - This class is immutable since multiple threads may access instances simultaneously - when creating connections. - - - - - Creates a new connection factory with a default BaseConnectionString property of - 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'. - - - - - Creates a new connection factory with the given BaseConnectionString property. - - The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. - - - - Creates a connection for SQL Server based on the given database name or connection string. - If the given string contains an '=' character then it is treated as a full connection string, - otherwise it is treated as a database name only. - - The database name or connection string. - An initialized DbConnection. - - - - The connection string to use for options to the database other than the 'Initial Catalog'. - The 'Initial Catalog' will be prepended to this string based on the database name when - CreateConnection is called. - The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'. - - - - - This attribute can be applied to either an entire derived class or to - individual or properties on that class. When applied - any discovered or properties will still be included - in the model but will not be automatically initialized. - - - - - Thrown when a context is generated from the templates in Database First or Model - First mode and is then used in Code First mode. - - - Code generated using the T4 templates provided for Database First and Model First use may not work - correctly if used in Code First mode. To use these classes with Code First please add any additional - configuration using attributes or the DbModelBuilder API and then remove the code that throws this - exception. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Allows configuration to be performed for an complex type in a model. - A ComplexTypeConfiguration can be obtained via the ComplexType method on - or a custom type derived from ComplexTypeConfiguration - can be registered via the Configurations property on . - - The complex type to be configured. - - - - Allows configuration to be performed for a type in a model. - - The type to be configured. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is defined on this type. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Initializes a new instance of ComplexTypeConfiguration - - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same ComplexTypeConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Allows derived configuration classes for entities and complex types to be registered with a - . - - - Derived configuration classes are created by deriving from - or and using a type to be included in the model as the generic - parameter. - Configuration can be performed without creating derived configuration classes via the Entity and ComplexType - methods on . - - - - - Discovers all types that inherit from or - in the given assembly and adds an instance - of each discovered type to this registrar. - - - Note that only types that are abstract or generic type definitions are skipped. Every - type that is discovered and added must provide a parameterless constructor. - - The assembly containing model configurations to add. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The entity type being configured. - The entity type configuration to be added. - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - Adds an to the . - Only one can be added for each type in a model. - - The complex type being configured. - The complex type configuration to be added - The same ConfigurationRegistrar instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Allows the conventions used by a instance to be customized. - The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. - - - - - Discover all conventions in the given assembly and add them to the . - - - This method add all conventions ordered by type name. The order in which conventions are added - can have an impact on how they behave because it governs the order in which they are run. - All conventions found must have a parameterless public constructor. - - The assembly containing conventions to be added. - - - - Enables one or more conventions for the . - - The conventions to be enabled. - - - - Enables a convention for the . - - The type of the convention to be enabled. - - - - Enables a convention for the . This convention - will run after the one specified. - - The type of the convention after which the enabled one will run. - The convention to enable. - - - - Enables a configuration convention for the . This convention - will run before the one specified. - - The type of the convention before which the enabled one will run. - The convention to enable. - - - - Disables one or more conventions for the . - - The conventions to be disabled. - - - - Disables a convention for the . - The default conventions that are available for removal can be found in the - System.Data.Entity.ModelConfiguration.Conventions namespace. - - The type of the convention to be disabled. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. - This configuration functionality is available via the Code First Fluent API, see . - - The entity type to be mapped. - - - Initializes a new instance of the class. - - - - Configures the properties that will be included in this mapping fragment. - If this method is not called then all properties that have not yet been - included in a mapping fragment will be configured. - - An anonymous type including the properties to be mapped. - A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - The type of the property being configured. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Configures a property that is included in this mapping fragment. - - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to configure the property. - - - - Re-maps all properties inherited from base types. - When configuring a derived type to be mapped to a separate table this will cause all properties to - be included in the table rather than just the non-inherited properties. This is known as - Table per Concrete Type (TPC) mapping. - - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name to be mapped to. - - Name of the table. - The same configuration instance so that multiple calls can be chained. - - - - Configures the table name and schema to be mapped to. - - Name of the table. - Schema of the table. - The same configuration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the discriminator column used to differentiate between types in an inheritance hierarchy. - - The name of the discriminator column. - A configuration object to further configure the discriminator column and values. - - - - Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. - - The type of the property being used to discriminate between types. - A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object to further configure the discriminator condition. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . - - - - - Configures a primitive column from an entity type. - - - - Configures the primitive column to be optional. - The same instance so that multiple calls can be chained. - - - Configures the primitive column to be required. - The same instance so that multiple calls can be chained. - - - Configures the data type of the primitive column used to store the property. - The same instance so that multiple calls can be chained. - The name of the database provider specific data type. - - - Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key. - The same instance so that multiple calls can be chained. - The order that this column should appear in the database table. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - Configures the column to allow the maximum length supported by the database provider. - The same instance so that multiple calls can be chained. - - - Configures the column to have the specified maximum length. - The same instance so that multiple calls can be chained. - The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column. - - - Configures the column to be fixed length. - The same instance so that multiple calls can be chained. - - - Configures the column to be variable length. - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the condition to require a value in the property. - Rows that do not have a value assigned to column that this property is stored in are - assumed to be of the base type of this entity type. - - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a database column used to store a string values. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the column to allow the maximum length supported by the database provider. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - - The maximum length for the property. Setting 'null' will result in a default length being used for the column. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be variable length. - Columns are variable length by default. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be optional. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to be required. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column. - - Name of the database provider specific data type. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column. - - The order that this column should appear in the database table. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures the column to support Unicode string content. - - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the column supports Unicode string content. - - Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringColumnConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - Configures a discriminator column used to differentiate between types in an inheritance hierarchy. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - Type of the discriminator value. - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - Configures the discriminator value used to identify the entity type being - configured from other types in the inheritance hierarchy. - - The value to be used to identify the entity type. - A configuration object to configure the column used to store discriminator values. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a many relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be many:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be many:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an optional relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be optional:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:required without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A lambda expression representing the navigation property on the other end of the relationship. - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures an required relationship from an entity type. - - The entity type that the relationship originates from. - The entity type that the relationship targets. - - - - Configures the relationship to be required:many with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:many without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional with a navigation property on the other side of the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:optional without a navigation property on the other side of the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the dependent and contain a foreign key to the principal. - The entity type that the relationship targets will be the principal in the relationship. - - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required with a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures the relationship to be required:required without a navigation property on the other side of the relationship. - The entity type being configured will be the principal in the relationship. - The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. - - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Base class for performing configuration of a relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures a relationship that can support cascade on delete functionality. - - - - - Configures cascade delete to be on for the relationship. - - - - - Configures whether or not cascade delete is on for the relationship. - - Value indicating if cascade delete is on or not. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures a relationship that can support foreign key properties that are exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - The dependent entity type. - - - - Configures a relationship that can only support foreign key properties that are not exposed in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the relationship to use foreign key property(s) that are not exposed in the object model. - The column(s) and table can be customized by specifying a configuration action. - If an empty configuration action is specified then column name(s) will be generated by convention. - If foreign key properties are exposed in the object model then use the HasForeignKey method. - Not all relationships support exposing foreign key properties in the object model. - - Action that configures the foreign key column(s) and table. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the relationship to use foreign key property(s) that are exposed in the object model. - If the foreign key property(s) are not exposed in the object model then use the Map method. - - The type of the key. - A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the name of the column(s) for the foreign key. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for a database column that has been configured with . - The annotation value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The name of the column that was configured with the HasKey method. - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the table name and schema that the foreign key column(s) reside in. - The table that is specified must already be mapped for the entity type. - If you want the foreign key(s) to reside in their own table then use the Map method - on to perform - entity splitting to create the table with just the primary key property. Foreign keys can - then be added to the table via this method. - - Name of the table. - Schema of the table. - The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - - - - - - - Configures the table and column mapping of a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the join table name for the relationship. - - Name of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the join table name and schema for the relationship. - - Name of the table. - Schema of the table. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the join table. The annotation value can later be used when - processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the left foreign key. - The left foreign key points to the parent entity of the navigation property specified in the HasMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the column(s) for the right foreign key. - The right foreign key points to the parent entity of the the navigation property specified in the WithMany call. - - The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. - The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. - - - - - - Determines whether the specified object is equal to the current object. - true if the specified object is equal to the current object; otherwise, false. - The object to compare with the current object. - - - - - - - - - - - - - Configures a many:many relationship. - This configuration functionality is available via the Code First Fluent API, see . - - The type of the parent entity of the navigation property specified in the HasMany call. - The type of the parent entity of the navigation property specified in the WithMany call. - - - - Configures the foreign key column(s) and table used to store the relationship. - - Action that configures the foreign key column(s) and table. - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - The default conventions for procedure and parameter names will be used. - - The same instance so that multiple calls can be chained. - - - - Configures stored procedures to be used for modifying this relationship. - - - Configuration to override the default conventions for procedure and parameter names. - - The same instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a property with length facets for an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Used to configure a primitive property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the parameter used in stored procedures for this property. - - Name of the parameter. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. - - - - - - - - - - - - - Gets the of the current instance. - - The exact runtime type of the current instance. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - Properties are variable length by default. - - The same LengthPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to allow the maximum length supported by the database provider. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be a row version in the database. - The actual data type will vary depending on the database provider being used. - Setting the property to be a row version will automatically configure it to be an - optimistic concurrency token. - - The same BinaryPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision of the property. - If the database provider does not support precision for the data type of the column then the value is ignored. - - Precision of the property. - The same DateTimePropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - properties are required by default. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the precision and scale of the property. - - The precision of the property. - The scale of the property. - The same DecimalPropertyConfiguration instance so that multiple calls can be chained. - - - - Used to configure a property of an entity type or complex type. - This configuration functionality is available via the Code First Fluent API, see . - - - - - Configures the property to allow the maximum length supported by the database provider. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to have the specified maximum length. - - The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be fixed length. - Use HasMaxLength to set the length that the property is fixed to. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be variable length. - properties are variable length by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be optional. - The database column used to store this property will be nullable. - properties are optional by default. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be required. - The database column used to store this property will be non-nullable. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures how values for the property are generated by the database. - - - The pattern used to generate values for the property in the database. - Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending - on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which - set of conventions are being used. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to be used as an optimistic concurrency token. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property is to be used as an optimistic concurrency token. - - Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the name of the database column used to store the property. - - The name of the column. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the database column used to store the property. The annotation - value can later be used when processing the column such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the data type of the database column used to store the property. - - Name of the database provider specific data type. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the order of the database column used to store the property. - This method is also used to specify key ordering when an entity type has a composite key. - - The order that this column should appear in the database table. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures the property to support Unicode string content. - - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Configures whether or not the property supports Unicode string content. - - Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. - The same StringPropertyConfiguration instance so that multiple calls can be chained. - - - - Convention to process instances of found on properties in the model - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on foreign key properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on navigation properties in the model. - - - - - Convention to process instances of found on primitive properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on properties in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to process instances of found on types in the model. - - - - - - - - Convention to detect navigation properties to be inverses of each other when only one pair - of navigation properties exists between the related types. - - - - - - - - Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. - - - - - - - - Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. - - - - - Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties - - - - - Convention to set the table name to be a pluralized version of the entity type name. - - - - - - - - Convention to set precision to 18 and scale to 2 for decimal properties. - - - - - Initializes a new instance of with the default precision and scale. - - - - - Initializes a new instance of with the specified precision and scale. - - Precision - Scale - - - - - - - Convention to move primary key properties to appear first. - - - - - - - - Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. - - - - - - - - Base class for conventions that discover foreign key properties. - - - - - When overriden returns true if should be part of the foreign key. - - The association type being configured. - The dependent end. - The candidate property on the dependent end. - The principal end entity type. - A key property on the principal end that is a candidate target for the foreign key. - true if dependentProperty should be a part of the foreign key; otherwise, false. - - - - - - - Returns true if the convention supports pairs of entity types that have multiple associations defined between them. - - - - - Convention to process instances of found on navigation properties in the model. - - - - - - - - Convention to detect primary key properties. - Recognized naming patterns in order of precedence are: - 1. 'Id' - 2. [type name]Id - Primary key detection is case insensitive. - - - - - Base class for conventions that discover primary key properties. - - - - - - - - When overriden returns the subset of properties that will be part of the primary key. - - The entity type. - The primitive types of the entities - The properties that should be part of the primary key. - - - - - - - Convention to discover foreign key properties whose names are a combination - of the dependent navigation property name and the principal type primary key property name(s). - - - - - - - - - - - Convention to enable cascade delete for any required relationships. - - - - - - - - Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. - - - - - - - - Convention to set the entity set name to be a pluralized version of the entity type name. - - - - - - - - Convention to discover foreign key properties whose names match the principal type primary key property name(s). - - - - - - - - Convention to set a maximum length for properties whose type supports length facets. The default value is 128. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The maximum lenght of properties. - - - - - - - - - - - - - Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. - - - - - Initializes a new instance of with the default length. - - - - - Initializes a new instance of with the specified length. - - The default maximum length for properties. - - - - - - - - - - Convention to configure integer primary keys to be identity. - - - - - - - - Convention to discover foreign key properties whose names are a combination - of the principal type name and the principal type primary key property name(s). - - - - - - - - Allows configuration to be performed for an entity type in a model. - An EntityTypeConfiguration can be obtained via the Entity method on - or a custom type derived from EntityTypeConfiguration - can be registered via the Configurations property on . - - The entity type being configured. - - - - Initializes a new instance of EntityTypeConfiguration - - - - - Configures the primary key property(s) for this entity type. - - The type of the key. - A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the entity set name to be used for this entity type. - The entity set name can only be configured for the base type in each set. - - The name of the entity set. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Excludes a property from the model so that it will not be mapped to the database. - - The type of the property to be ignored. - A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures the table name that this entity type is mapped to. - - The name of the table. - The database schema of the table. - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Sets an annotation in the model for the table to which this entity is mapped. The annotation - value can later be used when processing the table such as when creating migrations. - - - It will likely be necessary to register a if the type of - the annotation value is anything other than a string. Passing a null value clears any annotation with - the given name on the column that had been previously set. - - The annotation name, which must be a valid C#/EDM identifier. - The annotation value, which may be a string or some other type that - can be serialized with an . - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - The default conventions for procedure and parameter names will be used. - - The same configuration instance so that multiple calls can be chained. - - - - Configures this type to use stored procedures for insert, update and delete. - - - Configuration to override the default conventions for procedure and parameter names. - - The same configuration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how this entity type is mapped to the database schema. - By default, any configuration will also apply to any type derived from this entity type. - Derived types can be configured via the overload of Map that configures a derived type or - by using an EntityTypeConfiguration for the derived type. - The properties of an entity can be split between multiple tables using multiple Map calls. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Allows advanced configuration related to how a derived entity type is mapped to the database schema. - Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. - - The derived entity type to be configured. - - An action that performs configuration against an - - . - - The same EntityTypeConfiguration instance so that multiple calls can be chained. - - - - Configures an optional relationship from this entity type. - Instances of the entity type will be able to be saved to the database without this relationship being specified. - The foreign key in the database will be nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a required relationship from this entity type. - Instances of the entity type will not be able to be saved to the database unless this relationship is specified. - The foreign key in the database will be non-nullable. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - Configures a many relationship from this entity type. - - The type of the entity at the other end of the relationship. - A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty - A configuration object that can be used to further configure the relationship. - - - - - - - - - - - - - - - - Exception thrown by during model creation when an invalid model is generated. - - - - - Initializes a new instance of ModelValidationException - - - - - Initializes a new instance of ModelValidationException - - The exception message. - - - - Initializes a new instance of ModelValidationException - - The exception message. - The inner exception. - - - Initializes a new instance of class serialization info and streaming context. - The serialization info. - The streaming context. - - - - Exception thrown from when validating entities fails. - - - - - Initializes a new instance of DbEntityValidationException. - - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbEntityValidationException. - - The exception message. - Validation results. - The inner exception. - - - - Validation results. - - - - - Represents validation results for single entity. - - - - - Creates an instance of class. - - Entity entry the results applies to. Never null. - - List of instances. Never null. Can be empty meaning the entity is valid. - - - - - Gets an instance of the results applies to. - - - - - Gets validation errors. Never null. - - - - - Gets an indicator if the entity is valid. - - - - - Exception thrown from when an exception is thrown from the validation - code. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - - - - Initializes a new instance of DbUnexpectedValidationException. - - The exception message. - The inner exception. - - - - Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and - context. - - The serialization info. - The streaming context. - - - - Validation error. Can be either entity or property level validation error. - - - - - Creates an instance of . - - Name of the invalid property. Can be null. - Validation error message. Can be null. - - - - Gets name of the invalid property. - - - - - Gets validation error message. - - - - diff --git a/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.Utility.dll b/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.Utility.dll deleted file mode 100644 index 4044c3d21..000000000 Binary files a/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.Utility.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.dll b/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.dll deleted file mode 100644 index 0c067d274..000000000 Binary files a/packages/EntityFramework.6.1.3/tools/EntityFramework.PowerShell.dll and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/tools/EntityFramework.psd1 b/packages/EntityFramework.6.1.3/tools/EntityFramework.psd1 deleted file mode 100644 index b186ac72f..000000000 Binary files a/packages/EntityFramework.6.1.3/tools/EntityFramework.psd1 and /dev/null differ diff --git a/packages/EntityFramework.6.1.3/tools/EntityFramework.psm1 b/packages/EntityFramework.6.1.3/tools/EntityFramework.psm1 deleted file mode 100644 index ba879c3d0..000000000 --- a/packages/EntityFramework.6.1.3/tools/EntityFramework.psm1 +++ /dev/null @@ -1,1168 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. - -$InitialDatabase = '0' - -$knownExceptions = @( - 'System.Data.Entity.Migrations.Infrastructure.MigrationsException', - 'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', - 'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', - 'System.Data.Entity.Migrations.Infrastructure.MigrationsPendingException', - 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' -) - -<# -.SYNOPSIS - Adds or updates an Entity Framework provider entry in the project config - file. - -.DESCRIPTION - Adds an entry into the 'entityFramework' section of the project config - file for the specified provider invariant name and provider type. If an - entry for the given invariant name already exists, then that entry is - updated with the given type name, unless the given type name already - matches, in which case no action is taken. The 'entityFramework' - section is added if it does not exist. The config file is automatically - saved if and only if a change was made. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. - -.PARAMETER InvariantName - The provider invariant name that uniquely identifies this provider. For - example, the Microsoft SQL Server provider is registered with the invariant - name 'System.Data.SqlClient'. - -.PARAMETER TypeName - The assembly-qualified type name of the provider-specific type that - inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For - example, for the Microsoft SQL Server provider, this type is - 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'. -#> -function Add-EFProvider -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project, - [parameter(Position = 1, - Mandatory = $true)] - [string] $InvariantName, - [parameter(Position = 2, - Mandatory = $true)] - [string] $TypeName - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand @( $InvariantName, $TypeName ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Adds or updates an Entity Framework default connection factory in the - project config file. - -.DESCRIPTION - Adds an entry into the 'entityFramework' section of the project config - file for the connection factory that Entity Framework will use by default - when creating new connections by convention. Any existing entry will be - overridden if it does not match. The 'entityFramework' section is added if - it does not exist. The config file is automatically saved if and only if - a change was made. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. - -.PARAMETER TypeName - The assembly-qualified type name of the connection factory type that - implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory' - interface. For example, for the Microsoft SQL Server Express provider - connection factory, this type is - 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'. - -.PARAMETER ConstructorArguments - An optional array of strings that will be passed as arguments to the - connection factory type constructor. -#> -function Add-EFDefaultConnectionFactory -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project, - [parameter(Position = 1, - Mandatory = $true)] - [string] $TypeName, - [string[]] $ConstructorArguments - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddDefaultConnectionFactoryCommand @( $TypeName, $ConstructorArguments ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Initializes the Entity Framework section in the project config file - and sets defaults. - -.DESCRIPTION - Creates the 'entityFramework' section of the project config file and sets - the default connection factory to use SQL Express if it is running on the - machine, or LocalDb otherwise. Note that installing a different provider - may change the default connection factory. The config file is - automatically saved if and only if a change was made. - - In addition, any reference to 'System.Data.Entity.dll' in the project is - removed. - - This command is typically used only by Entity Framework provider NuGet - packages and is run from the 'install.ps1' script. - -.PARAMETER Project - The Visual Studio project to update. When running in the NuGet install.ps1 - script the '$project' variable provided as part of that script should be - used. -#> -function Initialize-EFConfiguration -{ - param ( - [parameter(Position = 0, - Mandatory = $true)] - $Project - ) - - if (!(Check-Project $project)) - { - return - } - - $runner = New-EFConfigRunner $Project - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Enables Code First Migrations in a project. - -.DESCRIPTION - Enables Migrations by scaffolding a migrations configuration class in the project. If the - target database was created by an initializer, an initial migration will be created (unless - automatic migrations are enabled via the EnableAutomaticMigrations parameter). - -.PARAMETER ContextTypeName - Specifies the context to use. If omitted, migrations will attempt to locate a - single context type in the target project. - -.PARAMETER EnableAutomaticMigrations - Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. - If omitted, automatic migrations will be disabled. - -.PARAMETER MigrationsDirectory - Specifies the name of the directory that will contain migrations code files. - If omitted, the directory will be named "Migrations". - -.PARAMETER ProjectName - Specifies the project that the scaffolded migrations configuration class will - be added to. If omitted, the default project selected in package manager - console is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ContextProjectName - Specifies the project which contains the DbContext class to use. If omitted, - the context is assumed to be in the same project used for migrations. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER Force - Specifies that the migrations configuration be overwritten when running more - than once for a given project. - -.PARAMETER ContextAssemblyName - Specifies the name of the assembly which contains the DbContext class to use. Use this - parameter instead of ContextProjectName when the context is contained in a referenced - assembly rather than in a project of the solution. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Enable-Migrations - # Scaffold a migrations configuration in a project with only one context - -.EXAMPLE - Enable-Migrations -Auto - # Scaffold a migrations configuration with automatic migrations enabled for a project - # with only one context - -.EXAMPLE - Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName - # Scaffold a migrations configuration for a project with multiple contexts - # This scaffolds a migrations configuration for MyContext and will put the configuration - # and subsequent configurations in a new directory called "DirectoryName" - -#> -function Enable-Migrations -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $ContextTypeName, - [alias('Auto')] - [switch] $EnableAutomaticMigrations, - [string] $MigrationsDirectory, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ContextProjectName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [switch] $Force, - [string] $ContextAssemblyName, - [string] $AppDomainBaseDirectory - ) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ContextProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName $ContextAssemblyName $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName; 'MigrationsDirectory' = $MigrationsDirectory } - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Scaffolds a migration script for any pending model changes. - -.DESCRIPTION - Scaffolds a new migration script and adds it to the project. - -.PARAMETER Name - Specifies the name of the custom script. - -.PARAMETER Force - Specifies that the migration user code be overwritten when re-scaffolding an - existing migration. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER IgnoreChanges - Scaffolds an empty migration ignoring any pending changes detected in the current model. - This can be used to create an initial, empty migration to enable Migrations for an existing - database. N.B. Doing this assumes that the target database schema is compatible with the - current model. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Add-Migration First - # Scaffold a new migration named "First" - -.EXAMPLE - Add-Migration First -IgnoreChanges - # Scaffold an empty migration ignoring any pending changes detected in the current model. - # This can be used to create an initial, empty migration to enable Migrations for an existing - # database. N.B. Doing this assumes that the target database schema is compatible with the - # current model. - -#> -function Add-Migration -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [parameter(Position = 0, - Mandatory = $true)] - [string] $Name, - [switch] $Force, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [switch] $IgnoreChanges, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Applies any pending migrations to the database. - -.DESCRIPTION - Updates the database to the current model by applying pending migrations. - -.PARAMETER SourceMigration - Only valid with -Script. Specifies the name of a particular migration to use - as the update's starting point. If omitted, the last applied migration in - the database will be used. - -.PARAMETER TargetMigration - Specifies the name of a particular migration to update the database to. If - omitted, the current model will be used. - -.PARAMETER Script - Generate a SQL script rather than executing the pending changes directly. - -.PARAMETER Force - Specifies that data loss is acceptable during automatic migration of the - database. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. - -.EXAMPLE - Update-Database - # Update the database to the latest migration - -.EXAMPLE - Update-Database -TargetMigration Second - # Update database to a migration named "Second" - # This will apply migrations if the target hasn't been applied or roll back migrations - # if it has - -.EXAMPLE - Update-Database -Script - # Generate a script to update the database from it's current state to the latest migration - -.EXAMPLE - Update-Database -Script -SourceMigration Second -TargetMigration First - # Generate a script to migrate the database from a specified start migration - # named "Second" to a specified target migration named "First" - -.EXAMPLE - Update-Database -Script -SourceMigration $InitialDatabase - # Generate a script that can upgrade a database currently at any version to the latest version. - # The generated script includes logic to check the __MigrationsHistory table and only apply changes - # that haven't been previously applied. - -.EXAMPLE - Update-Database -TargetMigration $InitialDatabase - # Runs the Down method to roll-back any migrations that have been applied to the database - - -#> -function Update-Database -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $SourceMigration, - [string] $TargetMigration, - [switch] $Script, - [switch] $Force, - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show() - } - finally - { - Remove-Runner $runner - } -} - -<# -.SYNOPSIS - Displays the migrations that have been applied to the target database. - -.DESCRIPTION - Displays the migrations that have been applied to the target database. - -.PARAMETER ProjectName - Specifies the project that contains the migration configuration type to be - used. If omitted, the default project selected in package manager console - is used. - -.PARAMETER StartUpProjectName - Specifies the configuration file to use for named connection strings. If - omitted, the specified project's configuration file is used. - -.PARAMETER ConfigurationTypeName - Specifies the migrations configuration to use. If omitted, migrations will - attempt to locate a single migrations configuration type in the target - project. - -.PARAMETER ConnectionStringName - Specifies the name of a connection string to use from the application's - configuration file. - -.PARAMETER ConnectionString - Specifies the the connection string to use. If omitted, the context's - default connection will be used. - -.PARAMETER ConnectionProviderName - Specifies the provider invariant name of the connection string. - -.PARAMETER AppDomainBaseDirectory - Specifies the directory to use for the app-domain that is used for running Migrations - code such that the app-domain is able to find all required assemblies. This is an - advanced option that should only be needed if the solution contains several projects - such that the assemblies needed for the context and configuration are not all - referenced from either the project containing the context or the project containing - the migrations. -#> -function Get-Migrations -{ - [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] - param ( - [string] $ProjectName, - [string] $StartUpProjectName, - [string] $ConfigurationTypeName, - [parameter(ParameterSetName = 'ConnectionStringName')] - [string] $ConnectionStringName, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionString, - [parameter(ParameterSetName = 'ConnectionStringAndProviderName', - Mandatory = $true)] - [string] $ConnectionProviderName, - [string] $AppDomainBaseDirectory) - - $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName $null $AppDomainBaseDirectory - - try - { - Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand - $error = Get-RunnerError $runner - - if ($error) - { - if ($knownExceptions -notcontains $error.TypeName) - { - Write-Host $error.StackTrace - } - else - { - Write-Verbose $error.StackTrace - } - - throw $error.Message - } - } - finally - { - Remove-Runner $runner - } -} - -function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ContextProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName, $ContextAssemblyName, $AppDomainBaseDirectory) -{ - $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName - Build-Project $startUpProject - - $project = Get-MigrationsProject $ProjectName - Build-Project $project - - $contextProject = $project - if ($ContextProjectName) - { - $contextProject = Get-SingleProject $ContextProjectName - Build-Project $contextProject - } - - $installPath = Get-EntityFrameworkInstallPath $project - $toolsPath = Join-Path $installPath tools - - $info = New-AppDomainSetup $project $installPath - - $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) - $domain.SetData('project', $project) - $domain.SetData('contextProject', $contextProject) - $domain.SetData('startUpProject', $startUpProject) - $domain.SetData('configurationTypeName', $ConfigurationTypeName) - $domain.SetData('connectionStringName', $ConnectionStringName) - $domain.SetData('connectionString', $ConnectionString) - $domain.SetData('connectionProviderName', $ConnectionProviderName) - $domain.SetData('contextAssemblyName', $ContextAssemblyName) - $domain.SetData('appDomainBaseDirectory', $AppDomainBaseDirectory) - - $dispatcher = New-DomainDispatcher $toolsPath - $domain.SetData('efDispatcher', $dispatcher) - - return @{ - Domain = $domain; - ToolsPath = $toolsPath - } -} - -function New-EFConfigRunner($Project) -{ - $installPath = Get-EntityFrameworkInstallPath $Project - $toolsPath = Join-Path $installPath tools - $info = New-AppDomainSetup $Project $installPath - - $domain = [AppDomain]::CreateDomain('EFConfig', $null, $info) - $domain.SetData('project', $Project) - - $dispatcher = New-DomainDispatcher $toolsPath - $domain.SetData('efDispatcher', $dispatcher) - - return @{ - Domain = $domain; - ToolsPath = $toolsPath - } -} - -function New-AppDomainSetup($Project, $InstallPath) -{ - $info = New-Object System.AppDomainSetup -Property @{ - ShadowCopyFiles = 'true'; - ApplicationBase = $InstallPath; - PrivateBinPath = 'tools'; - ConfigurationFile = ([AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile) - } - - $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($Project.Properties.Item('TargetFrameworkMoniker').Value)).Version - - if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) - { - $info.PrivateBinPath += ';lib\net40' - } - else - { - $info.PrivateBinPath += ';lib\net45' - } - - return $info -} - -function New-DomainDispatcher($ToolsPath) -{ - $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsPath EntityFramework.PowerShell.Utility.dll)) - $dispatcher = $utilityAssembly.CreateInstance( - 'System.Data.Entity.Migrations.Utilities.DomainDispatcher', - $false, - [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, - $null, - $PSCmdlet, - $null, - $null) - - return $dispatcher -} - -function Remove-Runner($runner) -{ - [AppDomain]::Unload($runner.Domain) -} - -function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) -{ - $domain = $runner.Domain - - if ($anonymousArguments) - { - $anonymousArguments.GetEnumerator() | %{ - $domain.SetData($_.Name, $_.Value) - } - } - - $domain.CreateInstanceFrom( - (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), - $command, - $false, - 0, - $null, - $parameters, - $null, - $null) | Out-Null -} - -function Get-RunnerError($runner) -{ - $domain = $runner.Domain - - if (!$domain.GetData('wasError')) - { - return $null - } - - return @{ - Message = $domain.GetData('error.Message'); - TypeName = $domain.GetData('error.TypeName'); - StackTrace = $domain.GetData('error.StackTrace') - } -} - -function Get-MigrationsProject($name, $hideMessage) -{ - if ($name) - { - return Get-SingleProject $name - } - - $project = Get-Project - $projectName = $project.Name - - if (!$hideMessage) - { - Write-Verbose "Using NuGet project '$projectName'." - } - - return $project -} - -function Get-MigrationsStartUpProject($name, $fallbackName) -{ - $startUpProject = $null - - if ($name) - { - $startUpProject = Get-SingleProject $name - } - else - { - $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects - - if ($startupProjectPaths) - { - if ($startupProjectPaths.Length -eq 1) - { - $startupProjectPath = $startupProjectPaths[0] - - if (!(Split-Path -IsAbsolute $startupProjectPath)) - { - $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value - $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve - } - - $startupProject = Get-SolutionProjects | ?{ - try - { - $fullName = $_.FullName - } - catch [NotImplementedException] - { - return $false - } - - if ($fullName -and $fullName.EndsWith('\')) - { - $fullName = $fullName.Substring(0, $fullName.Length - 1) - } - - return $fullName -eq $startupProjectPath - } - } - else - { - Write-Verbose 'More than one start-up project found.' - } - } - else - { - Write-Verbose 'No start-up project found.' - } - } - - if (!($startUpProject -and (Test-StartUpProject $startUpProject))) - { - $startUpProject = Get-MigrationsProject $fallbackName $true - $startUpProjectName = $startUpProject.Name - - Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." - } - else - { - $startUpProjectName = $startUpProject.Name - - Write-Verbose "Using StartUp project '$startUpProjectName'." - } - - return $startUpProject -} - -function Get-SolutionProjects() -{ - $projects = New-Object System.Collections.Stack - - $DTE.Solution.Projects | %{ - $projects.Push($_) - } - - while ($projects.Count -ne 0) - { - $project = $projects.Pop(); - - # NOTE: This line is similar to doing a "yield return" in C# - $project - - if ($project.ProjectItems) - { - $project.ProjectItems | ?{ $_.SubProject } | %{ - $projects.Push($_.SubProject) - } - } - } -} - -function Get-SingleProject($name) -{ - $project = Get-Project $name - - if ($project -is [array]) - { - throw "More than one project '$name' was found. Specify the full name of the one to use." - } - - return $project -} - -function Test-StartUpProject($project) -{ - if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') - { - $projectName = $project.Name - Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." - - return $false - } - - return $true -} - -function Build-Project($project) -{ - $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name - - $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) - - if ($DTE.Solution.SolutionBuild.LastBuildInfo) - { - $projectName = $project.Name - - throw "The project '$projectName' failed to build." - } -} - -function Get-EntityFrameworkInstallPath($project) -{ - $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } - - if (!$package) - { - $projectName = $project.Name - - throw "The EntityFramework package is not installed on project '$projectName'." - } - - return Get-PackageInstallPath $package -} - -function Get-PackageInstallPath($package) -{ - $componentModel = Get-VsComponentModel - $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) - - $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } - - return $vsPackage.InstallPath -} - -function Check-Project($project) -{ - if (!$project.FullName) - { - throw "The Project argument must refer to a Visual Studio project. Use the '`$project' variable provided by NuGet when running in install.ps1." - } - - return $project.CodeModel -} - -Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations', 'Add-EFProvider', 'Add-EFDefaultConnectionFactory', 'Initialize-EFConfiguration') -Variable InitialDatabase - -# SIG # Begin signature block -# MIIa2AYJKoZIhvcNAQcCoIIayTCCGsUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU3poUYDlTlwf2GyqxNJ7CRJO4 -# tk2gghV6MIIEuzCCA6OgAwIBAgITMwAAAFrtL/TkIJk/OgAAAAAAWjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTQwNTIzMTcxMzE1 -# WhcNMTUwODIzMTcxMzE1WjCBqzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# DTALBgNVBAsTBE1PUFIxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMw -# QTQtNzE0NDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMhIt9q0L/7KcnVbHqJqY0T -# vJS16X0pZdp/9B+rDHlhZlRhlgfw1GBLMZsJr30obdCle4dfdqHSxinHljqjXxeM -# duC3lgcPx2JhtLaq9kYUKQMuJrAdSgjgfdNcMBKmm/a5Dj1TFmmdu2UnQsHoMjUO -# 9yn/3lsgTLsvaIQkD6uRxPPOKl5YRu2pRbRptlQmkRJi/W8O5M/53D/aKWkfSq7u -# wIJC64Jz6VFTEb/dqx1vsgpQeAuD7xsIsxtnb9MFfaEJn8J3iKCjWMFP/2fz3uzH -# 9TPcikUOlkYUKIccYLf1qlpATHC1acBGyNTo4sWQ3gtlNdRUgNLpnSBWr9TfzbkC -# AwEAAaOCAQkwggEFMB0GA1UdDgQWBBS+Z+AuAhuvCnINOh1/jJ1rImYR9zAfBgNV -# HSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNo -# dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3Nv -# ZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8 -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1l -# U3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUA -# A4IBAQAgU4KQrqZNTn4zScizrcTDfhXQEvIPJ4p/W78+VOpB6VQDKym63VSIu7n3 -# 2c5T7RAWPclGcLQA0fI0XaejIiyqIuFrob8PDYfQHgIb73i2iSDQLKsLdDguphD/ -# 2pGrLEA8JhWqrN7Cz0qTA81r4qSymRpdR0Tx3IIf5ki0pmmZwS7phyPqCNJp5mLf -# cfHrI78hZfmkV8STLdsWeBWqPqLkhfwXvsBPFduq8Ki6ESus+is1Fm5bc/4w0Pur -# k6DezULaNj+R9+A3jNkHrTsnu/9UIHfG/RHpGuZpsjMnqwWuWI+mqX9dEhFoDCyj -# MRYNviGrnPCuGnxA1daDFhXYKPvlMIIE7DCCA9SgAwIBAgITMwAAAMps1TISNcTh -# VQABAAAAyjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTAeFw0xNDA0MjIxNzM5MDBaFw0xNTA3MjIxNzM5MDBaMIGDMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQD -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCWcV3tBkb6hMudW7dGx7DhtBE5A62xFXNgnOuntm4aPD//ZeM08aal -# IV5WmWxY5JKhClzC09xSLwxlmiBhQFMxnGyPIX26+f4TUFJglTpbuVildGFBqZTg -# rSZOTKGXcEknXnxnyk8ecYRGvB1LtuIPxcYnyQfmegqlFwAZTHBFOC2BtFCqxWfR -# +nm8xcyhcpv0JTSY+FTfEjk4Ei+ka6Wafsdi0dzP7T00+LnfNTC67HkyqeGprFVN -# TH9MVsMTC3bxB/nMR6z7iNVSpR4o+j0tz8+EmIZxZRHPhckJRIbhb+ex/KxARKWp -# iyM/gkmd1ZZZUBNZGHP/QwytK9R/MEBnAgMBAAGjggFgMIIBXDATBgNVHSUEDDAK -# BggrBgEFBQcDAzAdBgNVHQ4EFgQUH17iXVCNVoa+SjzPBOinh7XLv4MwUQYDVR0R -# BEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUTKjMxNTk1K2I0MjE4ZjEz -# LTZmY2EtNDkwZi05YzQ3LTNmYzU1N2RmYzQ0MDAfBgNVHSMEGDAWgBTLEejK0rQW -# WAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgtMzEtMjAx -# MC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0yMDEwLmNy -# dDANBgkqhkiG9w0BAQUFAAOCAQEAd1zr15E9zb17g9mFqbBDnXN8F8kP7Tbbx7Us -# G177VAU6g3FAgQmit3EmXtZ9tmw7yapfXQMYKh0nfgfpxWUftc8Nt1THKDhaiOd7 -# wRm2VjK64szLk9uvbg9dRPXUsO8b1U7Brw7vIJvy4f4nXejF/2H2GdIoCiKd381w -# gp4YctgjzHosQ+7/6sDg5h2qnpczAFJvB7jTiGzepAY1p8JThmURdwmPNVm52Iao -# AP74MX0s9IwFncDB1XdybOlNWSaD8cKyiFeTNQB8UCu8Wfz+HCk4gtPeUpdFKRhO -# lludul8bo/EnUOoHlehtNA04V9w3KDWVOjic1O1qhV0OIhFeezCCBbwwggOkoAMC -# AQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkW -# A2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9z -# b2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIyMTkzMloX -# DTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 -# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh -# dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0G -# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2U2w+G9Zv -# zMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08GisTUuNpb15 -# S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW8ReU5P01 -# lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjSjWL9y8lf -# RjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn0i1i8UU9 -# 56wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPTAgMBAAGj -# ggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQWWAHJNy4z -# Fha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEE -# AYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQCBAweCgBT -# AHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwUAYDVR0f -# BEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJv -# ZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggr -# BgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNy -# b3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8mRq/rb0Cx -# MrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKoVpzjcLu4 -# tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4iktX8pVC -# nPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KPcpUqcW2b -# Gvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSCMm78pJUT -# 5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUWX92THUmO -# Lb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexwo1eSV32U -# jaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDeZPRvzkbU -# 0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2edgKNAlt -# HIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4NXJzwoq6G -# aIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4GPoOco3B -# oz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAAAAAAHDAN -# BgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPy -# LGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMwMzA5WjB3 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhN -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -# ggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FMrXQwIBHr -# B9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9GccLPx754gd -# 6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yGT1VSDOQD -# LPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScpZqiX5NMG -# gUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEExd8yb3zuD -# k6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNVHRMBAf8E -# BTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNVHQ8EBAMC -# AYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBWJ5flJRP8 -# KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/Is -# ZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBHMEWgQ6BB -# hj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNy -# b3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjho -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RD -# ZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUFAAOCAgEA -# EJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhXAstOIBNQ -# md16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk541q1YDB -# 5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVRDupiXD8W -# mIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUrXqO/67x9 -# C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1wlGysOUzU -# 9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4TsVxIxIm -# dgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svpu/RIzCzU -# 2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2YbRuoROm -# v6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhUBdRBLlCs -# lLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcBZW+JC33I -# acjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIBATCBkDB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAMps1TISNcThVQABAAAAyjAJ -# BgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB -# gjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBRRBMx7lzrmFHTD -# FOnHF79/U4hcUzCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkAdAB5ACAA -# RgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYAaQBzAHUA -# YQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEvZWYgMA0G -# CSqGSIb3DQEBAQUABIIBAEd5PEhtVawenxHsuUSbbOUgAVuGOnlVja6G8O5u3I5v -# AcWqJtbqOKUkXc9HxAUMgu5cC/o9n8A7LF7T5xptiXXcxURfe4fmeJK9joz/XPRw -# lYLOevzn9GRfWSbJ/AtSOnjj1PKCtQ8SZq88iKnJ8SrjKF4Nu3TQR/wVR/k3SU0H -# 80Rm4lSJdt9NLxkYljaU8volXVDv9SoxDlplkGdePSbDUx3PWD7y5UVeHb94Z+aQ -# 8p/FuvncjarLeefLhOwEFfJRhCKvofgw2zJqA3q+m42uiuO0ndqbyp8HVc6kcMUu -# jS//9eYvnLP7UY1ApfiBLRPgEgTGSx/soOI2qXDjHiShggIoMIICJAYJKoZIhvcN -# AQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBAhMzAAAA -# Wu0v9OQgmT86AAAAAABaMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTAzMDIxNzI5NThaMCMGCSqGSIb3DQEJ -# BDEWBBQXVgYJisiba3bvHeGxFzocarwSvzANBgkqhkiG9w0BAQUFAASCAQBwjV/u -# vAXQsEgY0oeyfvDyZCXIBSMgSZ4sbxAFu7ZGisn3L51Q/wWulmoPr7YiAmUkxRgU -# WL7hukD/WrR/iNwUToPwz9VTxZbz+i7Cjw5tpG+nL8ByWxyhEiWNDSGHUaU+THMr -# d2Y3mJs9u8E8sjNqHE8Vf7FzmjVn5dMrOASBmqTdXPwJP2Pm2gYta6zkss9j5N3Q -# MLwNDUrZ0FKtGimpe1zoI6Fan4YBKMILOL9xCqMcVMhoITM7s+tnRlngDVFxxKyN -# 1Mnr9ITkdiMIpbWn8s0nr/UsHRltjyPyjtfIvgiFgKLxnw87sHnloEAbksaLqlbX -# 6d/6I/2PpumqJR3c -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.3/tools/about_EntityFramework.help.txt b/packages/EntityFramework.6.1.3/tools/about_EntityFramework.help.txt deleted file mode 100644 index c2ad2f0f6..000000000 --- a/packages/EntityFramework.6.1.3/tools/about_EntityFramework.help.txt +++ /dev/null @@ -1,48 +0,0 @@ -TOPIC - about_EntityFramework - -SHORT DESCRIPTION - Provides information about Entity Framework commands. - -LONG DESCRIPTION - This topic describes the Entity Framework commands. Entity Framework is - Microsoft's recommended data access technology for new applications. - - The following Entity Framework cmdlets are used with Entity Framework - Migrations. - - Cmdlet Description - ----------------- --------------------------------------------------- - Enable-Migrations Enables Code First Migrations in a project. - - Add-Migration Scaffolds a migration script for any pending model - changes. - - Update-Database Applies any pending migrations to the database. - - Get-Migrations Displays the migrations that have been applied to - the target database. - - The following Entity Framework cmdlets are used by NuGet packages that - install Entity Framework providers. These commands are not usually used as - part of normal application development. - - Cmdlet Description - ------------------------------ --------------------------------------- - Add-EFProvider Adds or updates an Entity Framework - provider entry in the project config - file. - - Add-EFDefaultConnectionFactory Adds or updates an Entity Framework - default connection factory in the - project config file. - - Initialize-EFConfiguration Initializes the Entity Framework - section in the project config file and - sets defaults. - -SEE ALSO - Enable-Migrations - Add-Migration - Update-Database - Get-Migrations diff --git a/packages/EntityFramework.6.1.3/tools/init.ps1 b/packages/EntityFramework.6.1.3/tools/init.ps1 deleted file mode 100644 index 6d0977523..000000000 --- a/packages/EntityFramework.6.1.3/tools/init.ps1 +++ /dev/null @@ -1,155 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -if (Get-Module | ?{ $_.Name -eq 'EntityFramework' }) -{ - Remove-Module EntityFramework -} - -Import-Module (Join-Path $toolsPath EntityFramework.psd1) - -# SIG # Begin signature block -# MIIa4AYJKoZIhvcNAQcCoIIa0TCCGs0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXj4E03IfImYfKMB4CA3DfY0 -# KZmgghWCMIIEwzCCA6ugAwIBAgITMwAAAGJBL8dNiq4TJgAAAAAAYjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTUwMjEwMTgzMzM3 -# WhcNMTYwNTEwMTgzMzM3WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO -# OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpcpEnjOg16e -# fCoOjWmTxe4NOad07kj+GNlAGb0eel7cppX64uGPcUvvOPSAmxheqTjM2PBEtHGN -# qjqD6M7STHM5hsVJ0dWsK+5KEY8IbIYHIxJJrNyF5rDLJ3lKlKFVo1mgn/oZM4cM -# CgfokLOayjIvyxuJIFrFbpO+nF+PhuI3MYT+lsHKdg2ErCNF0Y3KNvmDtP9XBiRK -# iGS7pVlKB4oaueB+94csweq7LXrUTrOcP8a6hRKzNqjR4pAcybwv508B4otK+jbX -# lmE2ldsEysu9mwjN1fyDVSnWheoGZiXw3pxG9FeeXsOkNLibTtUVrjkcohq6hvb7 -# 7q4dco7enQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFJsuiFXbFF3ayMLtg9j5aH6D -# oTnHMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw -# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz -# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG -# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv -# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI -# hvcNAQEFBQADggEBAAytzvTw859N7K64VMzmnhXGV4ZOeMnn/AJgqOUGsIrVqmth -# oqscqKq9fSnj3QlC3kyXFID7S69GmvDfylA/mu6HSe0mytg8svbYu7p6arQWe8q1 -# 2kdagS1kFPBqUySyEx5pdI0r+9WejW98lNiY4PNgoqdvFZaU4fp1tsbJ8f6rJZ7U -# tVCLOYHbDvlhU0LjKpbCgZ0VlR4Kk1SUuclxtIVETpHS5ToC1EzQRIGLsvkOxg7p -# Kf/MkuGM4R4dYIVZpPQYLeTb0o0hdnXXez1za9a9zaa/imKXyiV53z1loGFVVYqH -# AnYnCMw5M16oWdKeG7OaT+qFQL5aK0SaoZSHpuswggTsMIID1KADAgECAhMzAAAA -# ymzVMhI1xOFVAAEAAADKMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBMB4XDTE0MDQyMjE3MzkwMFoXDTE1MDcyMjE3MzkwMFowgYMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx -# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB -# BQADggEPADCCAQoCggEBAJZxXe0GRvqEy51bt0bHsOG0ETkDrbEVc2Cc66e2bho8 -# P/9l4zTxpqUhXlaZbFjkkqEKXMLT3FIvDGWaIGFAUzGcbI8hfbr5/hNQUmCVOlu5 -# WKV0YUGplOCtJk5MoZdwSSdefGfKTx5xhEa8HUu24g/FxifJB+Z6CqUXABlMcEU4 -# LYG0UKrFZ9H6ebzFzKFym/QlNJj4VN8SOTgSL6RrpZp+x2LR3M/tPTT4ud81MLrs -# eTKp4amsVU1Mf0xWwxMLdvEH+cxHrPuI1VKlHij6PS3Pz4SYhnFlEc+FyQlEhuFv -# 57H8rEBEpamLIz+CSZ3VlllQE1kYc/9DDK0r1H8wQGcCAwEAAaOCAWAwggFcMBMG -# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQfXuJdUI1Whr5KPM8E6KeHtcu/ -# gzBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr -# YjQyMThmMTMtNmZjYS00OTBmLTljNDctM2ZjNTU3ZGZjNDQwMB8GA1UdIwQYMBaA -# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j -# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w -# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 -# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx -# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQB3XOvXkT3NvXuD2YWpsEOdc3wX -# yQ/tNtvHtSwbXvtUBTqDcUCBCaK3cSZe1n22bDvJql9dAxgqHSd+B+nFZR+1zw23 -# VMcoOFqI53vBGbZWMrrizMuT269uD11E9dSw7xvVTsGvDu8gm/Lh/idd6MX/YfYZ -# 0igKIp3fzXCCnhhy2CPMeixD7v/qwODmHaqelzMAUm8HuNOIbN6kBjWnwlOGZRF3 -# CY81WbnYhqgA/vgxfSz0jAWdwMHVd3Js6U1ZJoPxwrKIV5M1AHxQK7xZ/P4cKTiC -# 095Sl0UpGE6WW526Xxuj8SdQ6geV6G00DThX3DcoNZU6OJzU7WqFXQ4iEV57MIIF -# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm -# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD -# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx -# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC -# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw -# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy -# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ -# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP -# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf -# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS -# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB -# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3 -# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk -# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp -# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE -# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl -# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+ -# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6 -# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW -# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb -# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu -# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ -# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB -# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord -# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t -# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh -# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I -# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0 -# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX -# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290 -# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx -# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD -# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf -# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB -# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn -# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0 -# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n -# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR -# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54 -# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G -# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG -# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg -# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG -# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg -# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ -# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1 -# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB -# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z -# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB -# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i -# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r -# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct -# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F -# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo -# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0 -# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp -# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J -# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0 -# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng -# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBMgwggTE -# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD -# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh -# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAymzVMhI1xOFV -# AAEAAADKMAkGBSsOAwIaBQCggeEwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFOrT -# ZEbL6mMRie0QxeNrtIXxNuY6MIGABgorBgEEAYI3AgEMMXIwcKBSgFAARQBuAHQA -# aQB0AHkAIABGAHIAYQBtAGUAdwBvAHIAawAgAFQAbwBvAGwAcwAgAGYAbwByACAA -# VgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAb6EagBhodHRwOi8vbXNkbi5jb20vZGF0 -# YS9lZiAwDQYJKoZIhvcNAQEBBQAEggEAgp8YIEwXo8d1C2hJS1OX9nLxFHxKTtF9 -# n3gnMoqyQ9Cq8nqapIG3LIn8gEzfUgeV3sWhZ4FsZENCqIo/bTWITq7vP5IOT1eb -# eGP0iudpum8ajts8gxWBdqQRf7+qq1TnU6knpCppn2hFwp/5qsGIMCfqaj0sqIg4 -# cswc5e443uOMXK6viAjC9ZzeLGH4HZX5eK3DnKsUsqT3dHC/aKhbvITK+pw2f5bP -# rTRjCXMmXoVs5xMcmz0jEMu5d59yFJDGk9b02FqojlvdJ/sYvMPGpAkEmPkOygwW -# /kmuemZ6sggDQKPs2trsWGa836uWYTucgQ/f+9Di+FgDc/boMGysr6GCAigwggIk -# BgkqhkiG9w0BCQYxggIVMIICEQIBATCBjjB3MQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQ -# Q0ECEzMAAABiQS/HTYquEyYAAAAAAGIwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJ -# AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDMwMjE3Mjk1OFowIwYJ -# KoZIhvcNAQkEMRYEFKxtHfNR1GPWPqo0yuBPiJ3WZNX2MA0GCSqGSIb3DQEBBQUA -# BIIBAAwIulYLc715s8FIBZzA3zKD9IKqlhrzpTNBY014mi1pwl2sMpKyA/xAH4Gj -# eyo4wzSR7PT2BsYEHElYh7tx/eC45rI2mYIFqfsyqbRBxRfWQCb3pb42kix/RUJ+ -# ElTkwy7SG6c04KA8Yi/Z3uOxxlBCWfXWupHQMpIsdVI1s/v65Tn3TNyBLtPu507q -# CNcYfok3IIhcvQCd7vCUK2fnJsuLxbFFqqKoMft10iqAROREkXEhfcyLOUt4BrMh -# KN2ygSFPCIbFAGvmS84oq8p4FzJAFUL9rE8qzxzXrbEA4UglDj72mW6nXmXaHiOZ -# J+2fE3M9xcMV3gKEuSL/DiQhPaI= -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.3/tools/install.ps1 b/packages/EntityFramework.6.1.3/tools/install.ps1 deleted file mode 100644 index 0c18aef60..000000000 --- a/packages/EntityFramework.6.1.3/tools/install.ps1 +++ /dev/null @@ -1,154 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -Initialize-EFConfiguration $project -Add-EFProvider $project 'System.Data.SqlClient' 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' - -Write-Host -Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands." - -# SIG # Begin signature block -# MIIa4AYJKoZIhvcNAQcCoIIa0TCCGs0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUt8mwpdjiFmu2B4KBh+vEeQ+V -# VnSgghWCMIIEwzCCA6ugAwIBAgITMwAAAGJBL8dNiq4TJgAAAAAAYjANBgkqhkiG -# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw -# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTUwMjEwMTgzMzM3 -# WhcNMTYwNTEwMTgzMzM3WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO -# OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpcpEnjOg16e -# fCoOjWmTxe4NOad07kj+GNlAGb0eel7cppX64uGPcUvvOPSAmxheqTjM2PBEtHGN -# qjqD6M7STHM5hsVJ0dWsK+5KEY8IbIYHIxJJrNyF5rDLJ3lKlKFVo1mgn/oZM4cM -# CgfokLOayjIvyxuJIFrFbpO+nF+PhuI3MYT+lsHKdg2ErCNF0Y3KNvmDtP9XBiRK -# iGS7pVlKB4oaueB+94csweq7LXrUTrOcP8a6hRKzNqjR4pAcybwv508B4otK+jbX -# lmE2ldsEysu9mwjN1fyDVSnWheoGZiXw3pxG9FeeXsOkNLibTtUVrjkcohq6hvb7 -# 7q4dco7enQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFJsuiFXbFF3ayMLtg9j5aH6D -# oTnHMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw -# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz -# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG -# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv -# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI -# hvcNAQEFBQADggEBAAytzvTw859N7K64VMzmnhXGV4ZOeMnn/AJgqOUGsIrVqmth -# oqscqKq9fSnj3QlC3kyXFID7S69GmvDfylA/mu6HSe0mytg8svbYu7p6arQWe8q1 -# 2kdagS1kFPBqUySyEx5pdI0r+9WejW98lNiY4PNgoqdvFZaU4fp1tsbJ8f6rJZ7U -# tVCLOYHbDvlhU0LjKpbCgZ0VlR4Kk1SUuclxtIVETpHS5ToC1EzQRIGLsvkOxg7p -# Kf/MkuGM4R4dYIVZpPQYLeTb0o0hdnXXez1za9a9zaa/imKXyiV53z1loGFVVYqH -# AnYnCMw5M16oWdKeG7OaT+qFQL5aK0SaoZSHpuswggTsMIID1KADAgECAhMzAAAA -# ymzVMhI1xOFVAAEAAADKMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBMB4XDTE0MDQyMjE3MzkwMFoXDTE1MDcyMjE3MzkwMFowgYMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx -# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB -# BQADggEPADCCAQoCggEBAJZxXe0GRvqEy51bt0bHsOG0ETkDrbEVc2Cc66e2bho8 -# P/9l4zTxpqUhXlaZbFjkkqEKXMLT3FIvDGWaIGFAUzGcbI8hfbr5/hNQUmCVOlu5 -# WKV0YUGplOCtJk5MoZdwSSdefGfKTx5xhEa8HUu24g/FxifJB+Z6CqUXABlMcEU4 -# LYG0UKrFZ9H6ebzFzKFym/QlNJj4VN8SOTgSL6RrpZp+x2LR3M/tPTT4ud81MLrs -# eTKp4amsVU1Mf0xWwxMLdvEH+cxHrPuI1VKlHij6PS3Pz4SYhnFlEc+FyQlEhuFv -# 57H8rEBEpamLIz+CSZ3VlllQE1kYc/9DDK0r1H8wQGcCAwEAAaOCAWAwggFcMBMG -# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQfXuJdUI1Whr5KPM8E6KeHtcu/ -# gzBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr -# YjQyMThmMTMtNmZjYS00OTBmLTljNDctM2ZjNTU3ZGZjNDQwMB8GA1UdIwQYMBaA -# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j -# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w -# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 -# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx -# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQB3XOvXkT3NvXuD2YWpsEOdc3wX -# yQ/tNtvHtSwbXvtUBTqDcUCBCaK3cSZe1n22bDvJql9dAxgqHSd+B+nFZR+1zw23 -# VMcoOFqI53vBGbZWMrrizMuT269uD11E9dSw7xvVTsGvDu8gm/Lh/idd6MX/YfYZ -# 0igKIp3fzXCCnhhy2CPMeixD7v/qwODmHaqelzMAUm8HuNOIbN6kBjWnwlOGZRF3 -# CY81WbnYhqgA/vgxfSz0jAWdwMHVd3Js6U1ZJoPxwrKIV5M1AHxQK7xZ/P4cKTiC -# 095Sl0UpGE6WW526Xxuj8SdQ6geV6G00DThX3DcoNZU6OJzU7WqFXQ4iEV57MIIF -# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm -# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD -# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx -# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD -# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC -# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw -# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy -# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ -# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP -# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf -# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS -# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB -# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3 -# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk -# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp -# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE -# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl -# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+ -# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6 -# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW -# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb -# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu -# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ -# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB -# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord -# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t -# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh -# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I -# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0 -# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX -# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290 -# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx -# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD -# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf -# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB -# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn -# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0 -# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n -# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR -# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54 -# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G -# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG -# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg -# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG -# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg -# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ -# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1 -# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB -# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z -# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB -# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i -# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r -# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct -# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F -# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo -# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0 -# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp -# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J -# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0 -# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng -# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBMgwggTE -# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD -# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh -# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAymzVMhI1xOFV -# AAEAAADKMAkGBSsOAwIaBQCggeEwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFJiz -# f4JawBv4s6ihwSKoeZTRDcAvMIGABgorBgEEAYI3AgEMMXIwcKBSgFAARQBuAHQA -# aQB0AHkAIABGAHIAYQBtAGUAdwBvAHIAawAgAFQAbwBvAGwAcwAgAGYAbwByACAA -# VgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAb6EagBhodHRwOi8vbXNkbi5jb20vZGF0 -# YS9lZiAwDQYJKoZIhvcNAQEBBQAEggEAFy52TLBcmieavvWab1nArTK05hXGrx+n -# qn/Aq3b4WpCD3Kotg6ZcmMDgFoBR3CCxOi8DzXowNjnX4aGMnUgGR8oczgU0DVRN -# 6e9fIaYthchMgS/bDZEyPZ39H2mSuNPkM4rBiB5K0CkQQgjwEKYCRImwSlnBu0jY -# nH1J/jF0RnYFZ1uxmY8jpWA/km5kj3fSTwC8CPn24I6H520Cka0CiBGl6iNLRAK+ -# rOokn9Ymw9dbttXINl8WpNCBIR6XBAgBhlyJa6JmTceoXZvIGu1h8KVCWwDv+lKT -# uRLEKWdVQ5cgNth3csHOUQnBC5FN6TxY9dqozIwcjNUwwOOsqrEW5KGCAigwggIk -# BgkqhkiG9w0BCQYxggIVMIICEQIBATCBjjB3MQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQ -# Q0ECEzMAAABiQS/HTYquEyYAAAAAAGIwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJ -# AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MDMwMjE3Mjk1OFowIwYJ -# KoZIhvcNAQkEMRYEFAMe6WzqHaLPBigGoS/gaG25ANUpMA0GCSqGSIb3DQEBBQUA -# BIIBAGFxF739EOC9CNxIDxocqE2PugMRxvX1rrmsvfwnrhaZmL9XqeWgsS8SqJq3 -# GOASzoTwvkyAE9qavr0o34a84HDSVbapNEribsu6ILaZpd0ucFGbk4L3QcSODtvH -# XZuCh0cl3ohJT8ShQBNmN9TkqlhnP9AYWcoNaefJkozg7xc3m/CsGkcbSHNk0Bvm -# IF1zG1axnKwNFXopJLnbqxqajBcH3VaCTo9cEshs9qaUy2NZ4RZJztYnnBQsGvv8 -# go2qsBgLcALFpVHrSX6yKuH8XVwR+lHofY7nZHs0TLi55SFbpJK+53BCWeH4OK85 -# wQ6quf2TAX7dc3ct2zrY3TWhf7Q= -# SIG # End signature block diff --git a/packages/EntityFramework.6.1.3/tools/migrate.exe b/packages/EntityFramework.6.1.3/tools/migrate.exe deleted file mode 100644 index 1be1d669a..000000000 Binary files a/packages/EntityFramework.6.1.3/tools/migrate.exe and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Content/InstallationDummyFile.txt b/packages/FSPowerPack.Community.3.0.0.0/Content/InstallationDummyFile.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.dll b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.dll deleted file mode 100644 index 0f6c6d238..000000000 Binary files a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.dll and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.xml b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.xml deleted file mode 100644 index fa2619deb..000000000 --- a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.Compiler.CodeDom.xml +++ /dev/null @@ -1,755 +0,0 @@ - - -FSharp.Compiler.CodeDom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert string into Option string where null and String.Empty result in None - - - - - - - - - - - - - - Implementation of the CodeDomProvider for the F# language. - This is specialized version that can be used with ASP.NET. - - - - - - - - Implementation of the CodeDomProvider for the F# language. - If you intend to use CodeDom with ASP.NET you should use <c>FSharpAspNetCodeProvider</c> instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Where are we generating member? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - We use exception for returning value when generating complex - code that returns using imperative "return" statement - - - - - Type of the method - - - - - Types of all local variables in the method - - - - - Names of all type arguments in scope (need to rename T -> 'T etc.) - - - - - - - - Options, output, ... - - - - - Some unique ID for every namespace (so we don't have name clashes) - - - - - - - - Hacking for ASP.NET incorrect array initializers - They generate "string" where codedom test suite uses "string[]" - - - - - Reference inherited fields using "fld" instead of "this.fld" - (could be used in the future to allow implicit classes in ASP.NET?) - - - - - No extra configuration - - - - - - - - - - - - - - Generate code for compile unit (file) - - - - - Generate code for type declaration (not included in namespace) - - - - - Generate code for namespace without compilation unit - - - - - Generates namespace code - takes output from 'preprocessNamespace' - - - - - - - - Returns CodeNamespace, list of classes with scope (which includes class names - of containing classes and sequence of class renames) - - - - - Generates a main method. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Generates method code - Generates comments and than calls 'generatMethod' - - - - - By default all CodeDOM generated methods are 'virtual' which means that - we have to generate "abstract and default" (unless we're in struct or - we're implementing an interface, or the method is overriden) - (NOTE: the same logic isn't properly implemented for properties) - - - - - Abstract method in the interface - - - - - - - - - - - Abstract property in the interface - - - - - fields - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Generate expression - with unkonw type - - - - - Matches array or indexer expression and corrects it if the generated CodeDOM is incorrect - - - - - Generates a "this" or "CurrentType" reference depending on whether a reference - is static or not. Used for "ambiguous" references without a type or object qualifier. - - Unfortunately the Code tree isn't so kind as to tell us whether a reference is static - or not up front. Instead we predetermine a set of some static members and - assume all other references are instance references. - - - - - - Tries to resolve type of an expression using a few tricks: - * Fields of current type may have known type - * Properties of current type as well - * We can also try to resolve other properties (sometimes it helps) - * Resolve type for local variables or argument reference - - - - - Tries to resolve if type is an array, so we can generate - appropriate code (it can be either indexer or array, but we need to generate - .Item call for indexers (no overloading is supported by .[]). - Returns: "None" - can't resolve, "Some" resovled (true/false - is it an array?) - - - - - Generate array initializer. Checks generator options for ASP.NET workaround. - - - - - Generate value of primitive expression - - - - - Returns F# conversion function for the specified type (or empty string) - - - - - Are both types numerical types where numeric conversion function can be applied? - - - - - Generates code for binary operator using function for left and right operand - - - - - Preprocess collection with type parameters - Returns array to be used with <c>usingTyParams</c> and - function to be called to generate < ... > code - - - - - Record specified type parameters in the context, call generating function - and then restore the original type parameters - (this works if someone uses nested type parameters with the same name) - - - - - Generate type arguments using context - - - - - Generate type reference using context - (this is most commonly used method) - - - - - Get type reference, but don't rename .NET types to F# types - (this is only needed when calling static methods on the type) - - - - - Get full type reference string using empty context - - - - - Get full type reference using information from context - - - - - Generate type reference with empty context - - - - - Generates type reference (not for arrays) - - - - - - - - - - - Tries to resolve type of a variable and adds it to the Context dictionary - - - - - Get System.Type of know type (either standard type or resolved) - - - - - - - - Output string as a valid F# identifier - - - - - - - - - - - - - - - - - Tries to find .NET type for specified type name - This is used when we need to know type in order to generate something correctly, - but it's just a fallback case - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Call specified function only on elements of specified type. - (performs dynamic type test using x.GetType()) - - - - - Process collection - keeps context through the whole processing - calls 'f' for every element in sequence and 'fs' between every two elements - as a separator. This is a variant that works on typed collections. - - - - - Process collection - keeps context through the whole processing - calls 'f' for every element in sequence and 'fs' between every two elements - as a separator - - - - - Perform map and filter operations in one - - - - - Create closure to do the counting - (this is usend when we need indexing during collection processing) - - - - - Print object converted to string - - - - - Identity function - - - - - Call function, but give it context as an argument - - - - - Append specified string without line-break - - - - - Break-line and append specified string - - - - - Print unique id using: "+> uniqid" - - - - - Function composition operator - - - - - Create context using specified text writer and options - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Walks through the CodeDom tree and keeps current "scope" and the result. - The result is collected through entire tree, but the modified scope is - passed only to sub-nodes of the current node. - - First argument is a function that is called for nodes and has a - function as a first argument, scope and result as a second and current node as a third. - The function argument can be used to walk deeper in the tree if wanted. - - - - - Search for members and return flat list of selected members - Function given as an argument returns tuple - first item specifies - if the current element should be included in the result, the second - specifies if we should walk through child members of the current object - - - - - - - - - - - - - - - - - - - diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.dll b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.dll deleted file mode 100644 index ea1ef23f9..000000000 Binary files a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.dll and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.xml b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.xml deleted file mode 100644 index 103aa9aae..000000000 --- a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Build.Tasks.xml +++ /dev/null @@ -1,170 +0,0 @@ - - -FSharp.PowerPack.Build.Tasks - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert string into Option string where null and String.Empty result in None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index 775701118..000000000 Binary files a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.xml b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.xml deleted file mode 100644 index c5f86fc93..000000000 --- a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.Compatibility.xml +++ /dev/null @@ -1,3203 +0,0 @@ - - -FSharp.PowerPack.Compatibility - - - - - - - The spec value describes the action of the argument, - and whether it expects a following parameter. - - - - - - - - "usage specs use" prints the help for each argument. - - - - - "parse specs f use" parses the arguments given by Sys.argv - according to the argument processing specifications "specs". - Arguments begin with "-". Non-arguments are passed to "f" in - order. "use" is printed as part of the usage line if an error occurs. - - Permitted arguments are specified using triples: (arg, action, help). - Actions are: - Unit(f): call f, no subseq. arg - Set(br): set ref to 'true', no subseq. arg. - Clear(br): set ref to 'false, no subseq. arg. - String(f): pass the subseq. arg to f - Int(f): pass the subseq. arg to f - Float(f): pass the subseq. arg to f - Rest(f): pass all subseq. args to f in order - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A simple command-line argument processor. - - - - - - - - As for Array2D.pin, except that the caller is responsible for calling Free on the returned GCHandle in order - to release the pin. - - - - - Pin the given array for the duration of a single call to the given function. A native pointer to - the first element in the array is passed to the given function. Cleanup the GCHandle associated with the - pin when the function completes, even if an exception is raised. - - - - - - - - - - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f i0 (...(f iN s))</c> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create a jagged 2 dimensional array. Synonym for createJaggedMatrix. - - - - - As for Array.pin, except that the caller is responsible for calling Free on the returned GCHandle in order - to release the pin. - - - - - Pin the given array for the duration of a single call to the given function. A native pointer to - the first element in the array is passed to the given function. Cleanup the GCHandle associated with the - pin when the function completes, even if an exception is raised. - - - - - Like reduceBack, but return both the intermediary and final results - - - - - Like reduce, but return both the intermediary and final results - - - - - Is an element in the array, uses (=) equality. - - - - - Create a jagged 2 dimensional array. - - - - - Compatibility operations on arrays. - - - - - - - - Read the given number of bytes as ASCII and add the resulting string - to the buffer. Warning: this assumes an ASCII encoding for the I/O channel, i.e. it uses - Pervasives.really_input and then use ascii_to_string to produce the string - to add. - - - - - Clears the buffer (same as Buffer.clear). - - - - - - - - Number of characters in the buffer. - - - - - Create a buffer with suggested size. - - - - - Gets the string built from the buffer. - - - - - Clears the buffer. - - - - - Given a string, start position and length add that substring to the buffer. - - - - - Add string to the buffer. - - - - - Add character to the buffer. - - - - - Add second buffer to the first. - - - - - Imperative buffers for building strings, a shallow interface to <c>System.Text.StringBuilder</c> - - - - - Converts a byte to a string - - - - - Converts a string to a byte - - - - - Converts a byte to an unsigned 32-bit integer - - - - - Converts an unsigned 32-bit integer to a byte - - - - - Converts a byte to a 16-bit integer - - - - - Converts a 16-bit integer to a byte - - - - - Converts a byte to a 32-bit integer - - - - - Converts a 32-bit integer to a byte - - - - - Converts a byte to a 32-bit integer - - - - - Converts a 32-bit integer to a byte - - - - - Converts a byte to a char - - - - - Converts a char to a byte - - - - - Shifts the binary representation a by n bits to the right - - - - - Shifts the binary representation a by n bits to the left - - - - - Combines the binary representation of a and b by bitwise xor - - - - - Combines the binary representation of a and b by bitwise or - - - - - Returns the bitwise logical negation of a - - - - - Combines the binary representation of a and b by bitwise and - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - Returns the remainder of a divided by b - - - - - Returns a minus b - - - - - Returns a multiplied by b - - - - - Returns a divided by b - - - - - Returns the sum of a and b - - - - - Returns the predeccessor of the argument wrapped around 0uy - - - - - Returns the successor of the argument wrapped around 255uy - - - - - The value one as a System.Byte - - - - - The value zero as a System.Byte - - - - - Byte (8-bit) operations. - - - - - Converts the value of a Unicode character to its uppercase equivalent - - - - - Converts the value of a Unicode character to its lowercase equivalent - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - Converts the value of the specified Unicode character to the equivalent 32-bit signed integer - - - - - Converts the value of the specified 32-bit signed integer to its equivalent Unicode character - - - - - Unicode characters, i.e. the <c>System.Char</c> type. see also the operations - in <c>System.Char</c> and the <c>System.Text.Encoding</c> interfaces if necessary. - - - - - "temp_file f s" returns a hitherto unused new file name. "f" and "s" - are hints as to a suitable file name and suffix for the file. - - - - - "quote s" is designed for use to quote a filename when using it - for a system command. It returns ("\'" ^ s ^ "\'"). - - - - - Returns true if the path is relative to the current directory but does not begin with - an explicit "." or ".." - - - - - Is the path is relative to the current directory or absolute. - - - - - Return true if the filename has a "." extension - - - - - "parent_dir_name" returns the name for the directory above the current directory on - this OS. - - - - - The name used for the current directory on this OS. - - - - - "dirname" and "basename" decompose a filename into a directory name - and a filename, i.e. "concat (dirname s) (basename s) = s" - - - - - "dirname" and "basename" decompose a filename into a directory name - and a filename, i.e. "concat (dirname s) (basename s) = s" - - - - - "concat a b" returns System.IO.Path.Combine(a,b), i.e. the - two names conjoined by the appropriate directory separator character - for this architecture. - - - - - Assuming "check_suffix f s" holds, "chop_suffix f s" returns the - filename "f" with the suffix "s" removed. - - - - - "chop_extension f" removes the extension from the given - filename. Raises ArgumentException if no extension is present. - - - - - "check_suffix f s" returns true if filename "f" ends in suffix "s", - e.g. check_suffix "abc.fs" ".fs" returns true. - - - - - Common filename operations. This module is included to make it possible to cross-compile - code with other ML compilers. See also <c>System.IO.Path</c> - - - - - Converts a 64-bit float to raw 64-bit representation - - - - - Converts a raw 64-bit representation to a 64-bit float - - - - - Converts a 64-bit float to a string - - - - - Converts a string to a 64-bit float - - - - - Converts a 64-bit float to a 32-bit float - - - - - Converts a 32-bit float to a 64-bit float - - - - - Converts a 64-bit float to a 64-bit integer - - - - - Converts a 64-bit integer to a 64-bit float - - - - - Converts a 64-bit float to a 32-bit integer - - - - - Converts a 32-bit integer to a 64-bit float - - - - - Converts a 64-bit float to a 32-bit integer - - - - - Converts a 32-bit integer to a 64-bit float - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - Returns a minus b - - - - - Returns -a - - - - - Returns a multiplied by b - - - - - Returns a divided by b - - - - - Returns the sum of a and b - - - - - ML-like operations on 64-bit System.Double floating point numbers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -A collection of operations for creating and using hash tables based on particular type-tracked hash/equality functions. -Generated by the Hashtbl.Make and Hashtbl.MakeTagged functors. This type is for use when you wish to -specify a comparison function once and carry around an object that is a provider of (i.e. a factory for) hashtables -that utilize that comparison function. - -The 'Tag' type parameter is used to track information about the comparison function, which helps ensure -that you don't mixup maps created with different comparison functions - - - - - OCaml compatible type name, for use when not opening module, e.g. Hashtbl.t - - - - - Build a collection of operations for creating and using - hashtables based on the given hash/equality functions. This returns a record - that contains the functions you use to create and manipulate tables of - this kind. The returned value is much like an ML module. You should call Make once for - each new pair of key/value types. You may need to constrain the result - to be an instantiation of Provider. - - let MyStringHashProvider : Provider<string,int> = Hashtbl.Make(myStringHash,myStringEq) - - - - - Same as Make, except track the comparison function being used through an additional type parameter. - - To use this function accurately you need to define a new named class that implements IEqualityComparer and - pass an instance of that class as the first argument. For example: - type MyHasher = - class - new() = { } - interface IEqualityComparer<string> with - member self.GetHashCode(x) = ... - member self.Equals(x,y) = ... - end - end - - let MyStringHashProvider : Hashtbl.Provider<string,int> = Hashtbl.MakeTagged(new MyStringHasher()) - - - - - Hash on the identity of an object. - - - - - Hash on the structure of a value according to the F# structural hashing - conventions - - - - - Lookup the key's data in the table - - - - - Replace the latest binding for the given key - - - - - Remove the latest binding for the given key - - - - - Test for the existence of any bindings for the given key - - - - -Apply the given function to each binding in the hash table - - - - - Fold over all bindings - - - - - Return all bindings for the given key - - - - - Lookup key's data in the table. - Raises exception is key not in table, if this could happen you should be using tryFind. - - - - - Create a copy of the table. Remember they are imperative and get mutated. - - - - - Empty the table. - - - - - Create hash table using the given data - - - - - Create a hash table using the given data - - - - - Add key and data to the table. - - - - - Create a hash table with the suggested initial size. - - Inlined to enable generation of efficient hash routines for the key type in the common case. - - - - - Multi-entry hash tables using the structural "hash" and "equals" functions. - -These tables can be used with keys of any type, but you should check that -structural hashing and equality are correct for your key type. -Structural hashing is efficient but not a suitable choice in all circumstances, -e.g. may not hash efficiently on non-reference types and deeply-structured types. -Better efficiency is typically achieved if key types are F#-generated -types. - -These hash tables may map items to multiple keys (see find_all). - -The implementations are not safe for concurrent reading/writing, -and so users of these tables should take an appropriate lock -before reading/writing if used in a concurrent setting. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Converts a 32-bit float to a raw 32-bit representation - - - - - Converts a raw 32-bit representation to a 32-bit float - - - - - Converts a 64-bit float to a raw 32-bit representation - - - - - Converts a raw 32-bit representation to a 64-bit float - - - - - Converts a 32-bit integer to a string - - - - - Converts a string to a 32-bit integer - - - - - Converts a 32-bit unsigned integer to a 32-bit integer - - - - - Converts a 32-bit unsigned integer to a 32-bit integer - - - - - Converts a 32-bit unsigned integer to a 64-bit integer - - - - - Converts a 64-bit unsigned integer to a 32-bit integer - - - - - Converts a 32-bit integer to a 32-bit unsigned integer - - - - - Converts a 32-bit unsigned integer to a 32-bit integer - - - - - Converts a 32-bit integer to a 32-bit integer (included for ML compatability) - - - - - Converts a 32-bit integer to a 32-bit integer (included for ML compatability) - - - - - Converts a 32-bit integer to a 32-bit float - - - - - Converts a 32-bit float to a 32-bit integer - - - - - Converts a 32-bit integer to a 64-bit float - - - - - Converts a 64-bit float to a 32-bit integer - - - - - Shifts the binary representation a by n bits to the right; high-order bits are zero-filled - - - - - Shifts the binary representation a by n bits to the right; high-order empty bits are set to the sign bit - - - - - Shifts the binary representation a by n bits to the left - - - - - Combines the binary representation of a and b by bitwise xor - - - - - Combines the binary representation of a and b by bitwise or - - - - - Returns the bitwise logical negation of a - - - - - Combines the binary representation of a and b by bitwise and - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - Returns a minus b - - - - - Returns the remainder of a divided by b - - - - - Returns -a - - - - - Returns a multiplied by b - - - - - Returns a divided by b - - - - - Returns the sum of a and b - - - - - Returns the absolute value of the argument - - - - - Returns the successor of the argument - - - - - Returns the smallest 32-bit signed integer - - - - - Returns the largest 32-bit signed integer - - - - - Returns the predeccessor of the argument - - - - - The value minus one as a System.Int32 - - - - - The value one as a System.Int32 - - - - - The value zero as a System.Int32 - - - - - Basic operations on 32-bit integers. The type int32 is identical to <c>System.Int32</c>. - - - - - Converts a 64-bit float to a raw 64-bit representation - - - - - Converts a raw 64-bit representation to a 64-bit float - - - - - Converts a 64-bit integer to a string - - - - - Converts a string to a 64-bit integer - - - - - Converts a 64-bit integer to a native integer - - - - - Converts a native integer to a 64-bit integer - - - - - Converts a 64-bit integer to an unsigned 64-bit integer - - - - - Converts an unsigned 64-bit integer to a 64-bit integer - - - - - Converts a 64-bit integer to a 32-bit integer - - - - - Converts a 32-bit integer to a 64-bit integer - - - - - Converts a 64-bit integer to a 32-bit integer - - - - - Converts a 32-bit integer to a 64-bit integer - - - - - Converts a 64-bit integer to a 64-bit float - - - - - Converts a 64-bit float to a 64-bit integer - - - - - Converts a 64-bit integer to a 32-bit float - - - - - Converts a 32-bit float to a 64-bit integer - - - - - Shifts the binary representation a by n bits to the right; high-order bits are zero-filled - - - - - Shifts the binary representation a by n bits to the right; high-order empty bits are set to the sign bit - - - - - Shifts the binary representation a by n bits to the left - - - - - Combines the binary representation of a and b by bitwise xor - - - - - Combines the binary representation of a and b by bitwise or - - - - - Returns the bitwise logical negation of a - - - - - Combines the binary representation of a and b by bitwise and - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - Returns a minus b - - - - - Returns the remainder of a divided by b - - - - - Returns -a - - - - - Returns a multiplied by b - - - - - Returns a divided by b - - - - - Returns the sum of a and b - - - - - Returns the absolute value of the argument - - - - - The value minus one as a System.Int64 - - - - - Returns the smallest 64-bit signed integer - - - - - Returns the largest 64-bit signed integer - - - - - Returns the successor of the argument - - - - - Returns the predeccessor of the argument - - - - - The value one as a System.Int64 - - - - - The value zero as a System.Int64 - - - - - Basic operations on 64-bit integers. The type int64 is identical to <c>System.Int64</c>. - - - - - - - - Build a lazy (delayed) value from the given computation - - - - - Check if a lazy (delayed) value has already been computed - - - - - Build a lazy (delayed) value from the given pre-computed value. - - - - - Build a lazy (delayed) value from the given computation - - - - - See Lazy.Force. - - - - - - - - ASCII LexBuffers - - The type "lexbuf" is opaque, but has an internal position information field - that can be updated by setting "lexbuf.EndPos", for example if you wish - to update the other fields in that position data before or during - lexing. You will need to do this if you wish to maintain accurate - line-count information. If you do this and wish to maintain strict - cross-compiling compatibility with OCamlLex and other tools you may need code - to conditionally use lexbuf_set_curr_p when compiling F# code. - - - - - - - - - - - - - - same as lexeme_end_p - - - - - Return absolute positions into the entire stream of characters - - - - - Return absolute positions into the entire stream of characters - - - - - Return the positions stored in the lexbuf for the matched string - - - - - Return the positions stored in the lexbuf for the matched string - - - - - Return a character from the matched string, innterpreting the bytes using an ASCII encoding - - - - - Return the bytes for the matched string - - - - - Return the matched string interpreting the bytes using the given Unicode text encoding - - - - - Return the matched string - - - - - Fuel a lexer from function that fills an array of bytes up to the given length, returning the - number of bytes filled. - - - - - Fuel a lexer from an array of bytes - - - - - Fuel a lexer from a string, converted to ascii using <c>System.Text.Encoding.ASCII.GetBytes</c> - - - - - Fuel a lexer using the given BinaryReader. - - - - - Fuel a lexer using the given TextReader or StreamReader. - The characters read are decoded to bytes using the given encoding (e.g. System.Text.Encoding.ASCII) - and the bytes presented to the lexer. The encoding used to decode the characters - is associated with the expectations of the lexer (e.g. a lexer may be constructed to accept only - ASCII or pseudo-UTF8 bytes) and will typically be different to - the encoding used to decode the file. - - - - - Fuel a lexer using the given in_channel. The bytes are read using Pervasives.input. - If the in_channel is a textual channel the bytes are - presented to the lexer by decoding the characters using System.Text.Encoding.ASCII. - - - - - Remove all input, though don't discard the except the current lexeme - - - - - Lexing: ML-like lexing support - - This file maintains rough compatibility for lexbuffers used by some ML - laxer generators. The lexbuf carries an associated pair of positions. - Beware that only the "cnum" (absolute character number) field is automatically - updated as each lexeme is matched. Upon each successful match the prior end - position is transferred to be the start position and a new start position - is allocated with an updated pos_cnum field. - - - - - Return the tail of the list. - - Raises <c>System.ArgumentException</c> if <c>list</c> is empty - - - - - Return the first element of the list. - - Raises <c>System.ArgumentException</c> if <c>list</c> is empty - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "rev_append l1 l2" evaluates to "append (rev l1) l2" - - - - - "rev_map2 f l1 l2" evaluates to "map2 f (rev l1) (rev l2)" - - - - - "rev_map f l1" evaluates to "map f (rev l1)" - - - - - Return true if the list is not empty. - - - - - See <c>mem</c>, but uses the physical equality operator (==) for equality tests. - - - - - See <c>remove_assoc</c>, but uses the physical equality operator (==) for equality tests. - - - - - See <c>mem_assoc</c>, but uses the physical equality operator (==) for equality tests. - - - - - See <c>try_assoc</c>, but uses the physical equality operator (==) for equality tests. - - - - - See <c>assoc</c>, but uses the physical equality operator (==) for equality tests - - - - - Remove pair for key from the association list (if it's there). - - - - - Does the key have pair in the association list? - - - - - Lookup key's data in association list, uses (=) equality, - returning "Some data" or "None". - - - - - Lookup key's data in association list, uses (=) equality. - Raise <c>System.IndexOutOfRangeException</c> exception if key not found, in which case you should typically use <c>try_assoc</c> instead. - - - - - Is an element in the list. Elements are compared using generic equality. - - - - - Is an element in the list. Elements are compared using generic equality. - - - - - Like reduceBack, but return both the intermediary and final results - - - - - Like reduce, but return both the intermediary and final results - - - - - Compatibility operations on lists. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A provider for creating and using maps based on a particular comparison function. - The 'Tag type parameter is used to track information about the comparison function. - - - - - A functor to build a collection of operations for creating and using - maps based on the given comparison function. This returns a record that - contains the functions you use to create and manipulate maps of - this kind. The returned value is much like an ML module. - - Language restrictions related to polymorphism may mean you - have to create a new instantiation of for each toplevel - key/value type pair. - - To use this function you need to define a new named class that implements IComparer and - pass an instance of that class as the first argument. For example: - type MyComparer = - new() = { } - interface IComparer<string> with - member self.Compare(x,y) = ... - - let MyStringMapProvider : Map.Provider < string,int > = Map.MakeTagged(new MyComparer()) - - - - - - - - - - - - - - Negation of Obj.eq (i.e. reference/physical inequality) - - - - - See Microsoft.FSharp.Core.LanguagePrimitives.PhysicalEquality - - - - - See Microsoft.FSharp.Core.Operators.box - - - - - See Microsoft.FSharp.Core.Operators.unbox - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You can initialize error recovery by raising the Parse_error exception. - - - - - Parsing: parser support for parsers produced by fsyacc. - - Parsers generated by fsyacc provide location information within parser - actions. However that information is not available globally, but - rather is accessed via the functions available on the following local - variable which is available in all parser actions: - - parseState : 'a Microsoft.FSharp.Text.Parsing.IParseState - - However, this is not compatible with the parser specifications used - with ocamlyacc and similar tools, which make a single parser state available - globally. If you wish to use a global parser state (e.g. so your code will - cross-compile with OCaml) then you can use the functions in this file. - You will need to either generate the parser with '--ml-compatibility' option - or add the code - - Parsing.set_parse_state parseState; - - at the start of each action of your grammar. The functions below - simply report the results of corresponding calls to the latest object - specified by a call to set_parse_state. - - Note that there could be unprotected multi-threaded concurrent access for the - parser information, so you should not in general use these - functions if there may be more than one parser active, and - should instead use the functions directly available from the parseState - object. - - - - - - - - - - - An pseudo-abstraction over binary and textual output channels. - OCaml-compatible channels conflate binary and text IO, and for this reasons their - use from F# is somewhat deprecated The direct use of System.IO StreamWriter, TextWriter and - BinaryWriter objects is preferred, e.g. see System.IO.File.CreateText). Well-written OCaml code - that simply opens either a channel in text or binary mode and then does text - or binary I/O using the OCaml functions will work, though care must - be taken with regard to end-of-line characters (see output_char below). - - This library pretends that an out_channel is just a System.IO.TextWriter. Channels - created using open_out_bin maintain a private System.IO.BinaryWriter, which will be used whenever - do I/O using this channel. - - - - - A pseudo-abstraction over binary and textual input channels. - OCaml-compatible channels conflate binary and text IO, and for this reasons their - use from F# is somewhat deprecated (direct use of System.IO StreamReader, TextReader and - BinaryReader objects is preferred, e.g. see System.IO.File.OpenText). - Well-written OCaml-compatible code that simply opens either a channel in text or binary - mode and then does text or binary I/O using the OCaml-compatible functions below - will work, though care must be taken with regard to end-of-line characters (see - input_char below). - - This library pretends that an in_channel is just a System.IO.TextReader. Channel values - created using open_in_bin maintain a private System.IO.BinaryReader, which will be used whenever - you do I/O using this channel. - - InChannel.of_BinaryReader and InChannel.of_StreamReader allow you to build input - channels out of the corresponding .NET abstractions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This type is present primarily for compatibility with other versions of ML. When - not cross-compiling we recommend using the .NET I/O libraries - - - - - - - - - - - - - - - - - - - - Throw an <c>KeyNotFoundException</c> exception - - - - - Throw an ArgumentException - - - - -Read a line from the console, without the end-of-line character. - - - - -Read an integer from the console. - - - - -Read a floating point number from the console. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Print a character to the stderr stream - - - - - Flush all pending output on the channel to the physical - output device. - - - - - Set the binary mode. If the binary mode is changed from "true" to - "false" then a StreamWriter is created to write the binary stream. The StreamWriter uses - the default text encoding System.Text.Encoding.Default. - - - - - Set the current position in the output channel, measured from the - start of the channel. - - - - - Return the current position in the output channel, measured from the - start of the channel. Not valid on all channels. - - - - - Serialize the given value to the output channel. - - - - - Write the given Unicode string to the output channel. See output_char for the treatment of - '\n' characters within the string. - - - - - Write the given Unicode character to the output channel. - - If the output channel is a binary stream and the UTF-16 value of the Unicode character is greater - than 255 then ArgumentException is thrown. - - No CRLF translation is done on output. That is, if the output character is - '\n' (LF) characters they will not be written as '\r\n' (CRLF) characters, regardless - of whether the underlying operating system or output stream uses CRLF as the default - line-feed character. - - - - - Write the given byte to the output channel. No CRLF translation is - performed. - - - - - Write the given integer to the output channel in binary format. - Only valid on binary channels. - - - - - Write the given range of bytes to the output channel. - - - - - Return the length of the output channel. - Raise an exception if not an app - - - - - Close the given output channel - - - - - Open the given file to write in the mode according to the specified flags - - - - - Open the given file to write in binary-mode - - - - - Open the given file to write in text-mode using the - System.Text.Encoding.Default encoding - - See output_char for a description of CR-LF translation - done on output. - - - - - - - - Set the binary mode to true or false. If the binary mode is changed from "true" to - "false" then a StreamReader is created to read the binary stream. The StreamReader uses - the default text encoding System.Text.Encoding.Default - - - - - Reads bytes from the channel. Blocks if the bytes are not available. - For text channels this only accepts UTF-16 bytes with an encoding less than 256. - Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Reads bytes from the channel. Blocks if the bytes are not available. - See 'input' for treatment of text channels. - Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Report the current position in the input channel - - - - - Input a single serialized value from a binary stream. Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Input a single line. Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Input a single character. Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Input a single byte. - For text channels this only accepts characters with a UTF16 encoding that fits in a byte, e.g. ASCII. - Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Input a binary integer from a binary channel. Compatible with output_binary_int. - - - - - Attempt to input characters from a channel. Does not block if inpout is not available. - Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - No CRLF translation is done on input, even in text mode. That is, if an input file - has '\r\n' (CRLF) line terminators both characters will be seen in the input. - - - - - Attempt to input the given number of bytes from the channel, writing them into the - buffer at the given start position. Does not block if the bytes are not available. - - The use of this function with a channel performing byte-to-character translation (e.g. one - created with open_in, open_in_utf8 or open_in_encoded, or one - or built from a StreamReader or TextReader) is not recommended. - Instead, open the channel using open_in_bin or InChannel.of_BinaryReader. - - If used with a StreamReader channel, i.e. one created using - open_in, open_in_utf8 or open_in_encoded, or one - or built from a StreamReader, this function reads bytes directly from the underlying - BaseStream. This may not be appropriate if any other input techniques are being - used on the channel. - - If used with a TextReader channel (e.g. stdin), this function reads characters from the - stream and then fills some of the byte array with the decoding of these into - bytes, where the decoding is performed using the System.Text.Encoding.Default encoding - - Raise End_of_file (= System.IO.EndOfStreamException) if end of file reached. - - - - - Return the length of the input channel - - - - - Close the channel - - - - - Open the given file in the mode specified by the given flags - - - - - Open the given file to read in binary-mode - - - - - Open the given file to read. - -In the absence of an explicit encoding (e.g. using Open_encoding) open_in -uses the default text encoding (System.Text.Encoding.Default). If you want to read a file -regardless of encoding then you should use binary modes. Note that .NET's -"new StreamReader" function defaults to use a utf8 encoding, and also attempts -to determine an automatic encoding by looking for "byteorder-marks" at the head -of a text file. This function does not do this. - - No CR-LF translation is done on input. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This value is present primarily for compatibility with other versions of ML - - - - - This value is present primarily for compatibility with other versions of ML - - - - - This value is present primarily for compatibility with other versions of ML - - - - - This value is present primarily for compatibility with other versions of ML - The smallest value that when added to 1.0 gives a different value to 1.0 - - - - - This value is present primarily for compatibility with other versions of ML - The lowest non-denormalized positive IEEE64 float - - - - - This value is present primarily for compatibility with other versions of ML - The highest representable positive value in the 'float' type - - - - - - - - This value is present primarily for compatibility with other versions of ML. In F# - the overloaded operators may be used. - - - - - This value is present primarily for compatibility with other versions of ML. In F# - the overloaded operators may be used. - - - - - This value is present primarily for compatibility with other versions of ML. In F# - the overloaded operators may be used. - - - - - This value is present primarily for compatibility with other versions of ML. In F# - the overloaded operators may be used. - - - - - This value is present primarily for compatibility with other versions of ML. In F# - the overloaded operators may be used. - - - - - This value is present primarily for compatibility with other versions of ML - - - - - - - - The exception thrown by <c>invalid_arg</c> and misues of F# library functions - - - - - - - - - - - Negation on integers of the 'int' type - - - - - The highest representable value in the 'int' type - - - - - The lowest representable value in the 'int' type - - - - - n+1 (no overflow checking) - - - - - n-1 (no overflow checking) - - - - - 1D Array element set-accessor ('setter') - - - - - 1D Array element get-accessor ('getter') - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Negation of the '==' operator, see also Obj.eq - - - - -Reference/physical equality. -True if boxed versions of the inputs are reference-equal, OR if -both are value types and the implementation of Object.Equals for the type -of the first argument returns true on the boxed versions of the inputs. - -In normal use on reference types or non-mutable value types this function -has the following properties: - - returns 'true' for two F# values where mutation of data - in mutable fields of one affects mutation of data in the other - - will return 'true' if (=) returns true - - hashq will return equal hashes if (==) returns 'true' - -The use on mutable value types is not recommended. - - - - - - - - - - - - - - The exception thrown by 'assert' failures. - A future release of F# may map this exception to a corresponding .NET exception. - - - - - - - - Non-exhaustive match failures will raise Match failures - A future release of F# may map this exception to a corresponding .NET exception. - - - - - - - - - - - - - - - - - - - - - - -The type of simple immutable lists - - - - -The type of None/Some options - - - - -The type of pointers to mutable reference cells - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Concatenate two lists. - - - - - Concatenate two strings. The overlaoded operator '+' may also be used. - - - - -Exit the current hardware isolated process, if security settings permit, -otherwise raise an exception. Calls System.Environment.Exit. - - - - -Increment a mutable reference cell containing an integer - - - - -Decrement a mutable reference cell containing an integer - - - - - - - - - - - - - - - - - Throw an exception - - - - - Throw a 'Failure' exception - - - - -Create a mutable reference cell - - - - -Assign to a mutable reference cell - - - - -Dereference a mutable reference cell - - - - -Absolute value of the given integer - - - - - - - - - - - - - - - - -The "hash" function is a structural hash function. It is -designed to return equal hash values for items that are -equal according to the polymorphic equality -function Pervasives.(=) (i.e. the standard "=" operator). - - - - -Minimum based on structural comparison - - - - -Maximum based on structural comparison - - - - -Structural comparison - - - - -Structural greater-than-or-equal - - - - -Structural greater-than - - - - -Structural equality - - - - -Structural inequality - - - - -Structural less-than-or-equal comparison - - - - -Structural less-than comparison - - - - - - - -Pervasives: Additional OCaml-compatible bindings - - - - - - - - - - - Compatibility module to display data about exceptions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple operations on signed bytes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -A collection of operations for creating and using sets based on a particular comparison function. -The 'Tag' type parameter is used to track information about the comparison function. - - - - -A functor to build a collection of operations for creating and using - sets based on the given comparison function. This returns a record that - contains the functions you use to create and manipulate maps of - this kind. The returned value is much like an ML module. - - To use this function you need to define a new named class that implements IComparer and - pass an instance of that class as the first argument. For example: - type MyComparer() = - interface IComparer<string> with - member self.Compare(x,y) = ... - - let MyStringSetProvider = Set.MakeTagged(new MyComparer()) - - - - - Build a collection of operations for creating and using - maps based on a single consistent comparison function. This returns a record - that contains the functions you use to create and manipulate maps all of which - use this comparison function. The returned value is much like an ML module. - - Use MakeTagged if you want additional type safety that guarantees that two sets - based on different comparison functions can never be combined in inconsistent ways. - - - - - - - - - - - - - - Immutable sets implemented via binary trees - - - - - Return a string with all characters converted to uppercase. - - - - - Return the index of the first occurrence of the given character - starting from the given index proceeding backwards. - - - - - Return the index of the first occurrence of the given character - from the end of the string proceeding backwards - - - - - Return true if the string contains the given character prior to the given index - - - - - Return the first index of the given character in the - range from the given start position to the end of the string. - Raise <c>KeyNotFoundException</c> if - the string does not contain the given character. - - - - - Return the first index of the given character in the - string. Raise <c>KeyNotFoundException</c> if - the string does not contain the given character. - - - - - Return true is the given string contains the given character in the - range from the given start index to the end of the string. - - - - - Return true is the given string contains the given character in the - range specified by the given start index and the given length - - - - - Return true is the given string contains the given character - - - - - Return s string of length 1 containing the given character - - - - - Return a string of the given length containing repetitions of the given character - - - - - Return a new string with all characters converted to lowercase - - - - - Return a substring of length 'length' starting index 'start'. - - - - - Returns the character at the specified position in the string - - - - - Compare the given strings using ordinal comparison - - - - - Removes all occurrences of a set of characters specified in a - list from the beginning and end of this instance. - - - - - Split the string using the given list of separator characters. - Trimming is also performed at both ends of the string and any empty - strings that result from the split are discarded. - - - - - Return a string with the first character converted to lowercase. - - - - - Return a string with the first character converted to uppercase. - - - - - Compatibility module for string processing. Richer string operations - are available via the member functions on strings and other functionality in - the <c>System.String</c> type - and the <c>System.Text.RegularExpressions</c> namespace. - - - - - Time consumed by the main thread. (for approximate timings). - Generally returns only the processor time used by the main - thread of the application. - - - - - The number of bits in the "int" type. - - - - - Path of the current executable, using - <c>System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,System.AppDomain.CurrentDomain.FriendlyName)</c> - - - - - Run the command and return it's exit code. - - Warning: 'command' currently attempts to execute the string using - the 'cmd.exe' shell processor. If it is not present on the system - then the operation will fail. Use System.Diagnostics.Process - directly to run commands in a portable way, which involves specifying - the program to run and the arguments independently. - - - - - Returns the current working directory for the process using <c>System.IO.Directory.GetCurrentDirectory</c> - - - - - Sets the current working directory for the process using <c>System.IO.Directory.SetCurrentDirectory</c> - - - - - Rename a file on disk using System.IO.File.Move - - - - - Deletes a file using <c>System.IO.File.Delete</c>. - - - - - Call System.Environment.GetEnvironmentVariable. Raise <c>KeyNotFoundException</c> if the variable is not defined. - - - - - Returns true if a file currently exists, using System.IO.File.Exists(s). - - - - - The array of command line options. Gives the command line arguments - as returned by <c>System.Environment.GetCommandLineArgs</c>. - - - - - Sys: Basic system operations (for ML compatibility) - - This module is only included to make it possible to cross-compile - code with other ML compilers. It may be deprecated and/or removed in - a future release. You may wish to use .NET functions directly instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UInt32: ML-like operations on 32-bit System.UInt32 numbers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UInt64: basic operations on 64-bit System.UInt64 numbers. - - - - diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.targets b/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.targets deleted file mode 100644 index 59aa3dca9..000000000 --- a/packages/FSPowerPack.Community.3.0.0.0/Tools/FSharp.PowerPack.targets +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - CallFsLex;CallFsYacc;$(CompileDependsOn) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - - - diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/fslex.exe b/packages/FSPowerPack.Community.3.0.0.0/Tools/fslex.exe deleted file mode 100644 index 47bac61a8..000000000 Binary files a/packages/FSPowerPack.Community.3.0.0.0/Tools/fslex.exe and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/fsyacc.exe b/packages/FSPowerPack.Community.3.0.0.0/Tools/fsyacc.exe deleted file mode 100644 index 864c760ea..000000000 Binary files a/packages/FSPowerPack.Community.3.0.0.0/Tools/fsyacc.exe and /dev/null differ diff --git a/packages/FSPowerPack.Community.3.0.0.0/Tools/install.ps1 b/packages/FSPowerPack.Community.3.0.0.0/Tools/install.ps1 deleted file mode 100644 index 4698242c4..000000000 --- a/packages/FSPowerPack.Community.3.0.0.0/Tools/install.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -param($rootPath, $toolsPath, $package, $project) - -Add-BindingRedirect $project.Name - -$project.ProjectItems | ForEach { if ($_.Name -eq "InstallationDummyFile.txt") { $_.Remove() } } -$projectPath = Split-Path $project.FullName -Parent -Join-Path $projectPath "InstallationDummyFile.txt" | Remove-Item diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.dll deleted file mode 100644 index 0e4b2eb79..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.xml b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.xml deleted file mode 100644 index 051bd8ba4..000000000 --- a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.xml +++ /dev/null @@ -1,5118 +0,0 @@ - - -FSharp.PowerPack - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - The total number of keys in the hash table - - - - - Lookup the given element in the table, returning the result as an Option - - - - - Replace the latest binding (if any) for the given element. - - - - - Remove the latest binding (if any) for the given element from the table - - - - -Apply the given function to each binding in the hash table - - - - - Apply the given function to each element in the collection threading the accumulating parameter - through the sequence of function applications - - - - - Find all bindings for the given element in the table, if any - - - - - - - - - - - - - - Make a shallow copy of the collection - - - - - Test if the collection contains any bindings for the given element - - - - - Clear all elements from the collection - - - - - Add a binding for the element to the table - - - - - - - - - - - - - - Build a map that contains the bindings of the given IEnumerable - - - - - Create a new empty mutable HashMultiMap with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Create a new empty mutable HashMultiMap with the given key hash/equality functions - - - - - Hash tables, by default based on F# structural "hash" and (=) functions. - The table may map a single key to multiple bindings. - - - - - The total number of elements in the set - - - - - Remove the given element from the set - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to the set threading the accumulating parameter - through the sequence of function applications - - - - - Make a shallow copy of the set - - - - - Test if the set contains the given element - - - - - Clear all elements from the set - - - - - Add an element to the collection - - - - - - - - - - - - - - Create a new mutable hash set with the given elements and using the given key hash/equality functions - - - - - Create a new empty mutable hash set with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Create a new empty mutable hash set using the given key hash/equality functions - - - - - Mutable hash sets based by default on F# structural "hash" and (=) functions. Implemented via a hash table and/or Dictionary. - - - - - LazyLists are possibly-infinite, cached sequences. See also IEnumerable/Seq for - uncached sequences. LazyLists normally involve delayed computations without - side-effects. The results of these computations are cached and evaluations will be - performed only once for each element of the lazy list. In contrast, for sequences - (IEnumerable) recomputation happens each time an enumerator is created and the sequence - traversed. - - LazyLists can represent cached, potentially-infinite computations. Because they are - cached they may cause memory leaks if some active code or data structure maintains a - live reference to the head of an infinite or very large lazy list while iterating it, - or if a reference is maintained after the list is no longer required. - - Lazy lists may be matched using the LazyList.Cons and LazyList.Nil active patterns. - These may force the computation of elements of the list. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Build a new collection from the given enumerable object - - - - - Return a view of the collection as an enumerable object - - - - - Build a non-lazy list from the given collection. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build a collection from the given list. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build an array from the given collection - - - - - Build a collection from the given array. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - - - - - Return a new list consisting of the results of applying the given accumulating function - to successive elements of the list - - - - - Apply the given function to each element of the collection. - - - - - Return a new collection which on consumption will consist of only the elements of the collection - for which the given predicate returns "true" - - - - - Return the list which contains on demand the list of elements of the list of lazy lists. - - - - - Return the list which contains on demand the pair of elements of the first and second list - - - - - Return the list which contains on demand the elements of the first list followed - by the elements of the second list - - - - - Return a list that contains the elements returned by the given computation. - The given computation is not executed until the first element on the list is - consumed. The given argument is passed to the computation. Subsequent elements - in the list are generated by again applying the residual 'b to the computation. - - - - - Return a list that is in effect the list returned by the given computation. - The given computation is not executed until the first element on the list is - consumed. - - - - - Return the list which on consumption will consist of an infinite sequence of - the given item - - - - - Return a new list which on consumption contains the given item - followed by the list returned by the given computation. The - - - - - Return a new list which contains the given item followed by the - given list. - - - - - Return the length of the list - - - - - Evaluates to the list that contains no items - - - - - Return the first element for which the given function returns <c>true</c>. - Raise <c>KeyNotFoundException</c> if no such element exists. - - - - - Apply the given function to successive elements of the list, returning the first - result where function returns <c>Some(x)</c> for some x. If the function never returns - true, 'None' is returned. - - - - - Return the list which on consumption will skip the first 'n' elements of - the input list. - - - - - Return the list which on consumption will consist of at most 'n' elements of - the input list. - - - - - Get the first cell of the list. - - - - - Return the list corresponding to the remaining items in the sequence. - Forces the evaluation of the first cell of the list if it is not already evaluated. - - - - - Return the first element of the list. Forces the evaluation of - the first cell of the list if it is not already evaluated. - - - - - Test if a list is empty. Forces the evaluation of - the first element of the stream if it is not already evaluated. - - - - - - - - Split an array of pairs into two arrays - - - - - Combine the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an <c>ArgumentException</c> is - raised.. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return an array containing the given element - - - - - Like <c>foldBack</c>, but return both the intermediary and final results - - - - - Like <c>fold</c>, but return the intermediary and final results - - - - - Build a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply the given function to pair of elements drawn from matching indices in two arrays, - also passing the index of the elements. The two arrays must have the same lengths, - otherwise an <c>ArgumentException</c> is raised. - - - - - Return true if the given array is empty, otherwise false - - - - - Test elements of the two arrays pairwise to see if all pairs of elements satisfy the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - Apply a function to pairs of elements drawn from the two collections, right-to-left, - threading an accumulator argument through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to pairs of elements drawn from the two collections, - left-to-right, threading an accumulator argument - through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN-1 iN))</c>. Raises ArgumentException if the array has size zero. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f i0 i1)...) iN</c>. Raises ArgumentException if the array has size zero. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Test elements of the two arrays pairwise to see if any pair of element satisfies the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - - - - Return a view of the array as an enumerable object - - - - - Build a ResizeArray from the given elements - - - - - Return a fixed-length array containing the elements of the input ResizeArray - - - - - Sort the elements using the key extractor and generic comparison on the keys - - - - - Sort the elements using the given comparison function - - - - -Return a new array with the elements in reverse order - - - - -Split a list of pairs into two lists - - - - -Combine the two arrays into an array of pairs. The two arrays must have equal lengths. - - - - -Apply the given function to successive elements, returning the first -result where function returns "Some(x)" for some x. - - - - -Return the first element for which the given function returns <c>true</c>. -Return None if no such element exists. - - - - -Return the first element for which the given function returns <c>true</c>. -Raise <c>KeyNotFoundException</c> if no such element exists. - - - - -Apply the given function to each element of the array. Return -the array comprised of the results "x" for each element where -the function returns Some(x) - - - - -Split the collection into two collections, containing the -elements for which the given predicate returns <c>true</c> and <c>false</c> -respectively - - - - -Return a new collection containing only the elements of the collection -for which the given predicate returns <c>true</c> - - - - - Test if all elements of the array satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and "j0...jN" - then computes <c>p i0 && ... && p iN</c>. - - - - - Test if any element of the array satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>p i0 or ... or p iN</c>. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. The integer index passed to the -function indicates the index of element being transformed. - - - - -Apply the given function to each element of the array. The integer passed to the -function indicates the index of element. - - - - -Build a new collection whose elements are the results of applying the given function -to the corresponding elements of the two collections pairwise. The two input -arrays must have the same lengths. - - - - -Apply the given function to two arrays simultaneously. The -two arrays must have the same lengths, otherwise an Invalid_argument exception is -raised. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. - - - - -Apply the given function to each element of the array. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN s))</c>. - - - - - Apply a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f s i0)...) iN</c> - - - - -Build and array from the given seq - - - - - - - -Build an array from the given list - - - - - - - -Build a list from the given array - - - - -Read a range of elements from the first array and write them into the second. - - - - -Fill a range of the collection with the given element - - - - -Build a new array that contains the elements of the given array - - - - -Build a new array that contains the given subrange specified by -starting index and length. - - - - -Build a new array that contains the elements of each of the given list of arrays - - - - -Build a new array that contains the elements of the first array followed by the elements of the second array - - - - - Create an array by calling the given generator on each index. - - - - - Create an array whose elements are all initially the given value. - - - - - Set the value of an element in the collection. You can also use the syntax <c>arr.[idx] <- e</c>. - - - - - Fetch an element from the collection. You can also use the syntax <c>arr.[idx]</c>. - - - - - Return the length of the collection. You can also use property <c>arr.Length</c>. - - - - - Generic operations on the type System.Collections.Generic.List, which is called ResizeArray in the F# libraries. - - - - - - - - Lookup or set the given element in the table. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - Lookup or set the given element in the table. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - The number of bindings in the hash table - - - - - Lookup the given element in the table, returning the result as an Option - - - - - Replace the latest binding (if any) for the given element. - - - - - Remove the latest binding (if any) for the given element from the table - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to each element in the collection threading the accumulating parameter - through the sequence of function applications - - - - - Find all bindings for the given element in the table, if any - - - - - Create a new empty mutable hash table with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Make a shallow copy of the collection - - - - - Test if the collection contains any bindings for the given element - - - - - Test if the collection contains any bindings for the given element - - - - - Clear all elements from the collection - - - - - Add a binding for the element to the table - - - - - HashMultiMap, but where a constraint tag tracks information about the hash/equality functions used - for the hashing. When the tag is Tags.StructuralHash this is identical to HashMultiMap. - - - - - - - - The number of elements in the set - - - - - Remove the given element from the set - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to the set threading the accumulating parameter - through the sequence of function applications - - - - - Create a new empty mutable hash set with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Make a shallow copy of the set - - - - - Test if the set contains the given element - - - - - Clear all elements from the set - - - - - Add an element to the collection - - - - - Mutable hash sets where a constraint tag tracks information about the hash/equality functions used - for the hashing. When the tag is Tags.StructuralHash this is identical to HashSet. - - - - - - - - Lookup an element in the map. Raise <c>KeyNotFoundException</c> if no binding - exists in the map. - - - - - Gets a value indicating whether there are no bindings in the map. - - - - - The number of bindings in the map - - - - - Gets the comparer used for the map. - - - - - Lookup an element in the map, returning a <c>Some</c> value if the element is in the domain - of the map and <c>None</c> if not. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array - - - - - Remove an element from the domain of the map. No exception is raised if the element is not present. - - - - - Build two new maps, one containing the bindings for which the given predicate returns 'true', - and the other the remaining bindings. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The index passed to the - function indicates the index of element being transformed. - - - - - Apply the given function to each binding in the dictionary - - - - - - - - Return true if the given predicate returns true for all of the - bindings in the map. Always returns true if the map is empty. - - - - - Given the start and end points of a key range, - Fold over the bindings in the map that are in the range, - and the end points are included if present (the range is considered a closed interval). - - - - - Fold over the bindings in the map. - - - - - Fold over the bindings in the map. - - - - - Search the map looking for the first element where the given function returns a <c>Some</c> value - - - - - Build a new map containing the bindings for which the given predicate returns 'true'. - - - - - Return true if the given predicate returns true for one of the - bindings in the map. Always returns false if the map is empty. - - - - - - - - The empty map, and use the given comparer comparison function for all operations associated - with any maps built from this map. - - - - - Build a map that contains the bindings of the given IEnumerable - and where comparison of elements is based on the given comparison function - - - - - Test is an element is in the domain of the map - - - - - Return a new map with the binding added to the given map. - - - - - Immutable maps. Keys are ordered by construction function specified - when creating empty maps or by F# structural comparison if no - construction function is specified. - - <performance> - Maps based on structural comparison are - efficient for small keys. They are not a suitable choice if keys are recursive data structures - or require non-structural comparison semantics. - </performance> - Immutable maps. A constraint tag carries information about the class of key-comparers being used. - - - - - - - - Return a new set with the elements of the second set removed from the first. - - - - - Compute the union of the two sets. - - - - - Returns the lowest element in the set according to the ordering being used for the set - - - - - Returns the highest element in the set according to the ordering being used for the set - - - - - A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. - - - - - Return the number of elements in the set - - - - - Gets the comparer used for the set. - - - - - The number of elements in the set - - - - - Compute the union of the two sets. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array. - - - - - A singleton set based on the given comparison operator - - - - - A useful shortcut for Set.remove. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Build two new sets, one containing the elements for which the given predicate returns 'true', - and the other the remaining elements. - - - - - Apply the given function to each binding in the collection - - - - - Evaluates to "true" if all elements of the first set are in the second - - - - - Evaluates to "true" if all elements of the second set are in the first - - - - - Compute the intersection of the two sets. - - - - - Test if all elements of the collection satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and <c>j0...jN</c> then - computes <c>p i0 && ... && p iN</c>. - - - - - Apply the given accumulating function to all the elements of the set - - - - - Return a new collection containing only the elements of the collection - for which the given predicate returns "true" - - - - - Test if any element of the collection satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> then computes - <c>p i0 or ... or p iN</c>. - - - - - - - - Compares two sets and returns true if they are equal or false otherwise - - - - - The empty set based on the given comparer - - - - - Return a new set with the elements of the second set removed from the first. - - - - - A set based on the given comparer containing the given initial elements - - - - - A useful shortcut for Set.contains. See the Set module for further operations on sets. - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - A useful shortcut for Set.add. Note this operation prodcues a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Immutable sets based on binary trees, default tag - Immutable sets where a constraint tag carries information about the class of key-comparer being used. - - - - - Wait for the result and commit it - - - - - Record the result in the AsyncResultCell. Subsequent sets of the result are ignored. - - This may result in the scheduled resumption of a waiting asynchronous operation - - - - - Create a new result cell - - - - - A helper type to store a single result from an asynchronous computation and asynchronously - access its result. - - - - - - - - - - - - - - Create an async whose result depends on the value of an AsyncResult. - - - - - Represents the reified result of an asynchronous computation - - - - - An async that produces true if the reader is at the end of stream and false otherwise - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - - - - - - - Creates an async that read all characters in the stream up to the end. - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads next line from the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads exactly <c>count</c> characters from the stream unless end of stream is reached and puts them - into <c>buffer</c> starting at <c>index</c>. The async returns the number of characters that are read (if end-of-stream is not reached - that will be <c>count</c> - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads all the charactes that are avilable in the stream up to <c>count</c characters and puts them - into <c>buffer</c> starting at <c>index</c>. The async returns the number of characters that are read. - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads next character from the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that produces next character from the stream without advancing the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - -. DiscardBufferedData tells StreamReader to throw away its internal -. buffer contents. This is useful if the user needs to seek on the - underlying stream to a known location then wants the StreamReader - to start reading from this new point. This method should be called - very sparingly, if ever, since it can lead to very poor performance. - However, it may be the only way of handling some scenarios where - users need to re-read the contents of a StreamReader a second time. - - - - - - - - - - - - - - - - - - - - Creates a new AsyncStreamReader for the given stream. The - character encoding is set by encoding and the buffer size, - in number of 16-bit characters, is set by bufferSize. - - Note that detectEncodingFromByteOrderMarks is a very - loose attempt at detecting the encoding by looking at the first - 3 bytes of the stream. It will recognize UTF-8, little endian - unicode, and big endian unicode text, but that's it. If neither - of those three match, it will use the Encoding you provided. - - - - - Implements a TextReader-like API that asynchronously reads characters from - a byte stream in a particular encoding. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - See Lazy.Force - - - - - - - - - - - Return the given rational number - - - - - Return the negation of a rational number - - - - - Return the difference of two rational numbers - - - - - Return the product of two rational numbers - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - Return the result of converting the given rational number to an integer - - - - - Return the result of converting the given rational number to a big integer - - - - - Return the result of converting the given rational number to a floating point number - - - - - This operator is for use from other .NET languages - - - - - Return the ratio of two rational numbers - - - - - Return the sum of two rational numbers - - - - - Get zero as a rational number - - - - - - - - Return the sign of a rational number; 0, +1 or -1 - - - - - Get one as a rational number - - - - - Return the numerator of the normalized rational number - - - - - Return a boolean indicating if this rational number is strictly positive - - - - - Return a boolean indicating if this rational number is strictly negative - - - - - Return the denominator of the normalized rational number - - - - - - - - Return the result of converting the given rational number to an integer - - - - - Return the result of converting the given rational number to a floating point number - - - - - Return the result of converting the given rational number to a big integer - - - - - Return the result of raising the given rational number to the given power - - - - - Return the result of converting the string to a rational number - - - - - - - - Return the result of converting the given integer to a rational number - - - - - Return the result of converting the given big integer to a rational number - - - - - Return the absolute value of a rational number - - - - - The type of arbitrary-sized rational numbers - - - - - Unary negation of a complex number - - - - - Subtract one complex number from another - - - - - Multiply a complex number by a scalar - - - - - Multiply a scalar by a complex number - - - - - Multiply two complex numbers - - - - - Complex division of two complex numbers - - - - - Add two complex numbers - - - - - The real part of a complex number - - - - - The imaginary part of a complex number - - - - - The complex number 0+0i - - - - - The real part of a complex number - - - - - The polar-coordinate phase of a complex number - - - - - The complex number 0+1i - - - - - The complex number 1+0i - - - - - The polar-coordinate magnitude of a complex number - - - - - The imaginary part of a complex number - - - - - The conjugate of a complex number, i.e. x-yi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create a complex number using magnitude/phase polar coordinates - - - - - Create a complex number x+ij using rectangular coordinates - - - - - - - - Computes the absolute value of a complex number: e.g. Abs x+iy = sqrt(x**2.0 + y**2.0.) - Note: Complex.Abs(z) is the same as z.Magnitude - - - - - The type of complex numbers stored as pairs of 64-bit floating point numbers in rectangular coordinates - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the item at the given position in a matrix - - - - - Prefix '+' operator. A nop. - - - - - Matrix negation. - - - - - Point-wise subtraction of two matrices. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Multiply each element of a matrix by a scalar value - - - - - Multiply each element of a matrix by the given scalar value - - - - - Matrix-vector multiplication. - - - - - Matrix multiplication. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Point-wise matrix multiplication. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Point-wise addition of two matrices. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Get the transpose of a matrix. - - - - - - - - Get the number of rows in a matrix - - - - - Get the number of columns in a matrix - - - - - Returns sqrt(sum(norm(x)*(norm(x))) of all the elements of a matrix. - The element type of a matrix must have an associated instance of INormFloat<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Return the non-zero entries of a sparse or dense matrix - - - - - Get the item at the given position in a matrix - - - - - Indicates if a matrix uses the sparse representation. - - - - - Indicates if a matrix uses the dense representation. - - - - - Get the internal array of values for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of row offsets for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of column values for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of values for a dense matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Retrieve the dictionary of numeric operations associated with the element - type of this matrix. Accessing the property may raise an NotSupportedException if the element - type doesn't support any numeric operations. The object returned - may support additional numeric operations such as IFractional: - this can be determined by a dynamic type test against the object - returned. - - - - - Get the number of (rows,columns) in a matrix - - - - - Get the main diagonal of a matrix, as a vector - - - - - Convert a matrix to a column vector - - - - - Convert a matrix to a row vector - - - - - Return a new array containing the elements of a matrix - - - - - - - - Supports the slicing syntax 'A.[idx1..idx2,idx1..idx2] <- B' - - - - - Select a range of rows from a matrix - - - - - Select a row from a matrix - - - - - Select a region from a matrix - - - - - Permutes the rows of a matrix. - - - - - Permutes the columns of a matrix. - - - - - Supports the slicing syntax 'A.[idx1..idx2,idx1..idx2]' - - - - - - - - Return the nth diagonal of a matrix, as a vector. Diagonal 0 is the primary - diagonal, positive diagonals are further to the upper-right of a matrix. - - - - - - - - Create a new matrix that is a copy of an array - - - - - Select a range of columns from a matrix - - - - - Select a column from a matrix - - - - - The type of matrices. The arithmetic operations on the element type are determined by inspection on the element type itself. - Two representations are supported: sparse and dense. - - - - - A permutation of a finite range of integers 0 .. N-1, represented by a mapping of index positions - - - - - - - - Return a row vector, unchanged - - - - - Point-wise negation of a row vector - - - - - Point-wise subtraction of two row vectors - - - - - Multiply a scalar by a row vector - - - - - Multiply a row vector by a scalar - - - - - Multiply a row vector by a matrix - - - - - Multiply a row vector by a vector - - - - - Point-wise multiplication of two row vectors - - - - - Point-wise addition of two row vectors - - - - - Get the transpose of the row vector. - - - - - - - - - - - - - - - - - Get the underlying internal array of values for a vector. This property - should only be used when interoperating with other matrix libraries. - - - - - - - - Return a new array containing a copy of the elements of a vector - - - - - Supports the slicing syntax 'rv.[idx1..idx2] <- rv2' - - - - - Permute the elements of the row vector. - - - - - Supports the slicing syntax 'rv.[idx1..idx2]' - - - - - - - - - - - Create a new matrix that is a copy of a array - - - - - The type of row vectors. - - - - - Gets an item from a vector - - - - - Return the input vector - - - - - Negate a vector - - - - - Subtract two vectors, pointwise - - - - - Multiply a vector by a scalar - - - - - Multiply a column vector and a row vector to produce a matrix - - - - - Multiply each element of a vector by a scalar value. - - - - - Point-wise multiplication of two vectors. - - - - - Add two vectors, pointwise - - - - - Get the transpose of a vector. - - - - - - - - Gets the number of rows in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - - Gets the number of entries in a vector - - - - - Gets an item from a vector - - - - - Get the underlying internal array of values for a vector. This property - should only be used when interoperating with other matrix libraries. - - - - - Gets the element operations for the element type of a vector, if any - - - - - Return a new array containing a copy of the elements of a vector - - - - - Supports the slicing syntax 'v.[idx1..idx2] <- v2' - - - - - Permute the elements of a vector. - - - - - Supports the slicing syntax 'v.[idx1..idx2]' - - - - - - - - - - - Create a new matrix that is a copy of a array - - - - - The type of column vectors. The arithmetic operations on the element type are determined by inspection - on the element type itself - - - - - - - - The type of complex numbers - - - - - The type of floating point matrices - - - - - - - - The type of floating point row vectors - - - - - The type of floating point column vectors - - - - - Tagent - - - - - Cosine - - - - - Sine - - - - - sqrt(x) and 0 <= phase(x) < pi - - - - - log(x) is natural log (base e) - - - - - exp(x) = e^x - - - - - pi - - - - - Multiply a complex number by a scalar - - - - - Multiply a scalar by a complex number - - - - - Unary negation of a complex number - - - - - Complex division of two complex numbers - - - - - Multiply two complex numbers - - - - - Subtract one complex number from another - - - - - Add two complex numbers - - - - - The complex number 0+1i - - - - - The complex number 1+0i - - - - - The complex number 0+0i - - - - - The conjugate of a complex number, i.e. x-yi - - - - - A complex of magnitude 1 and the given phase and , i.e. cis x = mkPolar 1.0 x - - - - - Create a complex number using magnitude/phase polar coordinates - - - - - The imaginary part of a complex number - - - - - The real part of a complex number - - - - - The polar-coordinate phase of a complex number - - - - - The polar-coordinate magnitude of a complex number - - - - - - - - - - - Constructs a complex number from both the real and imaginary part. - - - - - - - - Record an AppDomain-wide association between the given type and the given dictionary of - numeric operations. Raise an error if an existing association already exists. - - - - - - - - Attempt to determine a numeric association for the given type, i.e. a registered dictionary of - numeric operations. The interface can be queried dynamically for additional functionality in the numerics - hierarchy. - - - - - Associations are a way of associating dictionaries of - operations with given types at runtime. Associations are global to a - .NET application domain. Once specified an association may not be deleted - or modified. - - In this release the system of associations is simply - limited to a registry of types that support dictionaries (i.e. interface objects) - of numeric operations. The following types are pre-registered with associated numeric - operations: float, int32, int64, bigint, float32, Complex, bignum. Other types must be - registered explicitly by user code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In-place subtraction, mutating the first matrix argument. - - - - - In-place addition, mutating the first matrix argument. - - - - - Create a new matrix that is a copy of the given array - - - - - Map the given indexed function over each element of a matrix, producing a new matrix - - - - - Map a function over each element of a matrix, producing a new matrix - - - - - Fold a function down a particular row of a matrix - - - - - Fold a function along a particular column of a matrix - - - - - Fold a function along each row of a matrix - - - - - Fold a function down each column of a matrix - - - - - Fold an indexed function over all elements of a matrix - - - - - Fold a function over all elements of a matrix - - - - - Check if a predicate holds for at least one element of a matrix - - - - - Check if a predicate holds for all elements of a matrix - - - - - Check if a predicate holds for at least one element of a matrix - - - - - Check if a predicate holds for all elements of a matrix - - - - -sqrt(sum(x*x)) of all the elements of a matrix - - - - -Multiply all the elements of a matrix - - - - - Sum all the elements of a matrix - - - - - Generate a new matrix of the same size as the input with random entries - drawn from the range 0..aij. Random numbers are generated using a globally - shared System.Random instance with the initial seed 99. - - - - - Sum of the diagonal elements of a matrix - - - - - Transpose of a matrix. Use also m.Transpose - - - - - Point-wise exponential of a matrix. - - - - - Dot product - - - - - Add two matrices (operator +) - - - - - Point-wise minimum element of two matrices - - - - - Point-wise maximum element of two matrices - - - - - Ensure that a matrix uses dense representation - - - - - Return the first column of a matrix - - - - - Return the first row of a matrix - - - - - Return the element at row 0, column 0 of a matrix - - - - - Create a matrix with one column from the given vector - - - - - Create a matrix with one row from the given row vector - - - - - Create a 1x1 matrix containing the given value - - - - - Return a new array containing the elements of the given matrix - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a square matrix with a vector lying on diagonal - - - - - Create a square matrix with the constant 1.0 lying on diagonal - - - - - Create a matrix with all entries zero - - - - - Create a sparse representation matrix with the given entries. Not all - operations are available for sparse matrices, and mutation is not permitted. - If an operation on sparse matrices raises a runtime exception then consider - converting to a dense matrix using to_dense. - - - - - Create a dense representation matrix with the given entries. - - - - - Create a matrix with all entries the given constant - - - - - - - - Set an element of a matrix - - - - - Get an element of a matrix - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Subtract the second matrix from the first, by mutating the first - - - - - Add the second matrix to the first by, mutating the first - - - - - Map the given position-indexed function over a matrix - - - - - Map a function over a matrix - - - - - Create a new matrix that is a copy of the given array - - - - - Return true if an indexed predicate returns true for some value in a matrix - - - - - Return true if an indexed predicate returns true for all values in a matrix - - - - - Return true if a predicate returns true for some value in a matrix - - - - - Return true if a predicate returns true for all values in a matrix - - - - - Fold an indexed function over all elements of a matrix - - - - - Fold a function over all elements of a matrix - - - - - Returns sqrt(sum(norm(x)*(norm(x))) of all the elements of a matrix. - The element type of a matrix must have an associated instance of INormFloat<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Compute the product of the elements in a matrix - - - - - Compute the sum of the elements in a matrix - - - - - Compute the sum of the diagonal of a square matrix - - - - - Return a new matrix which is the transpose of the input matrix - - - - - Sum of the point-wise multiple of the two matrices. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - -Take the pointwise maximum of two matrices - - - - -Take the pointwise maximum of two matrices - - - - - Create a matrix containing the given vector along the diagonal. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a square matrix with the one for the element type lying on diagonal - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a matrix containing the zero element at each index. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a matrix using a function to compute the item at each index. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - The function is passed the dictionary of associated operations in addition to the index pair. - - - - - Create a matrix using a function to compute the item at each index. - - - - - Extract the first column of a matrix - - - - - Extract the first row of a matrix - - - - - Get the element at column zero, row zero - - - - - Create a matrix from a column vector - - - - - Create a matrix from a row vector - - - - - Create a 1x1 matrix containing the given value - - - - - Create a sparse matrix from the given sequence of elements - - - - - Create a dense matrix from the given sequence of elements - - - - - Create a matrix containing the given value at every element. - - - - - Return a new array containing the elements of the given matrix - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Set an element in a matrix. The indexes are given in row/column order. - - - - - Get an element from a matrix. The indexes are given in row/column order. - - - - - Operations to manipulate matrix types carrying - arbitrary element types. The names and types of the operations match those - in the containing module Math.Matrix. - - The numeric operations on the element type (add, zero etc.) are inferred from the type - argument itself. That is, for some operations - the element type of a matrix must have an associated instance of INumeric<'T> - or some more specific numeric association (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Operations to manipulate floating - point matrices. The submodule <c>Matrix.Generic</c> contains a - matching set of operations to manipulate matrix types carrying - arbitrary element types. - - - - - Builds a (row) vector from a sequence of floats. - - - - - Builds a (column) vector from a sequence of floats. - - - - - Builds a matrix from a sequence of sequence of floats. - - - - - - - Version of System.Single.NaN that is generic in its units-of-measure - - - Version of System.Single.PositiveInfinity that is generic in its units-of-measure - - - Version of System.Double.NaN that is generic in its units-of-measure - - - Version of System.Double.PositiveInfinity that is generic in its units-of-measure - - - - - - - - - - - - - - - - - - - - - - - - - - - - The identity permutation over any size - - - - - Return a permutation that rotates right by the given distance. If the distance - is negative then a left rotation results. - - - - - Return a permutation that, when applied, maps index 0 to size-1, size-1 to 0 etc. - - - - - Return a swaps the given two elements over any size - - - - - - - - Create a permutation by specifying (source,destination) index pairs. For example, - Permutation(3,[ (0,2);(1,0); (2,1) ]) specifies a permutation that rotates - all elements left one place. Not all elements need be given, e.g. - Permutation(5,[ (1,2);(2,1) |]) specifies a permutation that swaps elements at indexes - 1 and 2. - - - - - - - - Create a permutation by specifying the result of permuting [| 0 .. n-1 |]. For example, - Permutation.ofArray [| 1;2;0 |] specifies a permutation that rotates all elements right one place. - - - - - - - - Unified atomic mass unit - - - - - Electron volt - - - - - Stefan-Boltzmann constant - - - - - Boltzmann constant R/N_A - - - - - Molar gas constant - - - - - Faraday constant - - - - - Avogadro constant - - - - - Rydberg constant - - - - - Fine-structure constant - - - - - Proton mass - - - - - Electron mass - - - - - Conductance quantum 2e^2/h - - - - - Magnetic flux quantum h/2e - - - - - Elementary charge - - - - - Dirac constant, also known as the reduced Planck constant = h/2pi - - - - - Planck constant - - - - - Newtonian constant of gravitation - - - - - electric constant = 1/(mu0 c^2) - - - - - magnetic constant - - - - - speed of light in vacuum - - - - - Fundamental physical constants, with units-of-measure - - - - - - - - - - - - - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of double precision floats - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - - - - - - - Return a vector of the given length where every entry is zero. - - - - - Create by comprehension - - - - - Create by constant initialization - - - - - Get the dimensions (number of rows) of a column rowvec. - - - - - Set an element of a column rowvec - - - - - Get an element of a column vector - - - - - - - - - - - - - - - - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a row vector from an array of elements - - - - - Create a row vector from a sequence of elements - - - - - Create a row vector from a list of elements - - - - - Return a vector of the given length where every entry is zero. - - - - - Create by constant initialization - - - - - Create by comprehension - - - - - Transpose the row vector - - - - - Get the number of rows in a column vector. - - - - - Set an element in a column vector. - - - - - Get an element from a column vector. - - - - - Operations to manipulate row vectors types carrying - arbitrary element types. - - - - - Operations to manipulate floating - point row vectors. These are included for completeness and are - nearly always transposed to column vectors. - - - - - katal, SI unit of catalytic activity - - - - - sievert, SI unit of does equivalent - - - - - gray, SI unit of absorbed dose - - - - - becquerel, SI unit of activity referred to a radionuclide - - - - - lux, SI unit of illuminance - - - - - lumen, SI unit of luminous flux - - - - - henry, SI unit of inductance - - - - - tesla, SI unit of magnetic flux density - - - - - weber, SI unit of magnetic flux - - - - - siemens, SI unit of electric conductance - - - - - ohm, SI unit of electric resistance - - - - - farad, SI unit of capacitance - - - - - volt, SI unit of electric potential difference, electromotive force - - - - - coulomb, SI unit of electric charge, amount of electricity - - - - - watt, SI unit of power, radiant flux - - - - - joule, SI unit of energy, work, amount of heat - - - - - pascal, SI unit of pressure, stress - - - - - newton, SI unit of force - - - - - hertz, SI unit of frequency - - - - - candela, SI unit of luminous intensity - - - - - mole, SI unit of amount of substance - - - - - kelvin, SI unit of thermodynamic temperature - - - - - ampere, SI unit of electric current - - - - - second, SI unit of time - - - - - kilogram, SI unit of mass - - - - - metre (or meter), SI unit of length - - - - - The International System of Units (SI) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Map an indexed function over each element of a vector - - - - - Map a function over each element of a vector - - - - - Copy a vector - - - - - Fold an indexed function over all elements of a vector - - - - - Fold a function over all elements of a vector - - - - - Return true if an indexed predicate returns true for some value in a vector - - - - - Return true if an indexed predicate returns true for all values in a vector - - - - - Return true if a predicate returns true for some value in a vector - - - - - Return true if a predicate returns true for all values in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - -Multiply all the elements of a matrix - - - - -Sum all the elements of a vector - - - - -Transpose of a matrix. Use also m.Transpose - - - - -Point-wise exponential of a vector. - - - - -Dot product - - - - - Create a vector that represents a integral mesh over the given range - e.g. range 1 5 = vector [ 1.;2.;3.;4.;5. ] - - - - - Create a vector that represents a mesh over the given range - e.g. rangef (-1.0) 0.5 1.0 = vector [ -1.0; -0.5; 0.0; 0.5; 1.0] - - - - - Return a vector of the given length where every entry is zero. - - - - - Generate a vector of the given length where each entry contains the given value - - - - - Create a 1-element vector - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of double precision floats - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - Create a vector of a fixed length using a function to compute the initial element values - - - - - Get the dimensions (number of rows) of a column vector. Identical to <c>nrows</c> - - - - - Set an element of a column vector - - - - - Get an element of a column vector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Map an indexed function over each element of a vector - - - - - Map a function over each element of a vector - - - - - Copy the vector - - - - - Fold an indexed function over all elements of a vector - - - - - Fold a function over all elements of a vector - - - - - Return true if an indexed predicate returns true for some value in a vector - - - - - Return true if an indexed predicate returns true for all values in a vector - - - - - Return true if a predicate returns true for some value in a vector - - - - - Return true if a predicate returns true for all values in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - -Multiply all the elements of a matrix - - - - -Sum all the elements of a vector - - - - -Dot product - - - - -Take the pointwise minimum of two vectors - - - - -Take the pointwise maximum of two vectors - - - - - Return a vector of the given length where every entry is zero. - - - - - Generate a vector of the given length where each entry contains the given value - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of elements - - - - - Create a 1-element vector - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - Creation: useful when the element type has associated operations. - - - - - Creation: general - - - - - Get the dimensions (number of rows) of a column vector. Identical to <c>nrows</c> - - - - - Set an element of a column vector - - - - - Get an element of a column vector - - - - - Operations to manipulate column vectors carrying - arbitrary element types. - - - - - Operations to manipulate floating - point column vectors. The submodule VectorOps.Generic contains a - matching set of operations to manipulate column vectors carrying - arbitrary element types. - - - - - See NativeArray2 - - - - - Get or set an entry in the array - - - - - - - - - - - - - - View a FortranMatrix as a CMatrix. Doesn't actually allocate - a new matirx - just gives a different label to the same bits, and swaps the - row/column count information associated with the bits. - - - - - Get or set an entry in the array - - - - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a Fortran-style column major two-dimensional matrix of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - Get or set an entry in the array - - - - - Pointer to the C-style row major two-dimensional array - - - - - Get the number of rows of the native array - - - - - Get the number of columns of the native array - - - - - View a CMatrix as a FortranMatrix. Doesn't actually allocate - a new matirx - just gives a different label to the same bits, and swaps the - row/column count information associated with the bits. - - - - - Get or set an entry in the array - - - - - Creates a C-style row major two-dimensional array from a native pointer, the number of rows and the number of columns. - Nothing is actually copied. - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a C-style row major two-dimensional matrix of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - Get or set an entry in the array - - - - - Pointer to the C-style one-dimensional array - - - - - Length of the C-style one-dimensional array - - - - - Get or set an entry in the array - - - - - Creates a C-style one dimensional array from a native pointer and the length of the array - Nothing is actually copied. - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a C-style one-dimensional array of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - For native interop. Pin the given object - - - - - For native interop. Pin the given object - - - - - - - - - - - - - - - - - - - - - - - Represents a pinned handle to a structure with an underlying 2D array, i.e. an underlying NativeArray2. - Used when interfacing with native code math libraries such as LAPACK. - - - - - For native interop. Pin the given object - - - - - - - - - - - - - - - - - - - - Represents a pinned handle to a structure with an underlying 1D array, i.e. an underlying NativeArray. - Used when interfacing with native code math libraries such as LAPACK. - - - - - - - - Pin the given ref for the duration of a single call to the given function. A native pointer to - the contents of the ref is passed to the given function. Cleanup the GCHandle associated with the - pin when the function completes, even if an exception is raised. - - - - - - - - Return the name of the argument - - - - - Return the usage help associated with the argument - - - - - Return the argument type and action of the argument - - - - - - - - - - - Prints the help for each argument. - - - - - Parse some of the arguments given by 'argv', starting at the given position - - - - - Parse the arguments given by System.Environment.GetEnvironmentVariables() - according to the argument processing specifications "specs". - Args begin with "-". Non-arguments are passed to "f" in - order. "use" is printed as part of the usage line if an error occurs. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The spec value describes the action of the argument, - and whether it expects a following parameter. - - - - - Interpret tables for a unicode lexer generated by fslex. - - - - - - - - Interpret tables for a unicode lexer generated by fslex, processing input asynchronously - - - - - The type of tables for an unicode lexer generated by fslex. - - - - - Interpret tables for an ascii lexer generated by fslex. - - - - - - - - Interpret tables for an ascii lexer generated by fslex, processing input asynchronously - - - - - The type of tables for an ascii lexer generated by fslex. - - - - - The start position for the lexeme - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - The start position for the lexeme - - - - - The length of the matched string - - - - - The matched string - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - Dynamically typed, non-lexically scoped parameter table - - - - - Fast helper to turn the matched characters into a string, avoiding an intermediate array - - - - - Fetch a particular character in the matched string - - - - - Create a lex buffer suitable for use with a Unicode lexer that reads character inputs from the given text reader - - - - - Create a lex buffer suitable for Unicode lexing that reads characters from the given string - - - - - Create a lex buffer that reads character or byte inputs by using the given function - - - - - Create a lex buffer suitable for Unicode lexing that reads characters from the given array - - - - - - - - Create a lex buffer suitable for byte lexing that reads characters from the given array - - - - - - - - Create a lex buffer suitable for use with ASCII byte lexing that reads byte inputs from the given binary reader - - - - - Create a lex buffer that asynchronously reads character or byte inputs by using the given function - - - - - Remove all input, though don't discard the current lexeme - - - - - Input buffers consumed by lexers generated by <c>fslex.exe </c> - - - - - The absolute offset of the column for the position - - - - - The absolute offset of the beginning of the line - - - - - The line number for the position - - - - - The file name for the position - - - - - Return absolute offset of the start of the line marked by the position - - - - - - - - The line number in the input stream, assuming fresh positions have been updated - using AsNewLinePos() and by modifying the EndPos property of the LexBuffer. - - - - - The file name associated with the input stream. - - - - - Get an arbitrary position, with the empty string as filename, and - - - - - Return the column number marked by the position, i.e. the difference between the AbsoluteOffset and the StartOfLineAbsoluteOffset - - - - - - - - The character number in the input stream - - - - - Gives a position shifted by specified number of characters - - - - - Get a position corresponding to the first line (line number 1) in a given file - - - - - Given a position at the start of a token of length n, return a position just beyond the end of the token - - - - - - - - Position information stored for lexing tokens - - - - - The tag of the error terminal - - - - - The total number of terminals - - - - - This function is used to hold the user specified "parse_error" or "parse_error_rich" functions - - - - - This table is logically part of the Goto table - - - - - The sparse table offsets for the productions active for each state - - - - - The sparse table for the productions active for each state - - - - - The sparse goto table row offsets - - - - - The sparse goto table - - - - - The immediate action table - - - - - The number of symbols for each reduction - - - - - The sparse action table row offsets - - - - - The sparse action table elements - - - - - A function to compute the data carried by a token - - - - - A function to compute the tag of a token - - - - - The token number indicating the end of input - - - - - The reduction table - - - - - Interpret the parser table taking input from the given lexer, using the given lex buffer, and the given start state. - Returns an object indicating the final synthesized value for the parse. - - - - - Tables generated by fsyacc - The type of the tables contained in a file produced by the fsyacc.exe parser generator. - - - - - The stack of state indexes active at the parse error - - - - - The token that would cause a shift at the parse error - - - - - The stack of productions that would be reduced at the parse error - - - - - The tokens that would cause a reduction at the parse error - - - - - The state active at the parse error - - - - - The message associated with the parse error - - - - - The token that caused the parse error - - - - - The context provided when a parse error occurs - - - - - Get the full range of positions matched by the production - - - - - Get the store of local values associated with this parser - - - - - Raise an error in this parse context - - - - - Get the start position for the terminal or non-terminal at a given index matched by the production - - - - - Get the start and end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the value produced by the terminal or non-terminal at the given position - - - - - The information accessible via the <c>parseState</c> value within parser actions. - - - - - Indicates a parse error has occured and parse recovery is in progress - - - - - - - - Indicates an accept action has occured - - - - - The default implementation of the parse_error function - - - - - The default implementation of the parse_error_rich function - - - - - Helpers used by generated parsers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A record of options to control structural formatting. - For F# Interactive properties matching those of this value can be accessed via the 'fsi' - value. - - Floating Point format given in the same format accepted by System.Double.ToString, - e.g. f6 or g15. - - If ShowProperties is set the printing process will evaluate properties of the values being - displayed. This may cause additional computation. - - The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects - to a small, finite depth, as determined by the printing parameters. - This may lead to additional computation being performed during printing. - - <example> - From F# Interactive the default settings can be adjusted using, for example, - <pre> - open Microsoft.FSharp.Compiler.Interactive.Settings;; - setPrintWidth 120;; - </pre> - </example> - - - - - The maximum number of rows for which to generate layout for table-like - structures. -1 if no maximum. - - - - - The maximum number of elements for which to generate layout for - list-like structures, or columns in table-like - structures. -1 if no maximum. - - - - - Return to the layout-generation - environment to layout any otherwise uninterpreted object - - - - - - - - - - - - - - - - - Data representing structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - - - - - - - - - - Data representing joints in structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - Convert any value to a layout using the given formatting options. The - layout can then be processed using formatting display engines such as - those in the LayoutOps module. any_to_string and output_any are - built using any_to_layout with default format options. - - - - - - - - - - - - - - - - - Ouput any value to a channel using the same set of formatting rules - as any_to_string - - - - - Convert any value to a string using a standard formatter - Data is typically formatted in a structured format, e.g. - lists are formatted using the "[1;2]" notation. - The details of the format are not specified and may change - from version to version and according to the flags given - to the F# compiler. The format is intended to be human-readable, - not machine readable. If alternative generic formats are required - you should develop your own formatter, using the code in the - implementation of this file as a starting point. - - Data from other .NET languages is formatted using a virtual - call to Object.ToString() on the boxed version of the input. - - - - - - - - For limitting layout of list-like sequences (lists,arrays,etc). - unfold a list of items using (project and z) making layout list via itemL. - If reach maxLength (before exhausting) then truncate. - - - - - See tagL - - - - - Layout like an F# list. - - - - - Layout like an F# option. - - - - - Layout list vertically. - - - - - Layout two vertically. - - - - - Form tuple of layouts. - - - - - Wrap braces around layout. - - - - - Wrap square brackets around layout. - - - - - Wrap round brackets around Layout. - - - - - Join layouts into a list separated using the given Layout. - - - - - Join layouts into a semi-colon separated list. - - - - - Join layouts into a space separated list. - - - - - Join layouts into a comma separated list. - - - - - Join broken with ident=2 - - - - - Join broken with ident=1 - - - - - Join broken with ident=0 - - - - - Join, possible break with indent=2 - - - - - Join, possible break with indent=1 - - - - - Join, possible break with indent=0 - - - - - Join, unbreakable. - - - - - An string which is left parenthesis (no space on the right). - - - - - An string which is right parenthesis (no space on the left). - - - - - An string which requires no spaces either side. - - - - - An string leaf - - - - - An uninterpreted leaf, to be interpreted into a string - by the layout engine. This allows leaf layouts for numbers, strings and - other atoms to be customized according to culture. - - - - - Is it the empty layout? - - - - - The empty layout - - - - - A layout is a sequence of strings which have been joined together. - The strings are classified as words, separators and left and right parenthesis. - This classification determines where spaces are inserted. - A joint is either unbreakable, breakable or broken. - If a joint is broken the RHS layout occurs on the next line with optional indentation. - A layout can be squashed to for given width which forces breaks as required. - - - - diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.dll deleted file mode 100644 index c1e288bc3..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.xml b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.xml deleted file mode 100644 index 51a749ba5..000000000 --- a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.xml +++ /dev/null @@ -1,5024 +0,0 @@ - - -FSharp.PowerPack - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - The total number of keys in the hash table - - - - - Lookup the given element in the table, returning the result as an Option - - - - - Replace the latest binding (if any) for the given element. - - - - - Remove the latest binding (if any) for the given element from the table - - - - -Apply the given function to each binding in the hash table - - - - - Apply the given function to each element in the collection threading the accumulating parameter - through the sequence of function applications - - - - - Find all bindings for the given element in the table, if any - - - - - - - - - - - - - - Make a shallow copy of the collection - - - - - Test if the collection contains any bindings for the given element - - - - - Clear all elements from the collection - - - - - Add a binding for the element to the table - - - - - - - - - - - - - - Build a map that contains the bindings of the given IEnumerable - - - - - Create a new empty mutable HashMultiMap with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Create a new empty mutable HashMultiMap with the given key hash/equality functions - - - - - Hash tables, by default based on F# structural "hash" and (=) functions. - The table may map a single key to multiple bindings. - - - - - The total number of elements in the set - - - - - Remove the given element from the set - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to the set threading the accumulating parameter - through the sequence of function applications - - - - - Make a shallow copy of the set - - - - - Test if the set contains the given element - - - - - Clear all elements from the set - - - - - Add an element to the collection - - - - - - - - - - - - - - Create a new mutable hash set with the given elements and using the given key hash/equality functions - - - - - Create a new empty mutable hash set with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Create a new empty mutable hash set using the given key hash/equality functions - - - - - Mutable hash sets based by default on F# structural "hash" and (=) functions. Implemented via a hash table and/or Dictionary. - - - - - LazyLists are possibly-infinite, cached sequences. See also IEnumerable/Seq for - uncached sequences. LazyLists normally involve delayed computations without - side-effects. The results of these computations are cached and evaluations will be - performed only once for each element of the lazy list. In contrast, for sequences - (IEnumerable) recomputation happens each time an enumerator is created and the sequence - traversed. - - LazyLists can represent cached, potentially-infinite computations. Because they are - cached they may cause memory leaks if some active code or data structure maintains a - live reference to the head of an infinite or very large lazy list while iterating it, - or if a reference is maintained after the list is no longer required. - - Lazy lists may be matched using the LazyList.Cons and LazyList.Nil active patterns. - These may force the computation of elements of the list. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Build a new collection from the given enumerable object - - - - - Return a view of the collection as an enumerable object - - - - - Build a non-lazy list from the given collection. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build a collection from the given list. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build an array from the given collection - - - - - Build a collection from the given array. This function will eagerly evaluate all of the - list (and thus may not terminate). - - - - - Build a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - - - - - Return a new list consisting of the results of applying the given accumulating function - to successive elements of the list - - - - - Apply the given function to each element of the collection. - - - - - Return a new collection which on consumption will consist of only the elements of the collection - for which the given predicate returns "true" - - - - - Return the list which contains on demand the list of elements of the list of lazy lists. - - - - - Return the list which contains on demand the pair of elements of the first and second list - - - - - Return the list which contains on demand the elements of the first list followed - by the elements of the second list - - - - - Return a list that contains the elements returned by the given computation. - The given computation is not executed until the first element on the list is - consumed. The given argument is passed to the computation. Subsequent elements - in the list are generated by again applying the residual 'b to the computation. - - - - - Return a list that is in effect the list returned by the given computation. - The given computation is not executed until the first element on the list is - consumed. - - - - - Return the list which on consumption will consist of an infinite sequence of - the given item - - - - - Return a new list which on consumption contains the given item - followed by the list returned by the given computation. The - - - - - Return a new list which contains the given item followed by the - given list. - - - - - Return the length of the list - - - - - Evaluates to the list that contains no items - - - - - Return the first element for which the given function returns <c>true</c>. - Raise <c>KeyNotFoundException</c> if no such element exists. - - - - - Apply the given function to successive elements of the list, returning the first - result where function returns <c>Some(x)</c> for some x. If the function never returns - true, 'None' is returned. - - - - - Return the list which on consumption will skip the first 'n' elements of - the input list. - - - - - Return the list which on consumption will consist of at most 'n' elements of - the input list. - - - - - Get the first cell of the list. - - - - - Return the list corresponding to the remaining items in the sequence. - Forces the evaluation of the first cell of the list if it is not already evaluated. - - - - - Return the first element of the list. Forces the evaluation of - the first cell of the list if it is not already evaluated. - - - - - Test if a list is empty. Forces the evaluation of - the first element of the stream if it is not already evaluated. - - - - - - - - Split an array of pairs into two arrays - - - - - Combine the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an <c>ArgumentException</c> is - raised.. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return an array containing the given element - - - - - Like <c>foldBack</c>, but return both the intermediary and final results - - - - - Like <c>fold</c>, but return the intermediary and final results - - - - - Build a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply the given function to pair of elements drawn from matching indices in two arrays, - also passing the index of the elements. The two arrays must have the same lengths, - otherwise an <c>ArgumentException</c> is raised. - - - - - Return true if the given array is empty, otherwise false - - - - - Test elements of the two arrays pairwise to see if all pairs of elements satisfy the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - Apply a function to pairs of elements drawn from the two collections, right-to-left, - threading an accumulator argument through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to pairs of elements drawn from the two collections, - left-to-right, threading an accumulator argument - through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN-1 iN))</c>. Raises ArgumentException if the array has size zero. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f i0 i1)...) iN</c>. Raises ArgumentException if the array has size zero. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Test elements of the two arrays pairwise to see if any pair of element satisfies the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - - - - Return a view of the array as an enumerable object - - - - - Build a ResizeArray from the given elements - - - - - Return a fixed-length array containing the elements of the input ResizeArray - - - - - Sort the elements using the key extractor and generic comparison on the keys - - - - - Sort the elements using the given comparison function - - - - -Return a new array with the elements in reverse order - - - - -Split a list of pairs into two lists - - - - -Combine the two arrays into an array of pairs. The two arrays must have equal lengths. - - - - -Apply the given function to successive elements, returning the first -result where function returns "Some(x)" for some x. - - - - -Return the first element for which the given function returns <c>true</c>. -Return None if no such element exists. - - - - -Return the first element for which the given function returns <c>true</c>. -Raise <c>KeyNotFoundException</c> if no such element exists. - - - - -Apply the given function to each element of the array. Return -the array comprised of the results "x" for each element where -the function returns Some(x) - - - - -Split the collection into two collections, containing the -elements for which the given predicate returns <c>true</c> and <c>false</c> -respectively - - - - -Return a new collection containing only the elements of the collection -for which the given predicate returns <c>true</c> - - - - - Test if all elements of the array satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and "j0...jN" - then computes <c>p i0 && ... && p iN</c>. - - - - - Test if any element of the array satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>p i0 or ... or p iN</c>. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. The integer index passed to the -function indicates the index of element being transformed. - - - - -Apply the given function to each element of the array. The integer passed to the -function indicates the index of element. - - - - -Build a new collection whose elements are the results of applying the given function -to the corresponding elements of the two collections pairwise. The two input -arrays must have the same lengths. - - - - -Apply the given function to two arrays simultaneously. The -two arrays must have the same lengths, otherwise an Invalid_argument exception is -raised. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. - - - - -Apply the given function to each element of the array. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN s))</c>. - - - - - Apply a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f s i0)...) iN</c> - - - - -Build and array from the given seq - - - - - - - -Build an array from the given list - - - - - - - -Build a list from the given array - - - - -Read a range of elements from the first array and write them into the second. - - - - -Fill a range of the collection with the given element - - - - -Build a new array that contains the elements of the given array - - - - -Build a new array that contains the given subrange specified by -starting index and length. - - - - -Build a new array that contains the elements of each of the given list of arrays - - - - -Build a new array that contains the elements of the first array followed by the elements of the second array - - - - - Create an array by calling the given generator on each index. - - - - - Create an array whose elements are all initially the given value. - - - - - Set the value of an element in the collection. You can also use the syntax <c>arr.[idx] <- e</c>. - - - - - Fetch an element from the collection. You can also use the syntax <c>arr.[idx]</c>. - - - - - Return the length of the collection. You can also use property <c>arr.Length</c>. - - - - - Generic operations on the type System.Collections.Generic.List, which is called ResizeArray in the F# libraries. - - - - - - - - Lookup or set the given element in the table. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - Lookup or set the given element in the table. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - The number of bindings in the hash table - - - - - Lookup the given element in the table, returning the result as an Option - - - - - Replace the latest binding (if any) for the given element. - - - - - Remove the latest binding (if any) for the given element from the table - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to each element in the collection threading the accumulating parameter - through the sequence of function applications - - - - - Find all bindings for the given element in the table, if any - - - - - Create a new empty mutable hash table with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Make a shallow copy of the collection - - - - - Test if the collection contains any bindings for the given element - - - - - Test if the collection contains any bindings for the given element - - - - - Clear all elements from the collection - - - - - Add a binding for the element to the table - - - - - HashMultiMap, but where a constraint tag tracks information about the hash/equality functions used - for the hashing. When the tag is Tags.StructuralHash this is identical to HashMultiMap. - - - - - - - - The number of elements in the set - - - - - Remove the given element from the set - - - - - Apply the given function to each binding in the hash table - - - - - Apply the given function to the set threading the accumulating parameter - through the sequence of function applications - - - - - Create a new empty mutable hash set with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Make a shallow copy of the set - - - - - Test if the set contains the given element - - - - - Clear all elements from the set - - - - - Add an element to the collection - - - - - Mutable hash sets where a constraint tag tracks information about the hash/equality functions used - for the hashing. When the tag is Tags.StructuralHash this is identical to HashSet. - - - - - - - - Lookup an element in the map. Raise <c>KeyNotFoundException</c> if no binding - exists in the map. - - - - - Gets a value indicating whether there are no bindings in the map. - - - - - The number of bindings in the map - - - - - Gets the comparer used for the map. - - - - - Lookup an element in the map, returning a <c>Some</c> value if the element is in the domain - of the map and <c>None</c> if not. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array - - - - - Remove an element from the domain of the map. No exception is raised if the element is not present. - - - - - Build two new maps, one containing the bindings for which the given predicate returns 'true', - and the other the remaining bindings. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The index passed to the - function indicates the index of element being transformed. - - - - - Apply the given function to each binding in the dictionary - - - - - - - - Return true if the given predicate returns true for all of the - bindings in the map. Always returns true if the map is empty. - - - - - Given the start and end points of a key range, - Fold over the bindings in the map that are in the range, - and the end points are included if present (the range is considered a closed interval). - - - - - Fold over the bindings in the map. - - - - - Fold over the bindings in the map. - - - - - Search the map looking for the first element where the given function returns a <c>Some</c> value - - - - - Build a new map containing the bindings for which the given predicate returns 'true'. - - - - - Return true if the given predicate returns true for one of the - bindings in the map. Always returns false if the map is empty. - - - - - - - - The empty map, and use the given comparer comparison function for all operations associated - with any maps built from this map. - - - - - Build a map that contains the bindings of the given IEnumerable - and where comparison of elements is based on the given comparison function - - - - - Test is an element is in the domain of the map - - - - - Return a new map with the binding added to the given map. - - - - - Immutable maps. Keys are ordered by construction function specified - when creating empty maps or by F# structural comparison if no - construction function is specified. - - <performance> - Maps based on structural comparison are - efficient for small keys. They are not a suitable choice if keys are recursive data structures - or require non-structural comparison semantics. - </performance> - Immutable maps. A constraint tag carries information about the class of key-comparers being used. - - - - - - - - Return a new set with the elements of the second set removed from the first. - - - - - Compute the union of the two sets. - - - - - Returns the lowest element in the set according to the ordering being used for the set - - - - - Returns the highest element in the set according to the ordering being used for the set - - - - - A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. - - - - - Return the number of elements in the set - - - - - Gets the comparer used for the set. - - - - - The number of elements in the set - - - - - Compute the union of the two sets. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array. - - - - - A singleton set based on the given comparison operator - - - - - A useful shortcut for Set.remove. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Build two new sets, one containing the elements for which the given predicate returns 'true', - and the other the remaining elements. - - - - - Apply the given function to each binding in the collection - - - - - Evaluates to "true" if all elements of the first set are in the second - - - - - Evaluates to "true" if all elements of the second set are in the first - - - - - Compute the intersection of the two sets. - - - - - Test if all elements of the collection satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and <c>j0...jN</c> then - computes <c>p i0 && ... && p iN</c>. - - - - - Apply the given accumulating function to all the elements of the set - - - - - Return a new collection containing only the elements of the collection - for which the given predicate returns "true" - - - - - Test if any element of the collection satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> then computes - <c>p i0 or ... or p iN</c>. - - - - - - - - Compares two sets and returns true if they are equal or false otherwise - - - - - The empty set based on the given comparer - - - - - Return a new set with the elements of the second set removed from the first. - - - - - A set based on the given comparer containing the given initial elements - - - - - A useful shortcut for Set.contains. See the Set module for further operations on sets. - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - A useful shortcut for Set.add. Note this operation prodcues a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Immutable sets based on binary trees, default tag - Immutable sets where a constraint tag carries information about the class of key-comparer being used. - - - - - Wait for the result and commit it - - - - - Record the result in the AsyncResultCell. Subsequent sets of the result are ignored. - - This may result in the scheduled resumption of a waiting asynchronous operation - - - - - Create a new result cell - - - - - A helper type to store a single result from an asynchronous computation and asynchronously - access its result. - - - - - - - - - - - - - - Create an async whose result depends on the value of an AsyncResult. - - - - - Represents the reified result of an asynchronous computation - - - - - An async that produces true if the reader is at the end of stream and false otherwise - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - - - - - - - Creates an async that read all characters in the stream up to the end. - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads next line from the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads exactly <c>count</c> characters from the stream unless end of stream is reached and puts them - into <c>buffer</c> starting at <c>index</c>. The async returns the number of characters that are read (if end-of-stream is not reached - that will be <c>count</c> - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads all the charactes that are avilable in the stream up to <c>count</c characters and puts them - into <c>buffer</c> starting at <c>index</c>. The async returns the number of characters that are read. - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that reads next character from the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - - Creates an async that produces next character from the stream without advancing the stream - - Note that when the async is run it reflects the reader state at the time of running; multiple runs will - yield different results. - - - - -. DiscardBufferedData tells StreamReader to throw away its internal -. buffer contents. This is useful if the user needs to seek on the - underlying stream to a known location then wants the StreamReader - to start reading from this new point. This method should be called - very sparingly, if ever, since it can lead to very poor performance. - However, it may be the only way of handling some scenarios where - users need to re-read the contents of a StreamReader a second time. - - - - - - - - - - - - - - - - - - - - Creates a new AsyncStreamReader for the given stream. The - character encoding is set by encoding and the buffer size, - in number of 16-bit characters, is set by bufferSize. - - Note that detectEncodingFromByteOrderMarks is a very - loose attempt at detecting the encoding by looking at the first - 3 bytes of the stream. It will recognize UTF-8, little endian - unicode, and big endian unicode text, but that's it. If neither - of those three match, it will use the Encoding you provided. - - - - - Implements a TextReader-like API that asynchronously reads characters from - a byte stream in a particular encoding. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create an async that opens a <c>System.IO.FileStream</c> on the specified path, via a fresh I/O thread. - Pass <c>options=FileOptions.Asynchronous</c> to enable further asynchronous read/write operations - on the FileStream. - - - - - Create an async that returns a <c>System.IO.StreamWriter</c> that appends UTF-8 text to an existing file, via a fresh I/O thread. - - - - - Create an async that opens an existing file writing, via a fresh I/O thread. - - - - - Create an async that opens a <c>System.IO.FileStream</c> on the specified path for read/write access, via a fresh I/O thread. - - - - - Create an async that opens an existing file for reading, via a fresh I/O thread. - - - - - - - - Return an asynchronous computation that will read to the end of a stream via a fresh I/O thread. - - - - - - - - See Lazy.Force - - - - - - - - - - - Return the given rational number - - - - - Return the negation of a rational number - - - - - Return the difference of two rational numbers - - - - - Return the product of two rational numbers - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - This operator is for use from other .NET languages - - - - - Return the result of converting the given rational number to an integer - - - - - Return the result of converting the given rational number to a big integer - - - - - Return the result of converting the given rational number to a floating point number - - - - - This operator is for use from other .NET languages - - - - - Return the ratio of two rational numbers - - - - - Return the sum of two rational numbers - - - - - Get zero as a rational number - - - - - - - - Return the sign of a rational number; 0, +1 or -1 - - - - - Get one as a rational number - - - - - Return the numerator of the normalized rational number - - - - - Return a boolean indicating if this rational number is strictly positive - - - - - Return a boolean indicating if this rational number is strictly negative - - - - - Return the denominator of the normalized rational number - - - - - - - - Return the result of converting the given rational number to an integer - - - - - Return the result of converting the given rational number to a floating point number - - - - - Return the result of converting the given rational number to a big integer - - - - - Return the result of raising the given rational number to the given power - - - - - Return the result of converting the string to a rational number - - - - - - - - Return the result of converting the given integer to a rational number - - - - - Return the result of converting the given big integer to a rational number - - - - - Return the absolute value of a rational number - - - - - The type of arbitrary-sized rational numbers - - - - - Unary negation of a complex number - - - - - Subtract one complex number from another - - - - - Multiply a complex number by a scalar - - - - - Multiply a scalar by a complex number - - - - - Multiply two complex numbers - - - - - Complex division of two complex numbers - - - - - Add two complex numbers - - - - - The real part of a complex number - - - - - The imaginary part of a complex number - - - - - The complex number 0+0i - - - - - The real part of a complex number - - - - - The polar-coordinate phase of a complex number - - - - - The complex number 0+1i - - - - - The complex number 1+0i - - - - - The polar-coordinate magnitude of a complex number - - - - - The imaginary part of a complex number - - - - - The conjugate of a complex number, i.e. x-yi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create a complex number using magnitude/phase polar coordinates - - - - - Create a complex number x+ij using rectangular coordinates - - - - - - - - Computes the absolute value of a complex number: e.g. Abs x+iy = sqrt(x**2.0 + y**2.0.) - Note: Complex.Abs(z) is the same as z.Magnitude - - - - - The type of complex numbers stored as pairs of 64-bit floating point numbers in rectangular coordinates - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the item at the given position in a matrix - - - - - Prefix '+' operator. A nop. - - - - - Matrix negation. - - - - - Point-wise subtraction of two matrices. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Multiply each element of a matrix by a scalar value - - - - - Multiply each element of a matrix by the given scalar value - - - - - Matrix-vector multiplication. - - - - - Matrix multiplication. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Point-wise matrix multiplication. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Point-wise addition of two matrices. An InvalidArgument exception will be - raised if the dimensions do not match. - - - - - Get the transpose of a matrix. - - - - - - - - Get the number of rows in a matrix - - - - - Get the number of columns in a matrix - - - - - Returns sqrt(sum(norm(x)*(norm(x))) of all the elements of a matrix. - The element type of a matrix must have an associated instance of INormFloat<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Return the non-zero entries of a sparse or dense matrix - - - - - Get the item at the given position in a matrix - - - - - Indicates if a matrix uses the sparse representation. - - - - - Indicates if a matrix uses the dense representation. - - - - - Get the internal array of values for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of row offsets for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of column values for a sparse matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Get the internal array of values for a dense matrix. This property - should only be used when interoperating with other matrix libraries. - - - - - Retrieve the dictionary of numeric operations associated with the element - type of this matrix. Accessing the property may raise an NotSupportedException if the element - type doesn't support any numeric operations. The object returned - may support additional numeric operations such as IFractional: - this can be determined by a dynamic type test against the object - returned. - - - - - Get the number of (rows,columns) in a matrix - - - - - Get the main diagonal of a matrix, as a vector - - - - - Convert a matrix to a column vector - - - - - Convert a matrix to a row vector - - - - - Return a new array containing the elements of a matrix - - - - - - - - Supports the slicing syntax 'A.[idx1..idx2,idx1..idx2] <- B' - - - - - Select a range of rows from a matrix - - - - - Select a row from a matrix - - - - - Select a region from a matrix - - - - - Permutes the rows of a matrix. - - - - - Permutes the columns of a matrix. - - - - - Supports the slicing syntax 'A.[idx1..idx2,idx1..idx2]' - - - - - - - - Return the nth diagonal of a matrix, as a vector. Diagonal 0 is the primary - diagonal, positive diagonals are further to the upper-right of a matrix. - - - - - - - - Create a new matrix that is a copy of an array - - - - - Select a range of columns from a matrix - - - - - Select a column from a matrix - - - - - The type of matrices. The arithmetic operations on the element type are determined by inspection on the element type itself. - Two representations are supported: sparse and dense. - - - - - A permutation of a finite range of integers 0 .. N-1, represented by a mapping of index positions - - - - - - - - Return a row vector, unchanged - - - - - Point-wise negation of a row vector - - - - - Point-wise subtraction of two row vectors - - - - - Multiply a scalar by a row vector - - - - - Multiply a row vector by a scalar - - - - - Multiply a row vector by a matrix - - - - - Multiply a row vector by a vector - - - - - Point-wise multiplication of two row vectors - - - - - Point-wise addition of two row vectors - - - - - Get the transpose of the row vector. - - - - - - - - - - - - - - - - - Get the underlying internal array of values for a vector. This property - should only be used when interoperating with other matrix libraries. - - - - - - - - Return a new array containing a copy of the elements of a vector - - - - - Supports the slicing syntax 'rv.[idx1..idx2] <- rv2' - - - - - Permute the elements of the row vector. - - - - - Supports the slicing syntax 'rv.[idx1..idx2]' - - - - - - - - - - - Create a new matrix that is a copy of a array - - - - - The type of row vectors. - - - - - Gets an item from a vector - - - - - Return the input vector - - - - - Negate a vector - - - - - Subtract two vectors, pointwise - - - - - Multiply a vector by a scalar - - - - - Multiply a column vector and a row vector to produce a matrix - - - - - Multiply each element of a vector by a scalar value. - - - - - Point-wise multiplication of two vectors. - - - - - Add two vectors, pointwise - - - - - Get the transpose of a vector. - - - - - - - - Gets the number of rows in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - - Gets the number of entries in a vector - - - - - Gets an item from a vector - - - - - Get the underlying internal array of values for a vector. This property - should only be used when interoperating with other matrix libraries. - - - - - Gets the element operations for the element type of a vector, if any - - - - - Return a new array containing a copy of the elements of a vector - - - - - Supports the slicing syntax 'v.[idx1..idx2] <- v2' - - - - - Permute the elements of a vector. - - - - - Supports the slicing syntax 'v.[idx1..idx2]' - - - - - - - - - - - Create a new matrix that is a copy of a array - - - - - The type of column vectors. The arithmetic operations on the element type are determined by inspection - on the element type itself - - - - - - - - The type of complex numbers - - - - - The type of floating point matrices - - - - - - - - The type of floating point row vectors - - - - - The type of floating point column vectors - - - - - Tagent - - - - - Cosine - - - - - Sine - - - - - sqrt(x) and 0 <= phase(x) < pi - - - - - log(x) is natural log (base e) - - - - - exp(x) = e^x - - - - - pi - - - - - Multiply a complex number by a scalar - - - - - Multiply a scalar by a complex number - - - - - Unary negation of a complex number - - - - - Complex division of two complex numbers - - - - - Multiply two complex numbers - - - - - Subtract one complex number from another - - - - - Add two complex numbers - - - - - The complex number 0+1i - - - - - The complex number 1+0i - - - - - The complex number 0+0i - - - - - The conjugate of a complex number, i.e. x-yi - - - - - A complex of magnitude 1 and the given phase and , i.e. cis x = mkPolar 1.0 x - - - - - Create a complex number using magnitude/phase polar coordinates - - - - - The imaginary part of a complex number - - - - - The real part of a complex number - - - - - The polar-coordinate phase of a complex number - - - - - The polar-coordinate magnitude of a complex number - - - - - - - - - - - Constructs a complex number from both the real and imaginary part. - - - - - - - - Record an AppDomain-wide association between the given type and the given dictionary of - numeric operations. Raise an error if an existing association already exists. - - - - - - - - Attempt to determine a numeric association for the given type, i.e. a registered dictionary of - numeric operations. The interface can be queried dynamically for additional functionality in the numerics - hierarchy. - - - - - Associations are a way of associating dictionaries of - operations with given types at runtime. Associations are global to a - .NET application domain. Once specified an association may not be deleted - or modified. - - In this release the system of associations is simply - limited to a registry of types that support dictionaries (i.e. interface objects) - of numeric operations. The following types are pre-registered with associated numeric - operations: float, int32, int64, bigint, float32, Complex, bignum. Other types must be - registered explicitly by user code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In-place subtraction, mutating the first matrix argument. - - - - - In-place addition, mutating the first matrix argument. - - - - - Create a new matrix that is a copy of the given array - - - - - Map the given indexed function over each element of a matrix, producing a new matrix - - - - - Map a function over each element of a matrix, producing a new matrix - - - - - Fold a function down a particular row of a matrix - - - - - Fold a function along a particular column of a matrix - - - - - Fold a function along each row of a matrix - - - - - Fold a function down each column of a matrix - - - - - Fold an indexed function over all elements of a matrix - - - - - Fold a function over all elements of a matrix - - - - - Check if a predicate holds for at least one element of a matrix - - - - - Check if a predicate holds for all elements of a matrix - - - - - Check if a predicate holds for at least one element of a matrix - - - - - Check if a predicate holds for all elements of a matrix - - - - -sqrt(sum(x*x)) of all the elements of a matrix - - - - -Multiply all the elements of a matrix - - - - - Sum all the elements of a matrix - - - - - Generate a new matrix of the same size as the input with random entries - drawn from the range 0..aij. Random numbers are generated using a globally - shared System.Random instance with the initial seed 99. - - - - - Sum of the diagonal elements of a matrix - - - - - Transpose of a matrix. Use also m.Transpose - - - - - Point-wise exponential of a matrix. - - - - - Dot product - - - - - Add two matrices (operator +) - - - - - Point-wise minimum element of two matrices - - - - - Point-wise maximum element of two matrices - - - - - Ensure that a matrix uses dense representation - - - - - Return the first column of a matrix - - - - - Return the first row of a matrix - - - - - Return the element at row 0, column 0 of a matrix - - - - - Create a matrix with one column from the given vector - - - - - Create a matrix with one row from the given row vector - - - - - Create a 1x1 matrix containing the given value - - - - - Return a new array containing the elements of the given matrix - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a square matrix with a vector lying on diagonal - - - - - Create a square matrix with the constant 1.0 lying on diagonal - - - - - Create a matrix with all entries zero - - - - - Create a sparse representation matrix with the given entries. Not all - operations are available for sparse matrices, and mutation is not permitted. - If an operation on sparse matrices raises a runtime exception then consider - converting to a dense matrix using to_dense. - - - - - Create a dense representation matrix with the given entries. - - - - - Create a matrix with all entries the given constant - - - - - - - - Set an element of a matrix - - - - - Get an element of a matrix - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Subtract the second matrix from the first, by mutating the first - - - - - Add the second matrix to the first by, mutating the first - - - - - Map the given position-indexed function over a matrix - - - - - Map a function over a matrix - - - - - Create a new matrix that is a copy of the given array - - - - - Return true if an indexed predicate returns true for some value in a matrix - - - - - Return true if an indexed predicate returns true for all values in a matrix - - - - - Return true if a predicate returns true for some value in a matrix - - - - - Return true if a predicate returns true for all values in a matrix - - - - - Fold an indexed function over all elements of a matrix - - - - - Fold a function over all elements of a matrix - - - - - Returns sqrt(sum(norm(x)*(norm(x))) of all the elements of a matrix. - The element type of a matrix must have an associated instance of INormFloat<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Compute the product of the elements in a matrix - - - - - Compute the sum of the elements in a matrix - - - - - Compute the sum of the diagonal of a square matrix - - - - - Return a new matrix which is the transpose of the input matrix - - - - - Sum of the point-wise multiple of the two matrices. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - -Take the pointwise maximum of two matrices - - - - -Take the pointwise maximum of two matrices - - - - - Create a matrix containing the given vector along the diagonal. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a square matrix with the one for the element type lying on diagonal - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a matrix containing the zero element at each index. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Create a matrix using a function to compute the item at each index. - The element type of a matrix must have an associated instance of INumeric<'T> (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - The function is passed the dictionary of associated operations in addition to the index pair. - - - - - Create a matrix using a function to compute the item at each index. - - - - - Extract the first column of a matrix - - - - - Extract the first row of a matrix - - - - - Get the element at column zero, row zero - - - - - Create a matrix from a column vector - - - - - Create a matrix from a row vector - - - - - Create a 1x1 matrix containing the given value - - - - - Create a sparse matrix from the given sequence of elements - - - - - Create a dense matrix from the given sequence of elements - - - - - Create a matrix containing the given value at every element. - - - - - Return a new array containing the elements of the given matrix - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Create a matrix from the given data - - - - - Set an element in a matrix. The indexes are given in row/column order. - - - - - Get an element from a matrix. The indexes are given in row/column order. - - - - - Operations to manipulate matrix types carrying - arbitrary element types. The names and types of the operations match those - in the containing module Math.Matrix. - - The numeric operations on the element type (add, zero etc.) are inferred from the type - argument itself. That is, for some operations - the element type of a matrix must have an associated instance of INumeric<'T> - or some more specific numeric association (see <c>GlobalAssociations</c>) ((else NotSupportedException)). - - - - - Operations to manipulate floating - point matrices. The submodule <c>Matrix.Generic</c> contains a - matching set of operations to manipulate matrix types carrying - arbitrary element types. - - - - - Builds a (row) vector from a sequence of floats. - - - - - Builds a (column) vector from a sequence of floats. - - - - - Builds a matrix from a sequence of sequence of floats. - - - - - - - Version of System.Single.NaN that is generic in its units-of-measure - - - Version of System.Single.PositiveInfinity that is generic in its units-of-measure - - - Version of System.Double.NaN that is generic in its units-of-measure - - - Version of System.Double.PositiveInfinity that is generic in its units-of-measure - - - - - - - - - - - - - - - - - - - - - - - - - - - - The identity permutation over any size - - - - - Return a permutation that rotates right by the given distance. If the distance - is negative then a left rotation results. - - - - - Return a permutation that, when applied, maps index 0 to size-1, size-1 to 0 etc. - - - - - Return a swaps the given two elements over any size - - - - - - - - Create a permutation by specifying (source,destination) index pairs. For example, - Permutation(3,[ (0,2);(1,0); (2,1) ]) specifies a permutation that rotates - all elements left one place. Not all elements need be given, e.g. - Permutation(5,[ (1,2);(2,1) |]) specifies a permutation that swaps elements at indexes - 1 and 2. - - - - - - - - Create a permutation by specifying the result of permuting [| 0 .. n-1 |]. For example, - Permutation.ofArray [| 1;2;0 |] specifies a permutation that rotates all elements right one place. - - - - - - - - Unified atomic mass unit - - - - - Electron volt - - - - - Stefan-Boltzmann constant - - - - - Boltzmann constant R/N_A - - - - - Molar gas constant - - - - - Faraday constant - - - - - Avogadro constant - - - - - Rydberg constant - - - - - Fine-structure constant - - - - - Proton mass - - - - - Electron mass - - - - - Conductance quantum 2e^2/h - - - - - Magnetic flux quantum h/2e - - - - - Elementary charge - - - - - Dirac constant, also known as the reduced Planck constant = h/2pi - - - - - Planck constant - - - - - Newtonian constant of gravitation - - - - - electric constant = 1/(mu0 c^2) - - - - - magnetic constant - - - - - speed of light in vacuum - - - - - Fundamental physical constants, with units-of-measure - - - - - - - - - - - - - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of double precision floats - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - - - - - - - Return a vector of the given length where every entry is zero. - - - - - Create by comprehension - - - - - Create by constant initialization - - - - - Get the dimensions (number of rows) of a column rowvec. - - - - - Set an element of a column rowvec - - - - - Get an element of a column vector - - - - - - - - - - - - - - - - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a row vector from an array of elements - - - - - Create a row vector from a sequence of elements - - - - - Create a row vector from a list of elements - - - - - Return a vector of the given length where every entry is zero. - - - - - Create by constant initialization - - - - - Create by comprehension - - - - - Transpose the row vector - - - - - Get the number of rows in a column vector. - - - - - Set an element in a column vector. - - - - - Get an element from a column vector. - - - - - Operations to manipulate row vectors types carrying - arbitrary element types. - - - - - Operations to manipulate floating - point row vectors. These are included for completeness and are - nearly always transposed to column vectors. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Map an indexed function over each element of a vector - - - - - Map a function over each element of a vector - - - - - Copy a vector - - - - - Fold an indexed function over all elements of a vector - - - - - Fold a function over all elements of a vector - - - - - Return true if an indexed predicate returns true for some value in a vector - - - - - Return true if an indexed predicate returns true for all values in a vector - - - - - Return true if a predicate returns true for some value in a vector - - - - - Return true if a predicate returns true for all values in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - -Multiply all the elements of a matrix - - - - -Sum all the elements of a vector - - - - -Transpose of a matrix. Use also m.Transpose - - - - -Point-wise exponential of a vector. - - - - -Dot product - - - - - Create a vector that represents a integral mesh over the given range - e.g. range 1 5 = vector [ 1.;2.;3.;4.;5. ] - - - - - Create a vector that represents a mesh over the given range - e.g. rangef (-1.0) 0.5 1.0 = vector [ -1.0; -0.5; 0.0; 0.5; 1.0] - - - - - Return a vector of the given length where every entry is zero. - - - - - Generate a vector of the given length where each entry contains the given value - - - - - Create a 1-element vector - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of double precision floats - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - Create a vector of a fixed length using a function to compute the initial element values - - - - - Get the dimensions (number of rows) of a column vector. Identical to <c>nrows</c> - - - - - Set an element of a column vector - - - - - Get an element of a column vector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Map an indexed function over each element of a vector - - - - - Map a function over each element of a vector - - - - - Copy the vector - - - - - Fold an indexed function over all elements of a vector - - - - - Fold a function over all elements of a vector - - - - - Return true if an indexed predicate returns true for some value in a vector - - - - - Return true if an indexed predicate returns true for all values in a vector - - - - - Return true if a predicate returns true for some value in a vector - - - - - Return true if a predicate returns true for all values in a vector - - - - - Computes the 2-norm of a vector: sqrt(x.Transpose*x). - - - - -Multiply all the elements of a matrix - - - - -Sum all the elements of a vector - - - - -Dot product - - - - -Take the pointwise minimum of two vectors - - - - -Take the pointwise maximum of two vectors - - - - - Return a vector of the given length where every entry is zero. - - - - - Generate a vector of the given length where each entry contains the given value - - - - - Return a new array containing a copy of the elements of the given vector - - - - - Create a vector from an array of elements - - - - - Create a 1-element vector - - - - - Create a vector from a sequence of numbers - - - - - Create a vector from a list of numbers - - - - - Creation: useful when the element type has associated operations. - - - - - Creation: general - - - - - Get the dimensions (number of rows) of a column vector. Identical to <c>nrows</c> - - - - - Set an element of a column vector - - - - - Get an element of a column vector - - - - - Operations to manipulate column vectors carrying - arbitrary element types. - - - - - Operations to manipulate floating - point column vectors. The submodule VectorOps.Generic contains a - matching set of operations to manipulate column vectors carrying - arbitrary element types. - - - - - See NativeArray2 - - - - - Get or set an entry in the array - - - - - - - - - - - - - - View a FortranMatrix as a CMatrix. Doesn't actually allocate - a new matirx - just gives a different label to the same bits, and swaps the - row/column count information associated with the bits. - - - - - Get or set an entry in the array - - - - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a Fortran-style column major two-dimensional matrix of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - Get or set an entry in the array - - - - - Pointer to the C-style row major two-dimensional array - - - - - Get the number of rows of the native array - - - - - Get the number of columns of the native array - - - - - View a CMatrix as a FortranMatrix. Doesn't actually allocate - a new matirx - just gives a different label to the same bits, and swaps the - row/column count information associated with the bits. - - - - - Get or set an entry in the array - - - - - Creates a C-style row major two-dimensional array from a native pointer, the number of rows and the number of columns. - Nothing is actually copied. - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a C-style row major two-dimensional matrix of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - Get or set an entry in the array - - - - - Pointer to the C-style one-dimensional array - - - - - Length of the C-style one-dimensional array - - - - - Get or set an entry in the array - - - - - Creates a C-style one dimensional array from a native pointer and the length of the array - Nothing is actually copied. - - - - - This type wraps a pointer to a blob of unmanaged memory assumed to contain - a C-style one-dimensional array of items compatible with the (presumably blittable) - type 'T. The blob of memory must be allocated and managed externally, - e.g. by a computation routine written in C. - - All operations on this type are marked inlined - because the code used to implement the operations is not verifiable. - - Any code that uses these operations will be unverifiable and may - cause memory corruption if not used with extreme care. - - - - - For native interop. Pin the given object - - - - - For native interop. Pin the given object - - - - - - - - - - - - - - - - - - - - - - - Represents a pinned handle to a structure with an underlying 2D array, i.e. an underlying NativeArray2. - Used when interfacing with native code math libraries such as LAPACK. - - - - - For native interop. Pin the given object - - - - - - - - - - - - - - - - - - - - Represents a pinned handle to a structure with an underlying 1D array, i.e. an underlying NativeArray. - Used when interfacing with native code math libraries such as LAPACK. - - - - - For native interop. Pin the given object - - - - - For native interop. Pin the given object - - - - - For native interop. Pin the given object - - - - - - - - Pin the given ref for the duration of a single call to the given function. A native pointer to - the contents of the ref is passed to the given function. Cleanup the GCHandle associated with the - pin when the function completes, even if an exception is raised. - - - - - - - - Return the name of the argument - - - - - Return the usage help associated with the argument - - - - - Return the argument type and action of the argument - - - - - - - - - - - Prints the help for each argument. - - - - - Parse some of the arguments given by 'argv', starting at the given position - - - - - Parse the arguments given by System.Environment.GetEnvironmentVariables() - according to the argument processing specifications "specs". - Args begin with "-". Non-arguments are passed to "f" in - order. "use" is printed as part of the usage line if an error occurs. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The spec value describes the action of the argument, - and whether it expects a following parameter. - - - - - Interpret tables for a unicode lexer generated by fslex. - - - - - - - - Interpret tables for a unicode lexer generated by fslex, processing input asynchronously - - - - - The type of tables for an unicode lexer generated by fslex. - - - - - Interpret tables for an ascii lexer generated by fslex. - - - - - - - - Interpret tables for an ascii lexer generated by fslex, processing input asynchronously - - - - - The type of tables for an ascii lexer generated by fslex. - - - - - The start position for the lexeme - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - The start position for the lexeme - - - - - The length of the matched string - - - - - The matched string - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - Dynamically typed, non-lexically scoped parameter table - - - - - Fast helper to turn the matched characters into a string, avoiding an intermediate array - - - - - Fetch a particular character in the matched string - - - - - Create a lex buffer suitable for use with a Unicode lexer that reads character inputs from the given text reader - - - - - Create a lex buffer suitable for Unicode lexing that reads characters from the given string - - - - - Create a lex buffer that reads character or byte inputs by using the given function - - - - - Create a lex buffer suitable for Unicode lexing that reads characters from the given array - - - - - - - - Create a lex buffer suitable for byte lexing that reads characters from the given array - - - - - - - - Create a lex buffer suitable for use with ASCII byte lexing that reads byte inputs from the given binary reader - - - - - Create a lex buffer that asynchronously reads character or byte inputs by using the given function - - - - - Remove all input, though don't discard the current lexeme - - - - - Input buffers consumed by lexers generated by <c>fslex.exe </c> - - - - - The absolute offset of the column for the position - - - - - The absolute offset of the beginning of the line - - - - - The line number for the position - - - - - The file name for the position - - - - - Return absolute offset of the start of the line marked by the position - - - - - - - - The line number in the input stream, assuming fresh positions have been updated - using AsNewLinePos() and by modifying the EndPos property of the LexBuffer. - - - - - The file name associated with the input stream. - - - - - Get an arbitrary position, with the empty string as filename, and - - - - - Return the column number marked by the position, i.e. the difference between the AbsoluteOffset and the StartOfLineAbsoluteOffset - - - - - - - - The character number in the input stream - - - - - Gives a position shifted by specified number of characters - - - - - Get a position corresponding to the first line (line number 1) in a given file - - - - - Given a position at the start of a token of length n, return a position just beyond the end of the token - - - - - - - - Position information stored for lexing tokens - - - - - The tag of the error terminal - - - - - The total number of terminals - - - - - This function is used to hold the user specified "parse_error" or "parse_error_rich" functions - - - - - This table is logically part of the Goto table - - - - - The sparse table offsets for the productions active for each state - - - - - The sparse table for the productions active for each state - - - - - The sparse goto table row offsets - - - - - The sparse goto table - - - - - The immediate action table - - - - - The number of symbols for each reduction - - - - - The sparse action table row offsets - - - - - The sparse action table elements - - - - - A function to compute the data carried by a token - - - - - A function to compute the tag of a token - - - - - The token number indicating the end of input - - - - - The reduction table - - - - - Interpret the parser table taking input from the given lexer, using the given lex buffer, and the given start state. - Returns an object indicating the final synthesized value for the parse. - - - - - Tables generated by fsyacc - The type of the tables contained in a file produced by the fsyacc.exe parser generator. - - - - - The stack of state indexes active at the parse error - - - - - The token that would cause a shift at the parse error - - - - - The stack of productions that would be reduced at the parse error - - - - - The tokens that would cause a reduction at the parse error - - - - - The state active at the parse error - - - - - The message associated with the parse error - - - - - The token that caused the parse error - - - - - The context provided when a parse error occurs - - - - - Get the full range of positions matched by the production - - - - - Get the store of local values associated with this parser - - - - - Raise an error in this parse context - - - - - Get the start position for the terminal or non-terminal at a given index matched by the production - - - - - Get the start and end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the value produced by the terminal or non-terminal at the given position - - - - - The information accessible via the <c>parseState</c> value within parser actions. - - - - - Indicates a parse error has occured and parse recovery is in progress - - - - - - - - Indicates an accept action has occured - - - - - The default implementation of the parse_error function - - - - - The default implementation of the parse_error_rich function - - - - - Helpers used by generated parsers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A record of options to control structural formatting. - For F# Interactive properties matching those of this value can be accessed via the 'fsi' - value. - - Floating Point format given in the same format accepted by System.Double.ToString, - e.g. f6 or g15. - - If ShowProperties is set the printing process will evaluate properties of the values being - displayed. This may cause additional computation. - - The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects - to a small, finite depth, as determined by the printing parameters. - This may lead to additional computation being performed during printing. - - <example> - From F# Interactive the default settings can be adjusted using, for example, - <pre> - open Microsoft.FSharp.Compiler.Interactive.Settings;; - setPrintWidth 120;; - </pre> - </example> - - - - - The maximum number of rows for which to generate layout for table-like - structures. -1 if no maximum. - - - - - The maximum number of elements for which to generate layout for - list-like structures, or columns in table-like - structures. -1 if no maximum. - - - - - Return to the layout-generation - environment to layout any otherwise uninterpreted object - - - - - - - - - - - - - - - - - Data representing structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - - - - - - - - - - Data representing joints in structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - Convert any value to a layout using the given formatting options. The - layout can then be processed using formatting display engines such as - those in the LayoutOps module. any_to_string and output_any are - built using any_to_layout with default format options. - - - - - - - - - - - - - - - - - Ouput any value to a channel using the same set of formatting rules - as any_to_string - - - - - Convert any value to a string using a standard formatter - Data is typically formatted in a structured format, e.g. - lists are formatted using the "[1;2]" notation. - The details of the format are not specified and may change - from version to version and according to the flags given - to the F# compiler. The format is intended to be human-readable, - not machine readable. If alternative generic formats are required - you should develop your own formatter, using the code in the - implementation of this file as a starting point. - - Data from other .NET languages is formatted using a virtual - call to Object.ToString() on the boxed version of the input. - - - - - - - - For limitting layout of list-like sequences (lists,arrays,etc). - unfold a list of items using (project and z) making layout list via itemL. - If reach maxLength (before exhausting) then truncate. - - - - - See tagL - - - - - Layout like an F# list. - - - - - Layout like an F# option. - - - - - Layout list vertically. - - - - - Layout two vertically. - - - - - Form tuple of layouts. - - - - - Wrap braces around layout. - - - - - Wrap square brackets around layout. - - - - - Wrap round brackets around Layout. - - - - - Join layouts into a list separated using the given Layout. - - - - - Join layouts into a semi-colon separated list. - - - - - Join layouts into a space separated list. - - - - - Join layouts into a comma separated list. - - - - - Join broken with ident=2 - - - - - Join broken with ident=1 - - - - - Join broken with ident=0 - - - - - Join, possible break with indent=2 - - - - - Join, possible break with indent=1 - - - - - Join, possible break with indent=0 - - - - - Join, unbreakable. - - - - - An string which is left parenthesis (no space on the right). - - - - - An string which is right parenthesis (no space on the left). - - - - - An string which requires no spaces either side. - - - - - An string leaf - - - - - An uninterpreted leaf, to be interpreted into a string - by the layout engine. This allows leaf layouts for numbers, strings and - other atoms to be customized according to culture. - - - - - Is it the empty layout? - - - - - The empty layout - - - - - A layout is a sequence of strings which have been joined together. - The strings are classified as words, separators and left and right parenthesis. - This classification determines where spaces are inserted. - A joint is either unbreakable, breakable or broken. - If a joint is broken the RHS layout occurs on the next line with optional indentation. - A layout can be squashed to for given width which forces breaks as required. - - - - diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index d2dd8e9b6..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.dll deleted file mode 100644 index af604938d..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3-wp/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index d2dd8e9b6..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.dll deleted file mode 100644 index af604938d..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl3/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index 3d595e800..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.dll deleted file mode 100644 index 99347b679..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4-windowsphone71/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index 3d595e800..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.dll deleted file mode 100644 index 99347b679..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl4/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Compatibility.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Compatibility.dll deleted file mode 100644 index e68391af3..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Compatibility.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Linq.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Linq.dll deleted file mode 100644 index 85e543351..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.Linq.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.dll b/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.dll deleted file mode 100644 index 4364ed098..000000000 Binary files a/packages/FSPowerPack.Core.Community.3.0.0.0/Lib/sl5/FSharp.PowerPack.dll and /dev/null differ diff --git a/packages/FSPowerPack.Core.Community.3.0.0.0/tools/install.ps1 b/packages/FSPowerPack.Core.Community.3.0.0.0/tools/install.ps1 deleted file mode 100644 index faaa23e09..000000000 --- a/packages/FSPowerPack.Core.Community.3.0.0.0/tools/install.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -param($rootPath, $toolsPath, $package, $project) - -Add-BindingRedirect $project.Name \ No newline at end of file diff --git a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.dll b/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.dll deleted file mode 100644 index b6081b4b1..000000000 Binary files a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.dll and /dev/null differ diff --git a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.xml b/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.xml deleted file mode 100644 index 6fd150947..000000000 --- a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Linq.xml +++ /dev/null @@ -1,367 +0,0 @@ - - -FSharp.PowerPack.Linq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert the quotation expression to LINQ expression trees - - This operation will only succeed for a subset of quotation expressions. - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Evaluate the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - An intrinsic for compiling <c>&lt;@ x <> y @&gt;</c> to expression trees - - - - - - - - This join operator implements the LINQ GroupJoin operator and the <c>query</c> convertor recognises it as such - - - - - This join operator corresponds to the LINQ Join operator and the <c>query</c> convertor recognises it as such - - - - - When used in queries, this operator corresponds to the LINQ Join operator and the <c>query</c> convertor recognises it as such - - - - - When used in queries, this operator corresponds to the LINQ Max operator and the <c>query</c> convertor recognises it as such - It differs in return type from <c>Seq.maxBy</c> - - - - - When used in queries, this operator corresponds to the LINQ Min operator and the <c>query</c> convertor recognises it as such - It differs in return type from <c>Seq.minBy</c> - - - - - When used in queries, this operator corresponds to the LINQ Contains operator and the <c>query</c> convertor recognises it as such - - - - - Evaluate the quotation expression by first converting to a LINQ expression tree - making use of IQueryable operators and then executing expression tree - - Exceptions: <c>InvalidArgumentException</c> will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - This function should not be called directly. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A set of types used for implementing quotation conversions. - These are public only because targets of Linq Lambda expressions require them to be so - - - - - This module provides Compile and Eval extension members - for F# quotation values, implemented by translating to LINQ - expression trees and using the LINQ dynamic compiler. - - - - diff --git a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.dll b/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.dll deleted file mode 100644 index c524c7195..000000000 Binary files a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.dll and /dev/null differ diff --git a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.xml b/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.xml deleted file mode 100644 index f0faa2e1c..000000000 --- a/packages/FSPowerPack.Linq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Linq.xml +++ /dev/null @@ -1,409 +0,0 @@ - - -FSharp.PowerPack.Linq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert the quotation expression to LINQ expression trees - - This operation will only succeed for a subset of quotation expressions. - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Evaluate the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - An intrinsic for compiling <c>&lt;@ x <> y @&gt;</c> to expression trees - - - - - - - - This join operator implements the LINQ GroupJoin operator and the <c>query</c> convertor recognises it as such - - - - - This join operator corresponds to the LINQ Join operator and the <c>query</c> convertor recognises it as such - - - - - When used in queries, this operator corresponds to the LINQ Join operator and the <c>query</c> convertor recognises it as such - - - - - When used in queries, this operator corresponds to the LINQ Max operator and the <c>query</c> convertor recognises it as such - It differs in return type from <c>Seq.maxBy</c> - - - - - When used in queries, this operator corresponds to the LINQ Min operator and the <c>query</c> convertor recognises it as such - It differs in return type from <c>Seq.minBy</c> - - - - - When used in queries, this operator corresponds to the LINQ Contains operator and the <c>query</c> convertor recognises it as such - - - - - Evaluate the quotation expression by first converting to a LINQ expression tree - making use of IQueryable operators and then executing expression tree - - Exceptions: <c>InvalidArgumentException</c> will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - This function should not be called directly. - - - - - Evaluate the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Compile the quotation expression by first converting to LINQ expression trees - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - Convert the quotation expression to LINQ expression trees - - This operation will only succeed for a subset of quotation expressions. - - Exceptions: InvalidArgumentException will be raised if the input expression is - not in the subset that can be converted to a LINQ expression tree - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A set of types used for implementing quotation conversions. - These are public only because targets of Linq Lambda expressions require them to be so - - - - - This module provides Compile and Eval extension members - for F# quotation values, implemented by translating to LINQ - expression trees and using the LINQ dynamic compiler. - - - - diff --git a/packages/FSPowerPack.Linq.Community.3.0.0.0/tools/install.ps1 b/packages/FSPowerPack.Linq.Community.3.0.0.0/tools/install.ps1 deleted file mode 100644 index faaa23e09..000000000 --- a/packages/FSPowerPack.Linq.Community.3.0.0.0/tools/install.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -param($rootPath, $toolsPath, $package, $project) - -Add-BindingRedirect $project.Name \ No newline at end of file diff --git a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.dll b/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.dll deleted file mode 100644 index e4ff28c4c..000000000 Binary files a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.dll and /dev/null differ diff --git a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.xml b/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.xml deleted file mode 100644 index 676072c20..000000000 --- a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net20/FSharp.PowerPack.Metadata.xml +++ /dev/null @@ -1,15761 +0,0 @@ - - -FSharp.PowerPack.Metadata - - - - - - - - - - - - - - - - The value '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:970) - - - - - The union cases or fields of the type '%s' are not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:969) - - - - - The union case '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:971) - - - - - The value or constructor '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:6) - - - - - The value, namespace, type or module '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:7) - - - - - The value, constructor, namespace or type '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:5) - - - - - The type parameter '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:12) - - - - - The type '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:9) - - - - - The record label or namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:10) - - - - - The record label '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:11) - - - - - The pattern discriminator '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:13) - - - - - The namespace or module '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:3) - - - - - The namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:2) - - - - - The field, constructor or member '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:4) - - - - - The constructor, module or namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:8) - - - - - The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:179) - - - - - The type '%s' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:180) - - - - - The signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:175) - - - - - The signature and implementation are not compatible because the type parameter '%s' has a constraint of the form %s but the implementation does not. Either remove this constraint from the signature or add it to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:178) - - - - - The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:177) - - - - - The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:176) - - - - - The override for '%s' was ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:195) - - - - - The override '%s' implements more than one abstract slot, e.g. '%s' and '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:198) - - - - - No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:194) - - - - - No implementation was given for '%s'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:203) - - - - - No implementation was given for '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:202) - - - - - The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:200) - - - - - A named argument has been assigned more than one value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:201) - - - - - More than one override implements '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:196) - - - - - The namespace or module attributes differ between signature and implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:192) - - - - - The method '%s' is sealed and cannot be overridden - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:197) - - - - - This method is over-constrained in its type parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:193) - - - - - The member '%s' does not have the correct number of method type parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:205) - - - - - The member '%s' does not have the correct number of arguments. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:204) - - - - - The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:206) - - - - - The member '%s' cannot be used to implement '%s'. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:207) - - - - - Invalid value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:174) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:181) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:182) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:183) - - - - - Duplicate or redundant interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:199) - - - - - The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '%s' and '%s'. Consider using type annotations to resolve the ambiguity - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:169) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1108) - - - - - Could not resolve the ambiguity inherent in the use of a 'printf'-style format string - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:171) - - - - - Could not resolve the ambiguity inherent in the use of the operator '%s' at or near this program point. Consider using type annotations to resolve the ambiguity. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:170) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:172) - - - - - Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:173) - - - - - The type '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:968) - - - - - union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:945) - - - - - type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:941) - - - - - property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:950) - - - - - patvar - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:952) - - - - - and %d other overloads - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:944) - - - - - namespace/module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:955) - - - - - namespace - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:953) - - - - - module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:954) - - - - - inherits - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:942) - - - - - implements - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:943) - - - - - Full name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:940) - - - - - also from %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:957) - - - - - from %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:956) - - - - - field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:948) - - - - - event - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:949) - - - - - argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:951) - - - - - active recognizer - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:947) - - - - - active pattern result - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:946) - - - - - Unexpected TExpr_tchoose - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:981) - - - - - Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:982) - - - - - The 'VolatileField' attribute may only be used on 'let' bindings in classes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:689) - - - - - Volatile fields must be marked 'mutable' and cannot be thread-static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:746) - - - - - A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:744) - - - - - In sequence expressions, multiple results are generated using 'yield!' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:663) - - - - - Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:596) - - - - - Use 'typeof<_>' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:610) - - - - - The use of 'let! x = coll' in sequence expressions is no longer permitted. Use 'for x in coll' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:661) - - - - - This attribute cannot be used in this version of F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:716) - - - - - Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:706) - - - - - Unrecognized accessibility specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:508) - - - - - The unnamed arguments do not form a prefix of the arguments of the method called - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:683) - - - - - Unknown union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:534) - - - - - Unit-of-measure cannot be used in type constructor application - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:572) - - - - - This union case takes one argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:590) - - - - - This union case expects %d arguments in tupled form - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:591) - - - - - This union case does not take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:589) - - - - - Uninitialized 'val' fields in implicit construction types must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:747) - - - - - Unexpected type arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:581) - - - - - Unexpected type application - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:664) - - - - - Unexpected %s in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:575) - - - - - Unexpected / in type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:580) - - - - - Unexpected source-level property specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:545) - - - - - Unexpected source-level property specification in syntax tree - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:539) - - - - - Unexpected Measure_Anon - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:494) - - - - - Unexpected expression at recursive inference point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:524) - - - - - Unexpected constraints or parameters on module specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:787) - - - - - Unexpected constraint or type definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:788) - - - - - Unexpected Const_uint16array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:499) - - - - - Unexpected Const_bytearray - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:500) - - - - - Unexpected condition in imported assembly: failed to decode AttributeUsage attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:705) - - - - - Unexpected big rational constant - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:497) - - - - - The field '%s' has been given a value, but is not present in the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:629) - - - - - Unable to parse format string '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:606) - - - - - Types cannot inherit from multiple concrete types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:797) - - - - - Types cannot contain nested type definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:776) - - - - - Struct types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:809) - - - - - Record types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:807) - - - - - Enum types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:811) - - - - - Delegate types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:810) - - - - - Discriminated union types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:806) - - - - - Assembly code types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:808) - - - - - The type '%s' is used in an invalid way. A value prior to '%s' has an inferred type involving '%s', which is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:834) - - - - - This type requires a definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:794) - - - - - The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:529) - - - - - Type parameter cannot be used as type constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:576) - - - - - This type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:528) - - - - - This value, type or method expects %d type parameter(s) but was given %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:551) - - - - - type or module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:778) - - - - - The type '%s' is not an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:754) - - - - - This type is not an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:771) - - - - - This type is not a record type. Values of class and struct types must be created using calls to object constructors. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:656) - - - - - This type is not a record type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:657) - - - - - This type is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:704) - - - - - This type has no nested types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:574) - - - - - This type has no accessible object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:667) - - - - - Fields which are type functions cannot be mutated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:492) - - - - - type, exception or module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:777) - - - - - Type definitions using implicit construction may only have one 'inherit' specification and it must be the first declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:827) - - - - - Type definitions using implicit construction must have local let/do-bindings preceding member and interface definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:828) - - - - - This type definition involves an immediate cyclic reference through a struct field or inheritance relation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:823) - - - - - This type definition involves an immediate cyclic reference through an abbreviation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:822) - - - - - The type '%s' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:558) - - - - - Type abbreviations cannot have members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:761) - - - - - Type abbreviations cannot have interface declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:769) - - - - - Type abbreviations cannot have augmentations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:832) - - - - - This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:795) - - - - - 'try'/'with' cannot be used within sequence expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:662) - - - - - Thread-static and context-static variables must be static and given the [<DefaultValue>] attribute to indicate that the value is initialized to the default value on each new thread - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:745) - - - - - The syntax 'expr.id' may only be used with record labels, properties and fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:678) - - - - - Syntax error - unexpected '?' symbol - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:598) - - - - - '%s' may only be used to construct object types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:627) - - - - - The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1085) - - - - - The struct, record or union type '%s' has the 'StructuralEquality' attribute but the type parameter '%s' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1084) - - - - - The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1079) - - - - - The struct, record or union type '%s' has the 'StructuralComparison' attribute but the type parameter '%s' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1078) - - - - - Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1086) - - - - - Structs cannot contain 'let' bindings because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:765) - - - - - Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:764) - - - - - Structs, interfaces, enums and delegates cannot inherit from other types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:796) - - - - - Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:737) - - - - - Structs may only bind a 'this' parameter at member declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:523) - - - - - Struct types cannot contain abstract members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:816) - - - - - Static 'val' fields in types must be mutable, private and marked with the '[<DefaultValue>]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:748) - - - - - Static optimization conditionals are only for use within the F# library - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:684) - - - - - This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:542) - - - - - Static 'let' bindings may only be defined in class types with implicit constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:766) - - - - - Interfaces cannot contain definitions of static initializers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:732) - - - - - A static initializer requires an argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:540) - - - - - A static field was used where an instance field is expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:490) - - - - - A simple method name is required here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:636) - - - - - In sequence expressions, results are generated using 'yield' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:496) - - - - - Return values cannot have names - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:502) - - - - - Return types of union cases must be identical to the type being defined, up to abbreviations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:752) - - - - - The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[<Sealed>] attribute to the type declaration in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:824) - - - - - This is not a variable, constant, active recognizer or literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:594) - - - - - This control construct may only be used if the computation expression builder defines a '%s' method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:573) - - - - - Only active patterns returning exactly one result may accept arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:586) - - - - - The representation of this type is hidden by the signature. It must be given an attribute such as [<Sealed>], [<Class>] or [<Interface>] to indicate the characteristics of the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:802) - - - - - Recursive bindings that include member specifications can only occur as a direct augmentation of a type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:739) - - - - - Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:798) - - - - - This record contains fields from inconsistent types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:521) - - - - - A property cannot have explicit type parameters. Consider using a method instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:536) - - - - - This property or field was not found on this custom attribute type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:711) - - - - - Property '%s' is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:675) - - - - - Property '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:672) - - - - - Property '%s' is not readable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:673) - - - - - The property implemented by this default is ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:729) - - - - - Property '%s' cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:676) - - - - - This property cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:710) - - - - - This property already has a default implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:728) - - - - - The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:637) - - - - - A parameter with attributes must also be given a name, e.g. '[<Attribute>] paramName : paramType' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:501) - - - - - The parameter '%s' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref<int>'. When used, a byref parameter is implicitly dereferenced. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1103) - - - - - You must explicitly declare either all or no type parameters when overriding a generic abstract method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:531) - - - - - Accessibility modifiers are not permitted on overrides or interface implementations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:805) - - - - - This override takes a different number of arguments to the corresponding abstract member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:722) - - - - - One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:682) - - - - - Optional arguments cannot be used in custom attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:709) - - - - - Optional arguments are only permitted on type members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:582) - - - - - Optional arguments must come at the end of the argument list, after any non-optional arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1122) - - - - - This declaration opens the namespace or module '%s' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:759) - - - - - Only types representing units-of-measure may be given the 'Measure' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:804) - - - - - Only structs and classes without implicit constructors may be given the 'StructLayout' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:801) - - - - - Only simple variable patterns can be bound in 'let rec' constructs - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:740) - - - - - Only simple bindings of the form 'id = expr' can be used in construction expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:643) - - - - - Only record fields and simple 'let' bindings may be marked mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:741) - - - - - Only functions may be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:698) - - - - - Only classes may be given the 'AbstractClass' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:803) - - - - - Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:644) - - - - - The operator 'expr.[idx]' has been used an object of indeterminate type based on information prior to this program point. Consider adding further type constraints - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:618) - - - - - Only overrides of abstract and virtual members may be specified in object expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:632) - - - - - This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:546) - - - - - Calls to object constructors on type parameters cannot be given arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:620) - - - - - Interfaces cannot contain definitions of object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:733) - - - - - An object constructor requires an argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:541) - - - - - Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:654) - - - - - Object construction expressions may only be used to implement constructors in class types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:642) - - - - - This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:650) - - - - - This is not a valid name for an enumeration case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:611) - - - - - This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:535) - - - - - Not an exception - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:786) - - - - - Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:495) - - - - - The generic member '%s' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1104) - - - - - This value is not a literal and cannot be used in a pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:554) - - - - - No abstract property was found that corresponds to this override - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:725) - - - - - No abstract or interface member was found that corresponds to this override - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:721) - - - - - Interface implementations cannot be given on construction expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:641) - - - - - The struct, record or union type '%s' does not support structural equality because the type '%s' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1083) - - - - - The struct, record or union type '%s' does not support structural equality because the type parameter %s does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1082) - - - - - The struct, record or union type '%s' is not structurally comparable because the type '%s' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1081) - - - - - The struct, record or union type '%s' is not structurally comparable because the type parameter %s does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1080) - - - - - No arguments may be given when constructing a record value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:640) - - - - - The member '%s' does not correspond to any abstract or virtual method available to override or implement - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:633) - - - - - 'new' may only be used with object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:648) - - - - - 'new' must be used with a named type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:638) - - - - - This new member hides the abstract member '%s' once tuples, functions and/or units of measure are erased. Rename the member or use 'override' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:731) - - - - - This new member hides the abstract member '%s'. Rename the member or use 'override' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:730) - - - - - 'new' cannot be used on interface types. Consider using an object expression '{ new ... with ... }' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:624) - - - - - Namespaces cannot contain values. Consider using a module to hold your value declarations. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:504) - - - - - Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:505) - - - - - '%s' may only be used with named types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:622) - - - - - The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1105) - - - - - Named arguments cannot be given to member trait calls - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:609) - - - - - The named argument '%s' did not match any argument or mutable property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:681) - - - - - Name '%s' not bound in pattern context - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:583) - - - - - Named arguments must appear after all other arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:556) - - - - - Mutable function values should be written 'let mutable f = (fun args -> ...)' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:697) - - - - - Mutable values cannot have generic parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:696) - - - - - Mutable values cannot be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:695) - - - - - Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:507) - - - - - Multiple visibility attributes have been specified for this identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:506) - - - - - Modules cannot use named module signature definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:837) - - - - - This declaration opens the module '%s', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:758) - - - - - The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:833) - - - - - Method overrides and interface implementations are not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:720) - - - - - Method '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:491) - - - - - Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:825) - - - - - The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to the definition of '%s', which is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:835) - - - - - Interfaces cannot contain definitions of member overrides - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:734) - - - - - Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1125) - - - - - This member is not permitted in an interface implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:774) - - - - - MemberKindPropertyGetSet only expected in parse trees - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:503) - - - - - This member is not sufficiently generic - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:742) - - - - - A member and a local class binding both have the name '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:768) - - - - - Measure definitions cannot have type parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:793) - - - - - Measure declarations may have only static members: constructors are not available - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:767) - - - - - Measure declarations may have only static members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:763) - - - - - This lookup cannot be used here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:674) - - - - - Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:760) - - - - - Literal values cannot have generic parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:702) - - - - - A literal value cannot be marked 'mutable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:700) - - - - - A literal value cannot be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:701) - - - - - A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:743) - - - - - This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:607) - - - - - 'let' and 'do' bindings are not permitted in class definitions unless an implicit construction sequence is used. You can use an implicit construction sequence by modifying the type declaration to include arguments, e.g. 'type X(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:831) - - - - - This code is less generic than required by its annotations because the explicit type variable '%s' could not be generalized. It was constrained to be '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:525) - - - - - The kind of the type specified by its attributes does not match the kind implied by its definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:792) - - - - - Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. Overloads are:\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:669) - - - - - Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:668) - - - - - Invalid use of a type name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:666) - - - - - Invalid use of an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:670) - - - - - Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:671) - - - - - The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1102) - - - - - 'use' bindings must be of the form 'use <var> = <expr>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:718) - - - - - Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:571) - - - - - Units-of-measure supported only on float, float32, decimal and signed integer types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:498) - - - - - Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:820) - - - - - Invalid type extension - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:790) - - - - - Type arguments cannot be specified here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:585) - - - - - Invalid signature for set member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:727) - - - - - Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq { ... }' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:604) - - - - - Invalid record construction - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:651) - - - - - This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:566) - - - - - This is not a valid pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:595) - - - - - Invalid optional assignment to a property or field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:686) - - - - - The '%s' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:513) - - - - - The '%s' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:514) - - - - - The '%s' operator should not normally be redefined. Consider using a different operator name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:515) - - - - - Invalid object, sequence or record expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:603) - - - - - Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:602) - - - - - This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:561) - - - - - Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when <variable> = <constant>' at the end of the match clause. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:584) - - - - - 'new' constraints must take one argument of type 'unit' and return the constructed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:565) - - - - - Invalid namespace, module, type or union case name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:750) - - - - - Invalid module name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:789) - - - - - This recursive binding uses an invalid mixture of recursive forms - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:560) - - - - - The name '(%s)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:509) - - - - - The name '(%s)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:510) - - - - - The name '(%s)' should not be used as a member name because it is given a standard definition in the F# library over fixed types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:512) - - - - - The name '(%s)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:511) - - - - - Invalid inline specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:717) - - - - - Invalid indexer expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:617) - - - - - The '%s' operator cannot be redefined. Consider using a different operator name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:516) - - - - - Internal error. Invalid index into active pattern array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:588) - - - - - This is not a valid value for an enumeration literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:753) - - - - - An 'enum' constraint must be of the form 'enum<type>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:564) - - - - - Delegate specifications must be of the form 'typ -> typ' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:818) - - - - - Invalid declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:547) - - - - - Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:563) - - - - - Invalid constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:562) - - - - - This is not a valid constant expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:703) - - - - - Invalid assignment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:665) - - - - - Invalid argument to parameterized pattern label - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:587) - - - - - This is not a valid name for an active pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:693) - - - - - Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1114) - - - - - Interface types cannot be sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:817) - - - - - Interface types and delegate types cannot contain fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:812) - - - - - This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:538) - - - - - The inherited type is not an object model type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:653) - - - - - A inheritance declaration is not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:757) - - - - - This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:829) - - - - - This 'inherit' construction call is not part of an implicit construction sequence. Only the inherited type should be specified at this point. Calls to the inherited constructor should be placed inside the object initialization expression of your object constructor. Alternatively use an implicit construction sequence by modifying the type declaration to include arguments, e.g. 'type X(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:830) - - - - - 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:623) - - - - - Implicit product of measures following / - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:493) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:779) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:520) - - - - - The struct, record or union type '%s' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:780) - - - - - The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:518) - - - - - The struct, record or union type '%s' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:519) - - - - - Illegal syntax in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:577) - - - - - Illegal pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:597) - - - - - Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:751) - - - - - A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:699) - - - - - It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:626) - - - - - Generic types cannot be given the 'StructLayout' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:800) - - - - - A generic type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:527) - - - - - The generic function '%s' must be given explicit type argument(s) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:549) - - - - - This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:557) - - - - - The corresponding formal argument is not optional - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:685) - - - - - The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:532) - - - - - A field/val declaration is not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:756) - - - - - This field requires a name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:749) - - - - - No assignment given for field '%s' of type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:630) - - - - - This field is not a literal and cannot be used in a pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:593) - - - - - This field is readonly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:555) - - - - - Field '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:592) - - - - - This field is not mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:612) - - - - - The field '%s' appears twice in this record expression or pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:533) - - - - - All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1077) - - - - - Extraneous fields have been given values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:631) - - - - - This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:605) - - - - - This expression form may only be used in sequence and computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:601) - - - - - The expression form { expr with ... } may only be used with record types. To build object types use { new Type(...) with ... } - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:652) - - - - - The expression form 'expr then expr' may only be used as part of an explicit object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:608) - - - - - Expected %d expressions, got %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:599) - - - - - TcExprUndelayed: delayed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:600) - - - - - Explicit type specifications cannot be used for exception constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:781) - - - - - Explicit type parameters may only be used on module or member bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:530) - - - - - An explicit static initializer should use the syntax 'static new(args) = expr' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:543) - - - - - Explicit signatures within implementation files may no longer be used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:836) - - - - - An explicit object constructor should use the syntax 'new(args) = expr' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:544) - - - - - Expected unit-of-measure, not type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:570) - - - - - Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:567) - - - - - Expected type parameter, not unit-of-measure parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:568) - - - - - Expected type, not unit-of-measure - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:569) - - - - - Expected an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:645) - - - - - Expected module or namespace parent %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:517) - - - - - Exception abbreviations should not have argument lists - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:782) - - - - - Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:784) - - - - - Event '%s' is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:679) - - - - - Event '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:680) - - - - - Enumerations cannot have members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:762) - - - - - Enumerations cannot have interface declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:770) - - - - - The 'EntryPointAttribute' attribute may only be used on function definitions in modules - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:694) - - - - - '{ }' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:655) - - - - - Duplicate specification of an interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:755) - - - - - The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:550) - - - - - 'do!' cannot be used within sequence expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:660) - - - - - DLLImport stubs cannot be inlined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:522) - - - - - Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:819) - - - - - A delegate constructor must be passed a single function value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:687) - - - - - The 'DefaultValue' attribute may only be used on 'val' declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:691) - - - - - The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:552) - - - - - A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:773) - - - - - This method already has a default implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:723) - - - - - The method implemented by this default is ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:724) - - - - - The declared type parameters for this type extension do not match the declared type parameters on the original type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:826) - - - - - This declaration element is not permitted in an augmentation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:775) - - - - - A custom attribute must invoke an object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:714) - - - - - A custom attribute must be a reference type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:712) - - - - - The number of args for a custom attribute does not match the expected number of args for the attribute constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:713) - - - - - Couldn't find Dispose on IDisposable, or it was overloaded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:553) - - - - - Constructors cannot be defined for this type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:738) - - - - - Constructors cannot be specified in exception augmentations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:736) - - - - - Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:677) - - - - - Constructors for the type '%s' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:628) - - - - - This object constructor requires arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:647) - - - - - Constructor expressions for interfaces do not take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:646) - - - - - A constructor cannot have explicit type parameters. Consider using a static construction method instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:537) - - - - - This construct may only be used within sequence or computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:615) - - - - - This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq { ... }', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:613) - - - - - This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:614) - - - - - This construct may only be used within computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:616) - - - - - This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {... }'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:659) - - - - - This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder { ... }'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:658) - - - - - One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:526) - - - - - Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1123) - - - - - The 'ConditionalAttribute' attribute may only be used on members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:692) - - - - - Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type, or use implicit class construction, to indicate that the type is a concrete implementation class. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:735) - - - - - The 'CompiledName' attribute cannot be used with this language element - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:621) - - - - - Cannot inherit from a variable type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:619) - - - - - Cannot inherit a sealed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:814) - - - - - Cannot inherit from interface type. Use interface ... with instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:815) - - - - - Cannot create an extension of a sealed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:639) - - - - - Cannot call an abstract base member: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1107) - - - - - A binding cannot be marked both 'use' and 'rec' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:688) - - - - - This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:559) - - - - - The attributes of this type specify multiple kinds for the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:791) - - - - - Attributes are not allowed within patterns - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:548) - - - - - Attributes are not permitted on 'let' bindings in expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:690) - - - - - This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:707) - - - - - This attribute is not valid for use on this language element - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:708) - - - - - Attribute expressions must be calls to object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:715) - - - - - The attribute 'AutoOpen(\"%s\")' in the assembly '%s' did not refer to a valid module or namespace in that assembly and has been ignored - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:838) - - - - - The attribute '%s' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1106) - - - - - At least one override did not correctly implement its corresponding abstract member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:649) - - - - - The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:635) - - - - - The member '%s' does not accept the correct number of arguments, %d arguments are expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:634) - - - - - Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:578) - - - - - Anonymous type variables are not permitted in this declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:579) - - - - - Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:799) - - - - - All implemented interfaces should be declared on the initial declaration of the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:772) - - - - - Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{ new ... with ... }' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:625) - - - - - This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:726) - - - - - Abstract members are not permitted in an augmentation - they must be defined as part of the type itself - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:719) - - - - - Abbreviations for Common IL exception types must have a matching object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:785) - - - - - Abbreviations for Common IL exceptions cannot take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:783) - - - - - Abbreviated types cannot be given the 'Sealed' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:813) - - - - - A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:88) - - - - - The value has been copied to ensure the original is not mutated by this operation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:90) - - - - - This value does not have a valid property setter type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:84) - - - - - Unexpected decode of InternalsVisibleToAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:95) - - - - - Unexpected decode of InterfaceDataVersionAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:96) - - - - - Unexpected decode of AutoOpenAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:94) - - - - - Unexpected use of a byref-typed variable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:87) - - - - - The type %s did not contain the union case '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1098) - - - - - The type %s did not contain the field '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1097) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the val '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1100) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1101) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1099) - - - - - The type/module '%s' is not a concrete module or type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:74) - - - - - The type '%s' has an inline assembly code representation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:75) - - - - - Two modules named '%s' occur in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:77) - - - - - Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:91) - - - - - Recursive values cannot be directly assigned to the non-mutable field '%s' of the type '%s' within a recursive binding. Consider using a mutable field instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:93) - - - - - Recursive values cannot appear directly as a construction of the type '%s' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:92) - - - - - This is not a constant expression or valid custom attribute value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:99) - - - - - A namespace and a module named '%s' both occur in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:76) - - - - - Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:89) - - - - - Invalid member signature encountered because of an earlier error - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:83) - - - - - Invalid form for a property setter. At least one argument is required. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:86) - - - - - Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:85) - - - - - This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1093) - - - - - Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:78) - - - - - This constant cannot be used as a custom attribute value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:98) - - - - - A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:79) - - - - - Active patterns cannot return more than 7 possibilities - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:97) - - - - - The struct or class field '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:973) - - - - - If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines). - - - - - Recursive class hierarchy in type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:965) - - - - - Error reading/writing metadata for the F# compiled DLL '%s'. Was the DLL compiled with an earlier version of the F# compiler? (error: '%s'). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:70) - - - - - Partial active patterns may only generate one result - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:992) - - - - - Missing variable '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:991) - - - - - Accessibility modifiers are not permitted on an 'inherits' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:436) - - - - - Accessibility modifiers should come immediately prior to the identifier naming a construct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:407) - - - - - 'use' bindings are not permitted in modules and are treated as 'let' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:400) - - - - - 'use' bindings are not permitted in implicit class constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:399) - - - - - Unmatched 'with' or badly formatted 'with' block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:423) - - - - - Unmatched '(' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:450) - - - - - No body found for this 'let' or 'do'. The body must be indented to the same column as this line. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:449) - - - - - Unmatched 'if' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:455) - - - - - Unmatched 'class', 'interface' or 'struct' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:421) - - - - - Unmatched '[|' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:469) - - - - - Unmatched '[' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:464) - - - - - Unmatched '{' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:470) - - - - - Unmatched 'begin' or 'struct' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:414) - - - - - Unmatched 'begin' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:426) - - - - - Unmatched '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:468) - - - - - Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:444) - - - - - Accessibility modifiers are not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:405) - - - - - Syntax error: unexpected type parameter specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:481) - - - - - A semicolon is not expected at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:403) - - - - - Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:479) - - - - - Unexpected integer literal in unit-of-measure expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:480) - - - - - Unexpected integer literal in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:478) - - - - - Unexpected infix operator in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:476) - - - - - Unexpected identifier: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:443) - - - - - Unexpected end of input - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:404) - - - - - Unexpected empty type moduleDefn list - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:416) - - - - - Unclosed 'for', e.g. no 'done' found to match this 'for' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:459) - - - - - Unclosed block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:413) - - - - - Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:429) - - - - - Accessibility modifiers are not permitted in this position for type abbreviations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:439) - - - - - The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:485) - - - - - The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:486) - - - - - Syntax error in labelled type argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:475) - - - - - Syntax error - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:419) - - - - - Successive patterns should be separated by spaces or tupled - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:451) - - - - - Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:463) - - - - - A setter property may have at most two argument groups - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1090) - - - - - Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:432) - - - - - Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:447) - - - - - In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:466) - - - - - At most one 'with' augmentation is permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:402) - - - - - Only '#' compiler directives may occur prior to the first 'namespace' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:406) - - - - - Only class types may take value arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:425) - - - - - The use of the type syntax 'int C' and 'C <int>' is not permitted here. Consider adjusting this type to be written in the form 'C<int>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1096) - - - - - Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1094) - - - - - Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1095) - - - - - No matching 'in' found for this 'let' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:452) - - - - - No #endif found for #if or #else - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:397) - - - - - No '=' symbol should follow a 'namespace' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:484) - - - - - Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:408) - - - - - Multiple accessibilities given for property getter or setter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:431) - - - - - The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:477) - - - - - A module name must be a simple name, not a path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:415) - - - - - A module abbreviation must be a simple name, not a path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:409) - - - - - Missing qualification after '.' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:465) - - - - - Missing function body - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:473) - - - - - Mismatched quotation, beginning with '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:467) - - - - - Mismatched quotation operator name, beginning with '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:482) - - - - - This member is not permitted in an object implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:472) - - - - - The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:448) - - - - - Invalid property getter or setter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1091) - - - - - Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1116) - - - - - Invalid prefix operator - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1115) - - - - - Invalid declaration syntax - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:427) - - - - - Interfaces always have the same visibility as the enclosing type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:433) - - - - - An integer for loop must use a simple identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:401) - - - - - Accessibility modifiers are not permitted on inline assembly code types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:442) - - - - - 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:437) - - - - - An indexer property must be given at least one argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1092) - - - - - Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:412) - - - - - Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:411) - - - - - Ignoring attributes on module abbreviation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:410) - - - - - Identifier expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:460) - - - - - A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:430) - - - - - A getter property may have at most one argument group - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1089) - - - - - 'get', 'set' or 'get,set' required - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:424) - - - - - 'get' and/or 'set' required - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:428) - - - - - Field bindings must have the form 'id = expr;' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:471) - - - - - Block following this '%s' is unfinished. Expect an expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:454) - - - - - Error in the return expression for this 'let'. Possible incorrect indentation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:453) - - - - - Error in 'function' block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:474) - - - - - '=' expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:461) - - - - - End of file in verbatim string embedded in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:394) - - - - - End of file in verbatim string begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:391) - - - - - End of file in string embedded in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:393) - - - - - End of file in string begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:390) - - - - - End of file in IF-OCAML section begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:395) - - - - - End of file in #if section begun at or after here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:389) - - - - - End of file in directive begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:396) - - - - - End of file in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:392) - - - - - Accessibility modifiers are not permitted in this position for enum types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:440) - - - - - Accessibility modifiers are not permitted on enumeration fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:445) - - - - - A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:422) - - - - - 'done' expected after this expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:457) - - - - - 'do' expected after this expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:458) - - - - - Accessibility modifiers are not permitted on 'do' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:388) - - - - - Consider using a separate record type instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:446) - - - - - Augmentations are not permitted on delegate type moduleDefns - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:420) - - - - - Attributes should be placed before 'val' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:417) - - - - - Attributes are not permitted on 'inherit' declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:435) - - - - - Attributes are not allowed here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:438) - - - - - Attributes have been ignored in this construct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:398) - - - - - Attributes are not permitted on interface implementations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:418) - - - - - 'assert' may no longer be used as a first class value. Use 'assert <expr>' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:456) - - - - - The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:462) - - - - - All enum fields must be given values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:441) - - - - - Active pattern case identifiers must begin with an uppercase letter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:483) - - - - - Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:434) - - - - - Write the xmldoc of the assembly to the given file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:876) - - - - - Specify a Win32 resource file (.res) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:884) - - - - - Specify a Win32 manifest file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:885) - - - - - Report all warnings as errors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:894) - - - - - Report specific warnings as errors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:895) - - - - - Set a warning level (0-4) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:896) - - - - - Output messages in UTF-8 encoding - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:904) - - - - - Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:913) - - - - - Unrecognized debug type '%s', expected 'pdbonly' or 'full' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:914) - - - - - Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', and 'anycpu' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:928) - - - - - Unknown --test argument: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:927) - - - - - Enable or disable tailcalls - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:892) - - - - - Specify a strong name key file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:877) - - - - - Specify a strong name key container - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:878) - - - - - Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:910) - - - - - Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:909) - - - - - Resolve assembly references using directory-based mono rules rather than MSBuild resolution (Default=false except when running fsc.exe under mono) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:912) - - - - - Print the inferred interface of the assembly to a file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:882) - - - - - Short form of '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:916) - - - - - Embed the specified managed resource - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:887) - - - - - Reference an assembly (Short form: -r) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:883) - - - - - Problem with codepage '%d': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:868) - - - - - Limit which platforms this code can run on: x86, Itanium, x64 or anycpu. The default is anycpu. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:879) - - - - - Name the output debug file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:911) - - - - - Enable optimizations (Short form: -O) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:891) - - - - - Do not include the default Win32 manifest - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:886) - - - - - Disable specific warning messages - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:897) - - - - - Suppress compiler copyright message - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:901) - - - - - Do not reference the default CLI assemblies by default - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:908) - - - - - Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:880) - - - - - Don't add a resource to the generated assembly containing F#-specific metadata - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:881) - - - - - Name of the output file (Short form: -o) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:870) - - - - - Ignore ML compatibility warnings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:900) - - - - - Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]] - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:888) - - - - - Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:906) - - - - - Invalid warning level '%d' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:915) - - - - - The command-line option '%s' is for internal use only - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:929) - - - - - - RESOURCES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:921) - - - - - - OUTPUT FILES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:919) - - - - - - MISCELLANEOUS - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:924) - - - - - - LANGUAGE - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:925) - - - - - - INPUT FILES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:920) - - - - - - ERRORS AND WARNINGS - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:926) - - - - - - CODE GENERATION - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:922) - - - - - - ADVANCED - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:923) - - - - - Display this usage message (Short form: -?) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:902) - - - - - Output messages with fully qualified paths - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:905) - - - - - Delay-sign the assembly using only the public portion of the strong name key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:875) - - - - - Define conditional compilation symbols (Short form: -d) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:899) - - - - - Emit debug information (Short form: -g) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:889) - - - - - Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:890) - - - - - The command-line option '%s' has been deprecated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:930) - - - - - The command-line option '%s' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:932) - - - - - The command-line option '%s' has been deprecated. Use '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:931) - - - - - Enable or disable cross-module optimizations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:893) - - - - - Copyright (c) Microsoft Corporation. All Rights Reserved. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:869) - - - - - Specify the codepage used to read source files - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:903) - - - - - Use to override where the compiler looks for mscorlib.dll and framework components - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:918) - - - - - The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:917) - - - - - Generate overflow checks - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:898) - - - - - Build a Windows executable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:872) - - - - - Build a module that can be added to another assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:874) - - - - - Build a library (Short form: -a) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:873) - - - - - Build a console executable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:871) - - - - - Base address for the library to be built - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:907) - - - - - A value marked as 'inline' has an unexpected value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1007) - - - - - A value marked as 'inline' could not be inlined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1008) - - - - - The value '%s' was marked inline but was not bound in the optimization environment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1005) - - - - - The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1004) - - - - - Recursive ValValue %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1010) - - - - - Local value %s not found during optimization - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1006) - - - - - Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1009) - - - - - Unexpected empty long identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1025) - - - - - Multiple types exist called '%s', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1021) - - - - - The instantiation of the generic type '%s' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1022) - - - - - The type '%s' does not contain a field '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1026) - - - - - No constructors are available for the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1029) - - - - - This is not a constructor or literal, or a constructor is being used incorrectly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1024) - - - - - Invalid module/expression/type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1020) - - - - - Invalid field label - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1027) - - - - - Invalid expression '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1028) - - - - - 'global' may only be used as the first name in a qualified path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1023) - - - - - No Invoke methods found for delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:975) - - - - - More than one Invoke method found for delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:976) - - - - - Could not determine highest installed .NET framework version from Registry keys, using version 2.0 - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1124) - - - - - This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1111) - - - - - Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1075) - - - - - Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1074) - - - - - Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1076) - - - - - Identifiers containing '@' are reserved for use in F# code generation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:986) - - - - - The identifier '%s' is reserved for future use by F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:987) - - - - - Possible incorrect indentation: this token is offside of context started at position %s. Try indenting this token further or using standard formatting conventions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1015) - - - - - The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1016) - - - - - The indentation of this 'in' token is incorrect with respect to the corresponding 'let' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1014) - - - - - Syntax error. Wrong nested #endif, unexpected tokens before it. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1072) - - - - - Unexpected character '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1041) - - - - - This token is reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1062) - - - - - This Unicode encoding is only valid in string literals - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1061) - - - - - TABs are not allowed in F# code unless the #indent \"off\" option is used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1063) - - - - - This number is outside the allowable range for 32-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1050) - - - - - This number is outside the allowable range for 32-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1049) - - - - - This number is outside the allowable range for 64-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1052) - - - - - This number is outside the allowable range for 64-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1051) - - - - - This number is outside the allowable range for 16-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1048) - - - - - This number is outside the allowable range for 16-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1047) - - - - - This number is outside the allowable range for unsigned native integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1054) - - - - - This number is outside the allowable range for signed native integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1053) - - - - - This number is outside the allowable range for this integer type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1038) - - - - - This number is outside the allowable range for 8-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1046) - - - - - This number is outside the allowable range for hexadecimal 8-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1045) - - - - - This number is outside the allowable range for 8-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1044) - - - - - This number is outside the allowable range for 32-bit floats - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1057) - - - - - This number is outside the allowable range for decimal literals - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1056) - - - - - Character sequences beginning with '?' are no longer permitted as operator names - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1040) - - - - - This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1058) - - - - - Invalid line number: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1064) - - - - - Invalid floating point number - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1055) - - - - - This is not a valid character literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1060) - - - - - This is not a valid byte literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1059) - - - - - Consider using a file with extension '.ml' or '.mli' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1118) - - - - - Identifiers followed by '%s' are reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1043) - - - - - #if directive should be immediately followed by an identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1071) - - - - - #if directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1065) - - - - - #endif has no matching #if - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1069) - - - - - #endif required for #else - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1067) - - - - - #endif directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1070) - - - - - #else has no matching #if - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1066) - - - - - #else directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1068) - - - - - Expected single line comment or end of line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1073) - - - - - '%s' is not permitted as a character in operator names and is reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1039) - - - - - This byte array literal contains characters that do not encode as a single byte - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1042) - - - - - The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:996) - - - - - A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:997) - - - - - A reference to the DLL %s is required by assembly %s. The imported type %s is located in the first assembly and could not be resolved. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:999) - - - - - Internal error or badly formed metadata: not enough type parameters were in scope while importing - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:998) - - - - - An imported assembly uses the type '%s' but that type is not public - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1000) - - - - - PDB files cannot be generated when running on Mono - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1034) - - - - - Unexpected error creating debug information file '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1033) - - - - - Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:849) - - - - - Values marked with 'LiteralAttribute' cannot be mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:848) - - - - - Compiler error: unexpected unrealized value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:857) - - - - - Unexpected GetSet annotation on a property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:860) - - - - - Undefined value '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:842) - - - - - This type cannot be used for a literal field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:859) - - - - - The StructLayout attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:862) - - - - - GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:855) - - - - - The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:852) - - - - - Reflected definitions cannot contain uses of the prefix splice operator '%%' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:864) - - - - - Mutable variables cannot escape their method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:856) - - - - - The MarshalAs attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:851) - - - - - Main module of program is empty: nothing will happen when it is run - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:858) - - - - - Literal fields cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:854) - - - - - Label %s not found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:843) - - - - - Incorrect number of type arguments to local call - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:844) - - - - - The FieldOffset attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:861) - - - - - The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1121) - - - - - The type '%s' has been marked as having an Explicit layout, but the field '%s' has not been marked with the 'FieldOffset' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1113) - - - - - Dynamic invocation of %s is not supported - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:845) - - - - - The DllImport attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:853) - - - - - The DefaultAugmentation attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:863) - - - - - Custom marshallers cannot be specified in F# code. Consider using a C# helper function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:850) - - - - - This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:847) - - - - - Taking the address of a literal field is invalid - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:846) - - - - - This file was automatically generated by a call to Goto Definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:936) - - - - - If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines). - - - - - Prefix flag (' ' or '+') set twice - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:237) - - - - - Precision missing after the '.' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:242) - - - - - Positional specifiers are not permitted in format strings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:234) - - - - - Missing format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:235) - - - - - The 'l' or 'L' in this format specifier is unnecessary except for ML compatibility. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:245) - - - - - The # formatting modifier is invalid in F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:238) - - - - - The 'h' or 'H' in this format specifier is unnecessary. You can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:246) - - - - - '%s' format does not support precision - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:243) - - - - - '%s' flag set twice - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:236) - - - - - '%s' format does not support '0' flag - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:241) - - - - - '%s' does not support prefix '%s' flag - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:247) - - - - - Bad width in format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:240) - - - - - Bad precision in format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:239) - - - - - Bad format specifier: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:248) - - - - - Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. These format specifiers support ML compatibility. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:244) - - - - - The record, struct or class field '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:972) - - - - - This construct is experimental - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:974) - - - - - The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:967) - - - - - System.Environment.Exit did not exit - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:252) - - - - - The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:253) - - - - - Delegates are not allowed to have curried signatures - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:977) - - - - - This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:349) - - - - - The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:352) - - - - - The type '%s' is not a CLI enum type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:346) - - - - - The type '%s' is not a CLI delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:348) - - - - - Type instantiation length mismatch - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:356) - - - - - Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:330) - - - - - The type '%s' has a non-standard delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:347) - - - - - The type '%s' does not support any operators named '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:334) - - - - - The type '%s' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:345) - - - - - The type '%s' does not support the 'equality' constraint because it is a function type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:344) - - - - - The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:343) - - - - - The type '%s' does not support a conversion to the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:335) - - - - - The type '%s' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:342) - - - - - The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:341) - - - - - The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:340) - - - - - The type '%s' does not have 'null' as a proper value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:339) - - - - - The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:328) - - - - - The constraints 'struct' and 'not struct' are inconsistent - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:338) - - - - - The required signature is %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:368) - - - - - Optional arguments not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:357) - - - - - No overloads match for method '%s'. The available overloads are shown below (or in the Error List window). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:383) - - - - - No %s member or object constructor named '%s' takes %d arguments. The named argument '%s' doesn't correspond to any argument or settable return property for any overload. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:381) - - - - - No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:380) - - - - - No %s member or object constructor named '%s' takes %d arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:379) - - - - - Method or object constructor '%s' not found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:382) - - - - - A unique overload for method '%s' could not be determined based on type information prior to this program point. The available overloads are shown below (or in the Error List window). A type annotation may be needed. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:384) - - - - - %s is not an instance method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:366) - - - - - %s is not a static method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:365) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:336) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:337) - - - - - This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:362) - - - - - The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:375) - - - - - The member or object constructor '%s' requires %d argument(s) but is here given %d unnamed and %d named argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:373) - - - - - The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:374) - - - - - The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. Some names for missing arguments are %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:372) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:371) - - - - - The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:370) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:369) - - - - - The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:378) - - - - - The member or object constructor '%s' taking %d arguments are not accessible from this code location. All accessible versions of method '%s' take %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:376) - - - - - %s is not a static member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:358) - - - - - %s is not an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:359) - - - - - The member or object constructor '%s' is not %s. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:364) - - - - - The member or object constructor '%s' is not %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:363) - - - - - The member or object constructor '%s' has no argument or settable return property '%s'. %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:367) - - - - - This indexer expects %d arguments but is here given %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:332) - - - - - Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:377) - - - - - A generic construct requires that the type '%s' is an unmanaged type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:351) - - - - - A generic construct requires that the type '%s' is a CLI or F# struct type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:350) - - - - - A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:353) - - - - - A generic construct requires that the type '%s' have a public default constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:355) - - - - - A generic construct requires that the type '%s' be non-abstract - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:354) - - - - - Expected arguments to an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:331) - - - - - Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:333) - - - - - This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:329) - - - - - The argument types don't match - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:361) - - - - - Argument length mismatch - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:360) - - - - - Quotations cannot contain expressions that set union case fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:315) - - - - - Quotations cannot contain expressions that set fields in exception values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:316) - - - - - Quotations cannot contain expressions that require byref pointers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:317) - - - - - Quotations cannot contain expressions that fetch union case indexes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:314) - - - - - Quotations cannot contain this kind of type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:322) - - - - - Quotations cannot contain this kind of pattern match - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:320) - - - - - Quotations cannot contain this kind of constant - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:319) - - - - - Quotations cannot contain expressions that fetch static fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:311) - - - - - Quotations cannot contain object expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:309) - - - - - Quotations cannot contain literal byte arrays - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:323) - - - - - Quotations cannot contain inline assembly code or pattern matching on arrays - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:312) - - - - - Quotations cannot contain function declarations that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:308) - - - - - Quotations cannot contain uses of generic expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:307) - - - - - Quotations cannot contain descending for loops - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:313) - - - - - Quotations cannot contain array pattern matching - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:321) - - - - - Quotations cannot contain expressions that take the address of a field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:310) - - - - - Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:318) - - - - - Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:324) - - - - - The variable '%s' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:306) - - - - - The variable '%s' is used in an invalid way - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:261) - - - - - The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:301) - - - - - The value '%s' is unused - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1087) - - - - - The recursive object reference '%s' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1088) - - - - - default augmentation of the union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:286) - - - - - compiled form of the union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:285) - - - - - The type '%s' is less accessible than the value, member or type '%s' it is used in - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:262) - - - - - 'System.Void' can only be used as 'typeof<System.Void>' in F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:263) - - - - - Expression-splicing operators may only be used within quotations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:266) - - - - - A method return type would contain byrefs which is not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:278) - - - - - [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%%' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:283) - - - - - A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:257) - - - - - Name clash. The property '%s' has the same name as a method in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:287) - - - - - The property '%s' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:289) - - - - - Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:272) - - - - - First-class uses of the expression-splicing operator are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:267) - - - - - First-class uses of the 'reraise' function is not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:269) - - - - - First-class uses of the address-of operators are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:268) - - - - - The type abbreviation contains byrefs. This is not permitted by F#. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:302) - - - - - The byref typed value '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:270) - - - - - A byref typed value would be stored here. Top-level let-bound byref values are not permitted. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:282) - - - - - The address of the static field '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:274) - - - - - The address of the variable '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:273) - - - - - The address of an array element cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:276) - - - - - The address of the field '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:275) - - - - - The mutable variable '%s' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:259) - - - - - This type implements or inherits the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:300) - - - - - The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to its definition at or near '%s'. This is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:281) - - - - - 'base' values may only be used to make direct calls to the base implementations of overridden members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:271) - - - - - Invalid custom attribute value (not a constant or literal) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:279) - - - - - The property '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:288) - - - - - The type of a first-class function cannot contain byrefs - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:277) - - - - - A type instantiation involves a byref type. This is not permitted by the rules of Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:264) - - - - - Calls to 'reraise' may only occur directly in a handler of a try-with - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:265) - - - - - A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:284) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:297) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:296) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:293) - - - - - Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:299) - - - - - Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:298) - - - - - The method '%s' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:294) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:292) - - - - - Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:295) - - - - - A type would store a byref typed value. This is not permitted by Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:290) - - - - - The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:258) - - - - - The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:260) - - - - - The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:280) - - - - - Unrecognized option: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:60) - - - - - ParseInput: unknown file suffix for '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:41) - - - - - The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:17) - - - - - The signature file '%s' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:57) - - - - - A signature for the file or module '%s' has already been specified - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:54) - - - - - The search directory '%s' could not be found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:27) - - - - - The file '%s' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:32) - - - - - Microsoft (R) F# 2.0 Compiler build %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:21) - - - - - Problem with filename '%s': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:22) - - - - - The '--pdb' option requires the '--debug' option to be used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:25) - - - - - Option requires parameter: %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:42) - - - - - No inputs specified - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:23) - - - - - This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:40) - - - - - Multiple references to '%s.dll' are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:31) - - - - - Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:39) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:34) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:36) - - - - - The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:24) - - - - - Invalid warning number '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:18) - - - - - Invalid version string '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:19) - - - - - Invalid version file '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:20) - - - - - The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:44) - - - - - The search directory '%s' is invalid - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:26) - - - - - Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:30) - - - - - Invalid module or namespace name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:61) - - - - - Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:52) - - - - - Invalid directive. Expected '#r \"<file-or-assembly>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:50) - - - - - Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:51) - - - - - Invalid directive. Expected '#I \"<path>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:49) - - - - - '%s' is not a valid filename - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:28) - - - - - '%s' is not a valid assembly name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:29) - - - - - The declarations in this file will be placed in an implicit module '%s' based on the file name '%s'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:38) - - - - - An implementation of file or module '%s' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:55) - - - - - An implementation of the file or module '%s' has already been given - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:56) - - - - - When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:62) - - - - - FSharp.Core.sigdata not found alongside FSharp.Core - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:64) - - - - - File '%s' not found alongside FSharp.Core - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:66) - - - - - Error opening binary file '%s': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:47) - - - - - Directives inside modules are ignored - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:53) - - - - - The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:48) - - - - - Did not expect to find sigdata resource in FSharp.Core.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:63) - - - - - Did not expect to find optdata resource in FSharp.Core.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:65) - - - - - Could not resolve assembly '%s' required by '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:46) - - - - - Could not resolve assembly '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:45) - - - - - Could not read version from mscorlib.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:33) - - - - - Source file '%s' could not be found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:43) - - - - - The file extensions '.ml' and '.mli' are for ML compatibility - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1117) - - - - - Unable to read assembly '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:35) - - - - - Assembly resolution failure at or near this location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:37) - - - - - '%s' is not a valid integer argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:58) - - - - - '%s' is not a valid floating point argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:59) - - - - - A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:223) - - - - - The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:222) - - - - - The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:221) - - - - - A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:225) - - - - - Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:224) - - - - - The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:218) - - - - - The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:220) - - - - - A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:228) - - - - - A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:229) - - - - - This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:219) - - - - - A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:226) - - - - - The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:230) - - - - - A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:227) - - - - - Error while parsing embedded IL type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:212) - - - - - Error while parsing embedded IL - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:211) - - - - - Invalid expression on left of assignment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:214) - - - - - This indexer notation has been removed from the F# language - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:213) - - - - - .NET Framework - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:960) - - - - - Global Assembly Cache - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:961) - - - - - Found by AssemblyFolders registry key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:958) - - - - - Found by AssemblyFoldersEx registry key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:959) - - - - - Active pattern '%s' is not a function - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1119) - - - - - Active pattern '%s' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice<int,unit> = A x' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1120) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:120) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:112) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:119) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:125) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:111) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:123) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:110) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:124) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:104) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:109) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:126) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:108) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe number of generic parameters in the signature and implementation differ (the signature declares %s but the implementation declares %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:115) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [<Measure>] attribute. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:116) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:122) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:113) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:118) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:106) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:105) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:103) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:114) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe arities in the signature and implementation differ. The signature specifies that '%s' is function definition or lambda expression accepting at least %s argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval %s: int -> (int -> int)\ninstead of\n\tval %s: int -> int -> int. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:117) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:107) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:121) - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:161) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:159) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:160) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:162) - - - - - Invalid recursive reference to an abstract slot - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:966) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:168) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:165) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:163) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:166) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:167) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:164) - - - - - The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:187) - - - - - The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:184) - - - - - The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:191) - - - - - The exception definitions are not compatible because the field '%s' was required by the signature but was not specified by the implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:189) - - - - - The exception definitions are not compatible because the field '%s' was present in the implementation but not in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:190) - - - - - The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:188) - - - - - The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:185) - - - - - The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:186) - - - - - The %s definitions in the signature and implementation are not compatible because the types have different base types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:139) - - - - - The %s definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:145) - - - - - The %s definitions in the signature and implementation are not compatible because the types are of different kinds - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:146) - - - - - The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:134) - - - - - The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:133) - - - - - The %s definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [<AbstractClass>] attribute to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:138) - - - - - The %s definitions in the signature and implementation are not compatible because the signature defines the %s '%s' but the implementation does not (or does, but not in the same order) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:141) - - - - - The %s definitions in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:155) - - - - - The %s definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:158) - - - - - The %s definitions in the signature and implementation are not compatible because the representations differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:148) - - - - - The %s definitions in the signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:128) - - - - - The %s definitions in the signature and implementation are not compatible because the number of %ss differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:140) - - - - - The %s definitions in the signature and implementation are not compatible because the names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:127) - - - - - The %s definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface %s but the interface has not been implemented - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:130) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [<Sealed>] attribute to the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:135) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:132) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:131) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [<Sealed>] attribute to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:136) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [<AbstractClass>] attribute to the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:137) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:143) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation defines the %s '%s' but the signature does not (or does, but not in the same order) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:142) - - - - - The %s definitions in the signature and implementation are not compatible because the IL representations differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:147) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:149) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was required by the signature but was not specified by the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:151) - - - - - The %s definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:150) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:152) - - - - - The %s definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:144) - - - - - The %s definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:129) - - - - - The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was present in the implementation but not in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:154) - - - - - The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was required by the signature but was not specified by the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:153) - - - - - The %s definitions in the signature and implementation are not compatible because the abbreviations differ: %s versus %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:156) - - - - - The %s definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:157) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert string into Option string where null and String.Empty result in None - - - - - - - - - - - - - - Get the System.Reflection.Assembly object for the assembly - - - - - Holds the full qualified assembly name - - - - - Get the object representing the F# core library (FSharp.Core.dll) for the running program - - - - - A handle to the full specification of the contents of the module contained in this Assembly - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - Return the System.Reflection.Assembly object for the assembly - - - - - This is one way of starting the loading process off. - - - - - This is one way of starting the loading process off. Dependencies are automatically - resolved by calling System.Reflection.Assembly.Load. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the XML documentation signature for the entity - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - Get the cases of a discriminated union - - - - - Get the declared accessibility of the representation, not taking signatures into account - - - - - Get the System.Type for the type - - Raises InvalidOperationException if the type is an abbreviation or has an assembly code representation. - - - - - Get the System.Reflection.Assembly for the type - - May raise an exception if an assembly load fails - - - - - Get the fields of the class, struct or enum - - - - - Get the fully qualified name of the type or module - - - - - - - - Get the namespace containing the type or module, if any - - - - - Properties, methods etc. with implementations, also values in a module - - - - - Get the name of the type or module, possibly with `n mangling - - - - - Indicates the entity is a struct or enum - - - - - Indicates the entity is union type - - - - - Indicates the entity is record type - - - - - Indicates the entity is an F# module definition - - - - - Indicates the entity is a measure definition - - - - - If true, then this is a reference to something in some .NET assembly from another .NET language - - - - - Indicates an F# exception declaration - - - - - Indicates the entity is a measure, type or exception abbreviation - - - - - Interface implementations - boolean indicates compiler-generated - - - - - Indicates that a module is compiled to a class with the given mangled name. The mangling is reversed during lookup - - - - - Indicates the type is implemented through a mapping to IL assembly code. THis is only - true for types in FSharp.Core.dll - - - - - Get the generic parameters, possibly including unit-of-measure parameters - - - - - Get the name of the type or module as displayed in F# code - - - - - Get the entity containing the type or module, if any - - - - - Get the declaration location for the type constructor - - - - - Get the compiled name of the type or module, possibly with `n mangling. This is identical to LogicalName - unless the CompiledName attribute is used. - - - - - Base type, if any - - - - - Get the declared attributes for the type - - - - - Get the declared accessibility of the type - - - - - - - - Return the FSharpEntity corresponding to a .NET type - - - - - Represents an F# type or module - - - - - - - - - - - Get the documentation for the type parameter. - - - - - Get the name of the generic parameter - - - - - Indicates if this is a statically resolved type variable - - - - - Indicates if this is a measure variable - - - - - Get the range of the generic parameter - - - - - Get the declared or inferred constraints for the type parameter - - - - - Get the declared attributes of the type parameter. - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates a constraint that a type is an unmanaged type - - - - - Indicates a constraint that a type has a 'null' value - - - - - Indicates a constraint that a type is a simple choice between one of the given ground types. Used by printf format strings. - - - - - Indicates a constraint that a type has a parameterless constructor - - - - - Indicates a constraint that a type is a reference type - - - - - Indicates a constraint that a type is a non-Nullable value type - - - - - Indicates a constraint that a type has a member with the given signature - - - - - Indicates a constraint that a type supports F# generic equality - - - - - Indicates a constraint that a type is an enum with the given underlying - - - - - Indicates a constraint that a type is a delegate from the given tuple of args to the given return type - - - - - Indicates a default value for an inference type variable should it be netiher generalized nor solved - - - - - Indicates a constraint that a type supports F# generic comparison - - - - - Indicates a constraint that a type is a subtype of the given type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indictes the value is inlined but the code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined - - - - - - - - - - - - - - - - - - - - XML documentation signature for the value. - - - - - Get the full type of the member or value when used as a first class value - - - - - - - - Get the reflection object for this member - - - - - Get the logical name of the member - - - - - Get the logical enclosing entity, which for an extension member is type being extended - - - - - Indicates if this is an F# type function - - - - - Indicates if this is a setter method for a property - - - - - Indicates if this is a mutable value - - - - - Indicates if this is a module or member value - - - - - Indicates if this is a member, including extension members? - - - - - Indicates if this is an instance member, when seen from F#? - - - - - Indicates if this is an implicit constructor? - - - - - Indicates if this is a getter method for a property - - - - - Indicates if this is an extension member? - - - - - Indicates if this is an abstract member? - - - - - Indicates if this is a compiler generated value - - - - - Indicates if this value or member is an F# active pattern - - - - - Get a result indicating if this is a must-inline value - - - - - Get the typars of the member or value - - - - - - - - Get the name as presented in F# error messages and documentation - - - - - Get the declaration location of the member or value - - - - - - - - Get the member name in compiled code - - - - - Custom attributes attached to the value. These contain references to other values (i.e. constructors in types). Mutable to fixup - these value references after copying a colelction of values. - - - - - How visible is this? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the XML documentation signature for the field - - - - - Get the type of the field, w.r.t. the generic parameters of the enclosing type constructor - - - - - Get the attributes attached to generated property - - - - - Get the name of the field - - - - - Indicates a static field - - - - - Is the field declared in F#? - - - - - Indicates a compiler generated field, not visible to Intellisense or name resolution - - - - - Get the attributes attached to generated field - - - - - Get the declaration location of the field - - - - - Indicates the declared visibility of the field, not taking signatures into account - - - - - - - - - - - - - - Get the named entity for a type constructed using a named entity - - - - - Indicates the type is a tuple type. The GenericArguments property returns the elements of the tuple type. - - - - - Indicates the type is constructed using a named entity - - - - - Indicates the type is a variable type, whether declared, generalized or an inference type parameter - - - - - Indicates the type is a function type. The GenericArguments property returns the domain and range of the function type. - - - - - Get the index for a generic parameter type - - - - - Get the generic parameter data for a generic parameter type - - - - - Get the generic arguments for a tuple type, a function type or a type constructed using a named entity - - - - - - - - - - - - - - Get the XML documentation signature for the case - - - - - Get type constructed by the case. Normally exactly the type of the enclosing type, sometimes an abbreviation of it - - - - - Get the name of the case - - - - - Get the data carried by the case. - - - - - Get the range of the name of the case - - - - - Gete the name of the case in generated IL code - - - - - Get the attributes for the case, attached to the generated static method to make instances of the case - - - - - Indicates the declared visibility of the union constructor, not taking signatures into account - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Note this operation is O(n) anyway, so executing lastElements() here is OK - - - - - Note this operation is O(1), unless a push happens, which is rare - - - - - - - - - - - - - - - - - Iterable functional collection with O(1) append-1 time. Useful for data structures where elements get added at the - end but the collection must occadionally be iterated. Iteration is slower and may allocate because - a suffix of elements is stored in reverse order. - - The type doesn't support structural hashing or comparison. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - keyed first on namespace then on type name. The namespace is often a unique key for a given type map. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The explicit offset in bytes when explicit layout is used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index table by name and arity. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The type instantiation if the type is generic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Calling conventions. These are used in method pointer types. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global state: table of all assembly references keyed by AssemblyRefData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This is used to store event, property and field maps. - - Review: this is not such a great data structure. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global State. All namespace splits - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A little ugly, but the idea is that if a data structure does not - contain lazy values then we don't add laziness. So if the thing to map - is already evaluated then immediately apply the function. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The assumptions that need to be fixed up - - - - - The data that uses a collection of CcuThunks internally - - - - - Like Fixup but loader may return None, in which case there is no fixup. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This field holds either the function to run or a PPLazyFailure object recording the exception raised - from running the function. It is null if the thunk has been evaluated successfully. - - - - - This field holds the result of a successful computation. It's initial value is Unchecked.defaultof - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Treat a list of key-value pairs as a lookup collection. - This function returns true if two keys are the same according to the predicate - function passed in. - - - - - Treat a list of key-value pairs as a lookup collection. - This function looks up a value based on a match from the supplied - predicate function. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Try to chop "get_" or "set_" from a string - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies the compiled representations of type and exception definitions. - Computed and cached by later phases (never computed type checking). Cached at - type and exception definitions. Not pickled. Cache an optional ILType object for - non-generic types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A representation of a method in an object expression. - Note: Methods associated with types are represented as val declarations - Note: We should probably use val_specs for object expressions, as then the treatment of members - in object expressions could be more unified with the treatment of members in types - - - - - - - - - - - - - - A call to a base method, e.g. 'base.OnPaint(args)' - - - - - A call to a constructor, e.g. 'new C() = new C(3)' - - - - - A call to a constructor, e.g. 'inherit C()' - - - - - A normal use of a value - - - - - Indicates a use of a value represents a call to a method that may require - a .NET 2.0 constrained call. A constrained call is only used for calls where - - - - - - - - let res = a in b;res - - - - - a ; b - - - - - - - - In C syntax this is: *localv_ptr = e - - - - - In C syntax this is: localv = e , note == *(&localv) = e == LGetAddr; LByrefSet - - - - - In C syntax this is: *localv_ptr - - - - - In C syntax this is: &localv - - - - - - - - Evaluate start once and end multiple times, loop up - - - - - Evaluate start and end once, loop down - - - - - Evaluate start and end once, loop up - - - - - - - - - - - - - - - - - - - - IL method calls - - - - - Operation nodes represnting C-style operations on byrefs and mutable vals (l-values) - - - - - Pseudo method calls. This is used for overloaded operations like op_Addition. - - - - - - - - Represents a "rethrow" operation. May not be rebound, or used outside of try-finally, expecting a unit argument - - - - - Conversion node, compiled via type-directed translation or to box/unbox - - - - - generate a ldflda on an 'a ref. - - - - - IL assembly code - type list are the types pushed on the stack - - - - - An operation representing a field-get from an F# tuple value. - - - - - An operation representing a field-set on an F# exception value. - - - - - An operation representing a field-get from an F# exception value. - - - - - An operation representing a field-get from a union value. THe value is not assumed to have been proven to be of the corresponding union case. - - - - - An operation representing a field-get from a union value, where that value has been proven to be of the corresponding union case. - - - - - An operation representing a coercion that proves a union value is of a particular union case. THis is not a test, its - simply added proof to enable us to generate verifiable code for field access on union types - - - - - An operation representing getting an integer tag for a union value representing the union case number - - - - - An operation representing getting the address of a record field - - - - - An operation representing getting a record field - - - - - An operation representing setting a record field - - - - - Construct a record or object-model value. The ValRef is for self-referential class constructors, otherwise - it indicates that we're in a constructor and the purpose of the expression is to - fill in the fields of a pre-created but uninitialized object, and to assign the initialized - version of the object into the optional mutable cell pointed to be the given value. - - - - - An operation representing a lambda-encoded try/finally - - - - - An operation representing a lambda-encoded try/catch - - - - - An operation representing a lambda-encoded for loop - - - - - An operation representing a lambda-encoded while loop. The special while loop marker is used to mark compilations of 'foreach' expressions - - - - - - - - Constant bytes, but a new mutable blob is generated each time the construct is executed - - - - - An operation representing the creation of an array value - - - - - An operation representing the creation of a tuple value - - - - - An operation representing the creation of an exception value using an F# exception declaration - - - - - An operation representing the creation of a union value of the particular union case - - - - - - - - Normal record construction - - - - - We're in a constructor. The purpose of the record expression is to - fill in the fields of a pre-created but uninitialized object - - - - - This ModuleOrNamespace that represents the compilation of a module as a class. - The same set of tycons etc. are bound in the ModuleOrNamespace as in the ModuleOrNamespaceExpr - This is the body of the module/namespace - - - - - - - - A named module-or-namespace-fragment definition - - - - - Indicates the module fragment is a 'rec' definition of types, values and modules - - - - - Indicates the module fragment is an evaluation of expression for side-effects - - - - - Indicates the module fragment is a 'let' definition - - - - - Indicates the module fragment is made of several module fragments in succession - - - - - Indicates the module is a module with a signature - - - - - The module_typ is a binder. However it is not used in the ModuleOrNamespaceExpr: it is only referenced from the 'outside' - The contents of a module-or-namespace-fragment definition - - - - - - - - A type for a module-or-namespace-fragment and the actual definition of the module-or-namespace-fragment - - - - - Typechecking residue: A TExpr_link occurs for every use of a recursively bound variable. While type-checking - the recursive bindings a dummy expression is stored in the mutable reference cell. - After type checking the bindings this is replaced by a use of the variable, perhaps at an - appropriate type instantiation. These are immediately eliminated on subsequent rewrites. - - - - - Typechecking residue: Indicates a free choice of typars that arises due to - minimization of polymorphism at let-rec bindings. These are - resolved to a concrete instantiation on subsequent rewrites. - - - - - - - - An intrinsic applied to some (strictly evaluated) arguments - A few of intrinsics (TOp_try, TOp_while, TOp_for) expect arguments kept in a normal form involving lambdas - - - - - If we statically know some infomation then in many cases we can use a more optimized expression - This is primarily used by terms in the standard library, particularly those implementing overloaded - operators. - - - - - Matches are a more complicated form of "let" with multiple possible destinations - and possibly multiple ways to get to each destination. - The first mark is that of the expression being matched, which is used - as the mark for all the decision making and binding that happens during the match. - - - - - - - - Bind a value. - - - - - Bind a recursive set of values. - - - - - Applications combine type and term applications, and are normalized so - that sequential applications are combined, so "(f x y)" becomes "f [[x];[y]]". - The type attached to the function is the formal function type, used to ensure we don't build application - nodes that over-apply when instantiating at function types. - - - - - - - - Lambda expressions. - - - - - Sequence expressions, used for "a;b", "let a = e in b;a" and "a then b" (the last an OO constructor). - - - - - Reference a value. The flag is only relevant if the value is an object model member - and indicates base calls and special uses of object constructors. - - - - - A constant expression. - - - - - The big type of expressions. - - - - - - - - - - - - - - - - - - - - - - - The extra metadata stored about typars for top-level definitions. Any information here is propagated from signature through - to the compiled code. - - - - - - - - - - - The extra metadata stored about typars for top-level definitions. Any information here is propagated from signature through - to the compiled code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A target of a decision tree. Can be thought of as a little function, though is compiled as a local block. - - - - - Run the active pattern and bind a successful result to the (one) variable in the remaining tree - - - - - Test if the input to a decision tree is an instance of the given type - - - - - Test if the input to a decision tree is null - - - - - Test if the input to a decision tree is the given constant value - - - - - Test if the input to a decision tree is an array of the given length - - - - - Test if the input to a decision tree matches the given constructor - - - - - - - - - - - - - - Bind the given value throught the remaining cases of the dtree. - - - - - Indicates the decision tree has terminated with success, calling the given target with the given parameters - - - - - Indicates a decision point in a decision tree. - - - - - Decision trees. Pattern matching has been compiled down to - a decision tree by this point. The right-hand-sides (actions) of - the decision tree are labelled by integers that are unique for that - particular tree. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Constants in expressions - - - - - - - - AttribNamedArg(name,type,isField,value) - - - - - - - - We keep both source expression and evaluated expression around to help intellisense and signature printing - - - - - - - - Attrib(kind,unnamedArgs,propVal,appliedToAGetterOrSetter,range) - - - - - Indicates an attribute refers to a type defined in an imported F# assembly - - - - - Indicates an attribute refers to a type defined in an imported .NET assembly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The result of attempting to resolve an assembly name to a full ccu. - UnresolvedCcu will contain the name of the assembly that could not be resolved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ensure the ccu is derefable in advance. Supply a path to attach to any resulting error message. - - - - - - - - - - - A relinkable handle to the contents of a compilation unit. Relinking is performed by mutation. - - - - - - - - - - - - - - A helper function used to link method signatures using type equality. This is effectively a forward call to the type equality - logic in tastops.fs - - - - - A handle to the full specification of the contents of the module contained in this ccu - - - - - Indicates that this DLL uses quotation literals somewhere. This is used to implement a restriction on static linking - - - - - Indicates that this DLL was compiled using the F# compiler - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - The fully qualified assembly reference string to refer to this assembly. This is persisted in quotations - - - - - A unique stamp for this DLL - - - - - Holds the data indicating how this assembly/module is referenced from the code being compiled. - - - - - Holds the filename for the DLL, if any - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the type is a variable type, whether declared, generalized or an inference type parameter - - - - - Indicates the type is a non-F#-visible type representing a "proof" that a union value belongs to a particular union case - These types are not user-visible and will never appear as an inferred type. They are the types given to - the temporaries arising out of pattern matching on union values. - - - - - Indicates the type is a function type - - - - - Indicates the type is a tuple type - - - - - Indicates the type is a type application - - - - - Indicates the type is a universal type, only used for types of values, members and record fields - - - - - The algebra of types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - References are either local or nonlocal - - - - - - - - note: ModuleOrNamespaceRef and TyconRef are type equivalent - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Is the destination assembly available? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index into the namespace/module structure of a particular CCU - - - - - - - - - - - - - - The information ILXGEN needs about the location of an item - - - - - - - - - - - - - - - - - A public path records where a construct lives within the global namespace - of a CCU. - - - - - The name of the value, or the full signature of the member - - - - - A reference to the entity containing the value or member. THis will always be a non-local reference - - - - - - - - - - - - - - - - - - - - - - - Gets updated with 'true' if an abstract slot is implemented in the file being typechecked. Internal only. - - - - - Gets updated with full slotsig after interface implementation relation is checked - - - - - The parent type. For an extension member this is the type being extended - - - - - - - - XML documentation signature for the value - - - - - XML documentation attached to a value. - - - - - - - - Top level values have an arity inferred and/or specified - signatures. The arity records the number of arguments preferred - in each position for a curried functions. The currying is based - on the number of lambdas, and in each position the elements are - based on attempting to deconstruct the type of the argument as a - tuple-type. The field is mutable because arities for recursive - values are only inferred after the r.h.s. is analyzed, but the - value itself is created before the r.h.s. is analyzed. - - TLR also sets this for inner bindings that it wants to - represent as "top level" bindings. - - - - - Custom attributes attached to the value. These contain references to other values (i.e. constructors in types). Mutable to fixup - these value references after copying a colelction of values. - - - - - Is the value actually an instance method/property/event that augments - a type, and if so what name does it take in the IL? - - - - - How visible is this? - - - - - What is the original, unoptimized, closed-term definition, if any? - Used to implement [<ReflectedDefinition>] - - - - - - - - See vflags section further below for encoding/decodings here - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Get the signature for the value's XML documentation - - - - -Get the signature for the value's XML documentation - - - - - Get the declared documentation for the value - - - - - Get the type of the value including any generic type parameters - - - - - The type of the value. - May be a Type_forall for a generic value. - May be a type variable or type containing type variables during type inference. - - - - - Get the generic type parameters for the value - - - - - - - - Get the actual parent entity for the value (a module or a type), i.e. the entity under which the - value will appear in compiled code. For extension members this is the module where the extension member - is declared. - - - - - Get the type of the value after removing any generic type parameters - - - - - A unique stamp within the context of this invocation of the compiler process - - - - - - - - Get the information about the value used during type inference - - - - - The place where the value was defined. - - - - - Get the public path to the value, if any? Should be set if and only if - IsMemberOrModuleBinding is set. - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the property implemented by the abstract slot - - - - - Does the value allow the use of an explicit type instantiation (i.e. does it itself have explciti type arguments, - or does it have a signature?) - - - - - Does the inline declaration for the value indicate that the value must be inlined? - - - - - Is this a member, if so some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Get the apparent parent entity for a member - - - - - Was the value inferred to be a method or function that definitely makes no critical tailcalls? - - - - - The name of the method. - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an extension member then this will be the simple name - - - - - The value of a value or member marked with [<LiteralAttribute>] - - - - - - - - - - - - - - Was this member declared 'override' or is it an implementation of an interface slot - - - - - Was the value declared 'mutable' - - - - - Is this a value in a module, or an extension member, but excluding compiler generated bindings from optimizations - - - - - Is this a member definition or module definition? - - - - - Is this a member, if so some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - - - - Is this a member, excluding extension members - - - - - Is this an instance member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Is this a member generated from the de-sugaring of 'let' function bindings in the implicit class syntax? - - - - - Is this a constructor member generated from the de-sugaring of implicit constructor for a class type? - - - - - - - - - - - Is this a 'new' constructor member - - - - - Was the value generated by the compiler? - - Note: this is true for the overrides generated by hash/compare augmentations - - - - - Is this something compiled into a module, i.e. a user-defined value, an extension member or a compiler-generated value - - - - - Is this represented as a "top level" static binding (i.e. a static field, static member, - instance member), rather than an "inner" binding that may result in a closure. - - This is implied by IsMemberOrModuleBinding, however not vice versa, for two reasons. - Some optimizations mutate this value when they decide to change the representation of a - binding to be IsCompiledAsTopLevel. Second, even immediately after type checking we expect - some non-module, non-member bindings to be marked IsCompiledAsTopLevel, e.g. 'y' in - 'let x = let y = 1 in y + y' (NOTE: check this, don't take it as gospel) - - - - - Was the value ever referenced? - - - - - Is this a compiler-generated class constructor member - - - - - Get the inline declaration on the value - - - - - - - - Was the value ever referenced? - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is '(+)' - - - - - Range of the definition (implementation) of the value, used by Visual Studio - Updated by mutation when the implementation is matched against the signature. - - - - - The name of the method. - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is 'op_Addition' - - - - - The name of the method in compiled code (with some exceptions where ilxgen.fs decides not to use a method impl) - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this may be a mangled name - - If this is an extension member then this will be a mangled name - - If this is an operator then this is 'op_Addition' - - - - - Is this a 'base' or 'this' value? - - - - - Get the declared attributes for the value - - - - - Get the apparent parent entity for the value, i.e. the entity under with which the - value is associated. For extension members this is the nominal type the member extends. - For other values it is just the actual parent. - - - - - The parent type or module, if any (None for expression bindings and parameters) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the signature of a member constraint. Contains a mutable solution cell - to store the inferred solution of the constraint. - - - - - - - - - - - - - - - - - The specification of a member constraint that must be solved - - - - - Indicates a constraint that a type is .NET unmanaged type - - - - - Indicates a constraint that a type is a delegate from the given tuple of args to the given return type - - - - - Indicates a constraint that a type does not have the Equality(false) attribute, or is not a structural type with this attribute, with special rules for some known structural container types - - - - - Indicates a constraint that a type implements IComparable, with special rules for some known structural container types - - - - - Indicates a constraint that a type is an enum with the given underlying - - - - - Indicates a constraint that a type has a parameterless constructor - - - - - Indicates a constraint that a type is a simple choice between one of the given ground types. See format.fs - - - - - Indicates a constraint that a type is a reference type - - - - - Indicates a constraint that a type is a non-Nullable value type - These are part of .NET's model of generic constraints, and in order to - generate verifiable code we must attach them to F# generalzied type variables as well. - - - - - Indicates a constraint that a type has a member with the given signature - - - - - Indicates a constraint that a type has a 'null' value - - - - - Indicates a default value for an inference type variable should it be netiher generalized nor solved - - - - - Indicates a constraint that a type is a subtype of the given type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The inferred constraints for the type inference variable - - - - - An inferred equivalence for a type inference variable. - - - - - The declared attributes of the type parameter. Empty for type inference variables. - - - - - The documentation for the type parameter. Empty for type inference variables. - - - - - The unique stamp of the typar blob. - - - - - - - - - - - - - - - - - Indicates the construct can only be accessed from any code in the given type constructor, module or assembly. [] indicates global scope. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - - - - - - - - - - - - - - - - - - - - - - Namespace or module-compiled-as-type? - - - - - - - - - - - - - - - - - - - - - - - Values, including members in F# types in this module-or-namespace-fragment. - - - - - - - - - - - Type, mapping mangled name to Tycon, e.g. - - - - - - - - - - - - - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - - - - - - - - - - Indicates that a 'module' is really a namespace - - - - - Indicates that a module is compiled to a class with the same name as the original module - - - - - Indicates that a module is compiled to a class with the "Module" suffix added. - - - - - - - - Indicates that an exception is abstract, i.e. is in a signature file, and we do not know the representation - - - - - Indicates that an exception carries the given record of values - - - - - Indicates that an exception is shorthand for the given .NET exception type - - - - - Indicates that an exception is an abbreviation for the given exception - - - - - - - - Name/declaration-location of the field - - - - - Attributes attached to generated field - - - - - Attributes attached to generated property - - - - - Indicates the declared visibility of the field, not taking signatures into account - - - - - The default initialization info, for static literals - - - - - Indicates a compiler generated field, not visible to Intellisense or name resolution - - - - - Indicates a volatile field - - - - - Indicates a static field - - - - - The type of the field, w.r.t. the generic parameters of the enclosing type constructor - - - - - XML Documentation signature for the field - - - - - Documentation for the field - - - - - Is the field declared mutable in F#? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This may represent a "field" in either a struct, class, record or union - It is normally compiled to a property. - - - - - Attributes, attached to the generated static method to make instances of the case - - - - - Indicates the declared visibility of the union constructor, not taking signatures into account - - - - - Name/range of the case - - - - - XML documentation signature for the case - - - - - Documentation for the case - - - - - Name of the case in generated IL code - - - - - Return type constructed by the case. Normally exactly the type of the enclosing type, sometimes an abbreviation of it - - - - - Data carried by the case. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The cases contained in the discriminated union. - - - - - The ILX data structure representing the discriminated union. - - - - - - - - The cases of the discriminated union, indexed by name. - - - - - The cases of the discriminated union, in declaration order. - - - - - - - - - - - - - - The fields of the record, indexed by name. - - - - - The fields of the record, in declaration order. - - - - - - - - - - - - - - - - - - - - - - - The fields of the class, struct or enum - - - - - The declared abstract slots of the class, interface or struct - - - - - Indicates whether the type declaration is a class, interface, enum, delegate or struct - - - - - - - - Indicates the type is an enumeration - - - - - Indicates the type is a delegate with the given Invoke signature - - - - - Indicates the type is a struct - - - - - Indicates the type is an interface - - - - - Indicates the type is a class (also used for units-of-measure) - - - - - - - - Indicates the type is parameterized on a measure (e.g. float<_>) but erases to some other type (e.g. float) - - - - - Indicates the type is implemented as IL assembly code using the given closed Abstract IL type - - - - - Indicates the type is a .NET type - - - - - Indicates the type is a discriminated union - - - - - Indicates the type is a record - - - - - Indicates the type is a class, struct, enum, delegate or interface - - - - - - - - Set to true if the type is determined to be abstract - - - - - Set to true at the end of the scope where proper augmentations are allowed - - - - - Super type, if any - - - - - Interface implementations - boolean indicates compiler-generated - - - - - Properties, methods etc. as lookup table - - - - - Properties, methods etc. in declaration order - - - - - True if the type defined an Object.GetHashCode method. In this - case we give a warning if we auto-generate a hash method since the semantics may not match up - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralEquatable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated equality - semantics if any. It is not present if the type defines its own implementation - of Object.Equals or if the type doesn't override Object.Equals implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralComparable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IComparable or if the type doesn't implement IComparable implicitly. - - - - - - - - - - - - - - - - - Used during codegen to hold the ILX representation indicating how to access the type - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - The XML document signature for this entity - - - - - The declared documentation for the type or module - - - - - This field is used when the 'tycon' is really a module definition. It holds statically nested type definitions and nested modules - - - - - Field used when the 'tycon' is really an exception definition - - - - - The methods and properties of the type - - - - - If non-None, indicates the type is an abbreviation for another type. - - - - - The declared representation of the type, i.e. record, union, class etc. - - - - - The declared attributes for the type - - - - - The declared accessibility of the representation, not taking signatures into account - - - - - The declaration location for the type constructor - - - - - The name of the type, possibly with `n mangling - - - - - The name of the type, possibly with `n mangling - - - - - The unique stamp of the "tycon blob". Note the same tycon in signature and implementation get different stamps - - - - - - - - - - - The declared type parameters of the type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Note: result is alphabetically sorted, then for each name the results are in declaration order - - - - - Note: result is a indexed table, and for each name the results are in reverse declaration order - - - - - - - - - - - - - - - - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - - - - Indicates the "tycon blob" is actually a module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From TAST TyconRef to IL ILTypeRef - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata - - - - - - - - - - - - - - - - - - - - Encode entity flags into a bit field. We leave lots of space to allow for future expansion. - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata. We pickle this as int64 to allow for future expansion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Encode typar flags into a bit field - - - - - Indicates the type parameter derives from an '_' anonymous type - For units-of-measure, we give a warning if this gets solved to '1' - - - - - Indicates the type parameter is an inference variable may be solved - - - - - Indicates we give a warning if the type parameter is ever solved - - - - - Indicates the type parameter can't be solved, but the variable is not set to "rigid" until after inference is complete - - - - - Indicates the type parameter can't be solved - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the 'this' value specified in a memberm e.g. 'x' in 'member x.M() = 1' - - - - - Indicates a normal value - - - - - Indicates the value called 'base' available for calling base class members - - - - - Indicates a ref-cell holding 'this' or the implicit 'this' used throughout an - implicit constructor to access and set values - - - - - - - - Indicates the type parameter is needed at runtime and may not be eliminated - - - - - Indicates the type parameter is not needed at runtime and may be eliminated - - - - - - - - - - - - - - - - - The normal value for this flag when the value is not within its recursive scope - - - - - Set while the value is within its recursive scope. The flag indicates if the value has been eagerly generalized and accepts generic-recursive calls - - - - - - - - - - - - - - Indictes the value is inlined but the code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined - - - - - Indicates the value must always be inlined - - - - - - - - - - - - - - Unique name generator for stamps attached to lambdas and object expressions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Primitive routine to compare two EntityRef's for equality - This takes into account the possibility that they may have type forwarders - - - - - This predicate tests if non-local resolution paths are definitely known to resolve - to different entities. All references with different named paths always resolve to - different entities. Two references with the same named paths may resolve to the same - entities even if they reference through different CCUs, because one reference - may be forwarded to another via a .NET TypeForwarder. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Equality on CCU references, implemented as reference equality except when unresolved - - - - - - - - - - - - - - - - - - - - - - - Unique name generator for stamps attached to to val_specs, tycon_specs etc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Metadata on values (names of arguments etc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.dll b/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.dll deleted file mode 100644 index 8e6b10157..000000000 Binary files a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.dll and /dev/null differ diff --git a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.xml b/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.xml deleted file mode 100644 index 14a61c965..000000000 --- a/packages/FSPowerPack.Metadata.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Metadata.xml +++ /dev/null @@ -1,15761 +0,0 @@ - - -FSharp.PowerPack.Metadata - - - - - - - - - - - - - - - - The value '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:970) - - - - - The union cases or fields of the type '%s' are not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:969) - - - - - The union case '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:971) - - - - - The value or constructor '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:6) - - - - - The value, namespace, type or module '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:7) - - - - - The value, constructor, namespace or type '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:5) - - - - - The type parameter '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:12) - - - - - The type '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:9) - - - - - The record label or namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:10) - - - - - The record label '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:11) - - - - - The pattern discriminator '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:13) - - - - - The namespace or module '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:3) - - - - - The namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:2) - - - - - The field, constructor or member '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:4) - - - - - The constructor, module or namespace '%s' is not defined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:8) - - - - - The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:179) - - - - - The type '%s' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:180) - - - - - The signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:175) - - - - - The signature and implementation are not compatible because the type parameter '%s' has a constraint of the form %s but the implementation does not. Either remove this constraint from the signature or add it to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:178) - - - - - The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:177) - - - - - The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:176) - - - - - The override for '%s' was ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:195) - - - - - The override '%s' implements more than one abstract slot, e.g. '%s' and '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:198) - - - - - No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:194) - - - - - No implementation was given for '%s'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:203) - - - - - No implementation was given for '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:202) - - - - - The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:200) - - - - - A named argument has been assigned more than one value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:201) - - - - - More than one override implements '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:196) - - - - - The namespace or module attributes differ between signature and implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:192) - - - - - The method '%s' is sealed and cannot be overridden - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:197) - - - - - This method is over-constrained in its type parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:193) - - - - - The member '%s' does not have the correct number of method type parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:205) - - - - - The member '%s' does not have the correct number of arguments. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:204) - - - - - The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:206) - - - - - The member '%s' cannot be used to implement '%s'. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:207) - - - - - Invalid value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:174) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:181) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:182) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:183) - - - - - Duplicate or redundant interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:199) - - - - - The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '%s' and '%s'. Consider using type annotations to resolve the ambiguity - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:169) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1108) - - - - - Could not resolve the ambiguity inherent in the use of a 'printf'-style format string - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:171) - - - - - Could not resolve the ambiguity inherent in the use of the operator '%s' at or near this program point. Consider using type annotations to resolve the ambiguity. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:170) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:172) - - - - - Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:173) - - - - - The type '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:968) - - - - - union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:945) - - - - - type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:941) - - - - - property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:950) - - - - - patvar - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:952) - - - - - and %d other overloads - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:944) - - - - - namespace/module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:955) - - - - - namespace - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:953) - - - - - module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:954) - - - - - inherits - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:942) - - - - - implements - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:943) - - - - - Full name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:940) - - - - - also from %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:957) - - - - - from %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:956) - - - - - field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:948) - - - - - event - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:949) - - - - - argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:951) - - - - - active recognizer - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:947) - - - - - active pattern result - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:946) - - - - - Unexpected TExpr_tchoose - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:981) - - - - - Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:982) - - - - - The 'VolatileField' attribute may only be used on 'let' bindings in classes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:689) - - - - - Volatile fields must be marked 'mutable' and cannot be thread-static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:746) - - - - - A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:744) - - - - - In sequence expressions, multiple results are generated using 'yield!' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:663) - - - - - Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:596) - - - - - Use 'typeof<_>' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:610) - - - - - The use of 'let! x = coll' in sequence expressions is no longer permitted. Use 'for x in coll' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:661) - - - - - This attribute cannot be used in this version of F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:716) - - - - - Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:706) - - - - - Unrecognized accessibility specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:508) - - - - - The unnamed arguments do not form a prefix of the arguments of the method called - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:683) - - - - - Unknown union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:534) - - - - - Unit-of-measure cannot be used in type constructor application - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:572) - - - - - This union case takes one argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:590) - - - - - This union case expects %d arguments in tupled form - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:591) - - - - - This union case does not take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:589) - - - - - Uninitialized 'val' fields in implicit construction types must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:747) - - - - - Unexpected type arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:581) - - - - - Unexpected type application - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:664) - - - - - Unexpected %s in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:575) - - - - - Unexpected / in type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:580) - - - - - Unexpected source-level property specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:545) - - - - - Unexpected source-level property specification in syntax tree - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:539) - - - - - Unexpected Measure_Anon - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:494) - - - - - Unexpected expression at recursive inference point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:524) - - - - - Unexpected constraints or parameters on module specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:787) - - - - - Unexpected constraint or type definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:788) - - - - - Unexpected Const_uint16array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:499) - - - - - Unexpected Const_bytearray - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:500) - - - - - Unexpected condition in imported assembly: failed to decode AttributeUsage attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:705) - - - - - Unexpected big rational constant - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:497) - - - - - The field '%s' has been given a value, but is not present in the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:629) - - - - - Unable to parse format string '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:606) - - - - - Types cannot inherit from multiple concrete types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:797) - - - - - Types cannot contain nested type definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:776) - - - - - Struct types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:809) - - - - - Record types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:807) - - - - - Enum types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:811) - - - - - Delegate types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:810) - - - - - Discriminated union types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:806) - - - - - Assembly code types are always sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:808) - - - - - The type '%s' is used in an invalid way. A value prior to '%s' has an inferred type involving '%s', which is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:834) - - - - - This type requires a definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:794) - - - - - The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:529) - - - - - Type parameter cannot be used as type constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:576) - - - - - This type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:528) - - - - - This value, type or method expects %d type parameter(s) but was given %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:551) - - - - - type or module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:778) - - - - - The type '%s' is not an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:754) - - - - - This type is not an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:771) - - - - - This type is not a record type. Values of class and struct types must be created using calls to object constructors. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:656) - - - - - This type is not a record type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:657) - - - - - This type is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:704) - - - - - This type has no nested types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:574) - - - - - This type has no accessible object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:667) - - - - - Fields which are type functions cannot be mutated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:492) - - - - - type, exception or module - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:777) - - - - - Type definitions using implicit construction may only have one 'inherit' specification and it must be the first declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:827) - - - - - Type definitions using implicit construction must have local let/do-bindings preceding member and interface definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:828) - - - - - This type definition involves an immediate cyclic reference through a struct field or inheritance relation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:823) - - - - - This type definition involves an immediate cyclic reference through an abbreviation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:822) - - - - - The type '%s' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:558) - - - - - Type abbreviations cannot have members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:761) - - - - - Type abbreviations cannot have interface declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:769) - - - - - Type abbreviations cannot have augmentations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:832) - - - - - This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:795) - - - - - 'try'/'with' cannot be used within sequence expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:662) - - - - - Thread-static and context-static variables must be static and given the [<DefaultValue>] attribute to indicate that the value is initialized to the default value on each new thread - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:745) - - - - - The syntax 'expr.id' may only be used with record labels, properties and fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:678) - - - - - Syntax error - unexpected '?' symbol - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:598) - - - - - '%s' may only be used to construct object types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:627) - - - - - The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1085) - - - - - The struct, record or union type '%s' has the 'StructuralEquality' attribute but the type parameter '%s' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1084) - - - - - The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1079) - - - - - The struct, record or union type '%s' has the 'StructuralComparison' attribute but the type parameter '%s' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1078) - - - - - Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1086) - - - - - Structs cannot contain 'let' bindings because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:765) - - - - - Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:764) - - - - - Structs, interfaces, enums and delegates cannot inherit from other types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:796) - - - - - Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:737) - - - - - Structs may only bind a 'this' parameter at member declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:523) - - - - - Struct types cannot contain abstract members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:816) - - - - - Static 'val' fields in types must be mutable, private and marked with the '[<DefaultValue>]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:748) - - - - - Static optimization conditionals are only for use within the F# library - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:684) - - - - - This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:542) - - - - - Static 'let' bindings may only be defined in class types with implicit constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:766) - - - - - Interfaces cannot contain definitions of static initializers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:732) - - - - - A static initializer requires an argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:540) - - - - - A static field was used where an instance field is expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:490) - - - - - A simple method name is required here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:636) - - - - - In sequence expressions, results are generated using 'yield' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:496) - - - - - Return values cannot have names - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:502) - - - - - Return types of union cases must be identical to the type being defined, up to abbreviations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:752) - - - - - The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[<Sealed>] attribute to the type declaration in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:824) - - - - - This is not a variable, constant, active recognizer or literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:594) - - - - - This control construct may only be used if the computation expression builder defines a '%s' method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:573) - - - - - Only active patterns returning exactly one result may accept arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:586) - - - - - The representation of this type is hidden by the signature. It must be given an attribute such as [<Sealed>], [<Class>] or [<Interface>] to indicate the characteristics of the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:802) - - - - - Recursive bindings that include member specifications can only occur as a direct augmentation of a type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:739) - - - - - Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:798) - - - - - This record contains fields from inconsistent types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:521) - - - - - A property cannot have explicit type parameters. Consider using a method instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:536) - - - - - This property or field was not found on this custom attribute type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:711) - - - - - Property '%s' is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:675) - - - - - Property '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:672) - - - - - Property '%s' is not readable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:673) - - - - - The property implemented by this default is ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:729) - - - - - Property '%s' cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:676) - - - - - This property cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:710) - - - - - This property already has a default implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:728) - - - - - The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:637) - - - - - A parameter with attributes must also be given a name, e.g. '[<Attribute>] paramName : paramType' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:501) - - - - - The parameter '%s' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref<int>'. When used, a byref parameter is implicitly dereferenced. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1103) - - - - - You must explicitly declare either all or no type parameters when overriding a generic abstract method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:531) - - - - - Accessibility modifiers are not permitted on overrides or interface implementations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:805) - - - - - This override takes a different number of arguments to the corresponding abstract member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:722) - - - - - One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:682) - - - - - Optional arguments cannot be used in custom attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:709) - - - - - Optional arguments are only permitted on type members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:582) - - - - - Optional arguments must come at the end of the argument list, after any non-optional arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1122) - - - - - This declaration opens the namespace or module '%s' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:759) - - - - - Only types representing units-of-measure may be given the 'Measure' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:804) - - - - - Only structs and classes without implicit constructors may be given the 'StructLayout' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:801) - - - - - Only simple variable patterns can be bound in 'let rec' constructs - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:740) - - - - - Only simple bindings of the form 'id = expr' can be used in construction expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:643) - - - - - Only record fields and simple 'let' bindings may be marked mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:741) - - - - - Only functions may be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:698) - - - - - Only classes may be given the 'AbstractClass' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:803) - - - - - Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:644) - - - - - The operator 'expr.[idx]' has been used an object of indeterminate type based on information prior to this program point. Consider adding further type constraints - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:618) - - - - - Only overrides of abstract and virtual members may be specified in object expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:632) - - - - - This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:546) - - - - - Calls to object constructors on type parameters cannot be given arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:620) - - - - - Interfaces cannot contain definitions of object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:733) - - - - - An object constructor requires an argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:541) - - - - - Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:654) - - - - - Object construction expressions may only be used to implement constructors in class types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:642) - - - - - This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:650) - - - - - This is not a valid name for an enumeration case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:611) - - - - - This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:535) - - - - - Not an exception - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:786) - - - - - Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:495) - - - - - The generic member '%s' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1104) - - - - - This value is not a literal and cannot be used in a pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:554) - - - - - No abstract property was found that corresponds to this override - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:725) - - - - - No abstract or interface member was found that corresponds to this override - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:721) - - - - - Interface implementations cannot be given on construction expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:641) - - - - - The struct, record or union type '%s' does not support structural equality because the type '%s' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1083) - - - - - The struct, record or union type '%s' does not support structural equality because the type parameter %s does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1082) - - - - - The struct, record or union type '%s' is not structurally comparable because the type '%s' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1081) - - - - - The struct, record or union type '%s' is not structurally comparable because the type parameter %s does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1080) - - - - - No arguments may be given when constructing a record value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:640) - - - - - The member '%s' does not correspond to any abstract or virtual method available to override or implement - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:633) - - - - - 'new' may only be used with object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:648) - - - - - 'new' must be used with a named type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:638) - - - - - This new member hides the abstract member '%s' once tuples, functions and/or units of measure are erased. Rename the member or use 'override' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:731) - - - - - This new member hides the abstract member '%s'. Rename the member or use 'override' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:730) - - - - - 'new' cannot be used on interface types. Consider using an object expression '{ new ... with ... }' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:624) - - - - - Namespaces cannot contain values. Consider using a module to hold your value declarations. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:504) - - - - - Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:505) - - - - - '%s' may only be used with named types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:622) - - - - - The use of named arguments in union case expressions is reserved for future use. Arguments of the form 'a=b' should be parenthesized. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1105) - - - - - Named arguments cannot be given to member trait calls - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:609) - - - - - The named argument '%s' did not match any argument or mutable property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:681) - - - - - Name '%s' not bound in pattern context - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:583) - - - - - Named arguments must appear after all other arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:556) - - - - - Mutable function values should be written 'let mutable f = (fun args -> ...)' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:697) - - - - - Mutable values cannot have generic parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:696) - - - - - Mutable values cannot be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:695) - - - - - Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:507) - - - - - Multiple visibility attributes have been specified for this identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:506) - - - - - Modules cannot use named module signature definitions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:837) - - - - - This declaration opens the module '%s', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:758) - - - - - The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:833) - - - - - Method overrides and interface implementations are not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:720) - - - - - Method '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:491) - - - - - Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:825) - - - - - The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to the definition of '%s', which is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:835) - - - - - Interfaces cannot contain definitions of member overrides - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:734) - - - - - Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1125) - - - - - This member is not permitted in an interface implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:774) - - - - - MemberKindPropertyGetSet only expected in parse trees - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:503) - - - - - This member is not sufficiently generic - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:742) - - - - - A member and a local class binding both have the name '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:768) - - - - - Measure definitions cannot have type parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:793) - - - - - Measure declarations may have only static members: constructors are not available - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:767) - - - - - Measure declarations may have only static members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:763) - - - - - This lookup cannot be used here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:674) - - - - - Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:760) - - - - - Literal values cannot have generic parameters - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:702) - - - - - A literal value cannot be marked 'mutable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:700) - - - - - A literal value cannot be marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:701) - - - - - A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:743) - - - - - This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:607) - - - - - 'let' and 'do' bindings are not permitted in class definitions unless an implicit construction sequence is used. You can use an implicit construction sequence by modifying the type declaration to include arguments, e.g. 'type X(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:831) - - - - - This code is less generic than required by its annotations because the explicit type variable '%s' could not be generalized. It was constrained to be '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:525) - - - - - The kind of the type specified by its attributes does not match the kind implied by its definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:792) - - - - - Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. Overloads are:\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:669) - - - - - Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. 'new Type(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:668) - - - - - Invalid use of a type name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:666) - - - - - Invalid use of an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:670) - - - - - Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:671) - - - - - The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1102) - - - - - 'use' bindings must be of the form 'use <var> = <expr>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:718) - - - - - Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:571) - - - - - Units-of-measure supported only on float, float32, decimal and signed integer types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:498) - - - - - Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:820) - - - - - Invalid type extension - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:790) - - - - - Type arguments cannot be specified here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:585) - - - - - Invalid signature for set member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:727) - - - - - Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq { ... }' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:604) - - - - - Invalid record construction - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:651) - - - - - This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:566) - - - - - This is not a valid pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:595) - - - - - Invalid optional assignment to a property or field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:686) - - - - - The '%s' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:513) - - - - - The '%s' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:514) - - - - - The '%s' operator should not normally be redefined. Consider using a different operator name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:515) - - - - - Invalid object, sequence or record expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:603) - - - - - Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:602) - - - - - This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:561) - - - - - Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when <variable> = <constant>' at the end of the match clause. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:584) - - - - - 'new' constraints must take one argument of type 'unit' and return the constructed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:565) - - - - - Invalid namespace, module, type or union case name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:750) - - - - - Invalid module name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:789) - - - - - This recursive binding uses an invalid mixture of recursive forms - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:560) - - - - - The name '(%s)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:509) - - - - - The name '(%s)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:510) - - - - - The name '(%s)' should not be used as a member name because it is given a standard definition in the F# library over fixed types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:512) - - - - - The name '(%s)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:511) - - - - - Invalid inline specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:717) - - - - - Invalid indexer expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:617) - - - - - The '%s' operator cannot be redefined. Consider using a different operator name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:516) - - - - - Internal error. Invalid index into active pattern array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:588) - - - - - This is not a valid value for an enumeration literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:753) - - - - - An 'enum' constraint must be of the form 'enum<type>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:564) - - - - - Delegate specifications must be of the form 'typ -> typ' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:818) - - - - - Invalid declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:547) - - - - - Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:563) - - - - - Invalid constraint - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:562) - - - - - This is not a valid constant expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:703) - - - - - Invalid assignment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:665) - - - - - Invalid argument to parameterized pattern label - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:587) - - - - - This is not a valid name for an active pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:693) - - - - - Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1114) - - - - - Interface types cannot be sealed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:817) - - - - - Interface types and delegate types cannot contain fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:812) - - - - - This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:538) - - - - - The inherited type is not an object model type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:653) - - - - - A inheritance declaration is not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:757) - - - - - This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:829) - - - - - This 'inherit' construction call is not part of an implicit construction sequence. Only the inherited type should be specified at this point. Calls to the inherited constructor should be placed inside the object initialization expression of your object constructor. Alternatively use an implicit construction sequence by modifying the type declaration to include arguments, e.g. 'type X(args) = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:830) - - - - - 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:623) - - - - - Implicit product of measures following / - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:493) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:779) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:520) - - - - - The struct, record or union type '%s' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:780) - - - - - The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:518) - - - - - The struct, record or union type '%s' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:519) - - - - - Illegal syntax in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:577) - - - - - Illegal pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:597) - - - - - Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:751) - - - - - A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:699) - - - - - It is recommended that objects that support the IDisposable interface are created using 'new Type(args)' rather than 'Type(args)' to indicate that resources may be owned by the generated value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:626) - - - - - Generic types cannot be given the 'StructLayout' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:800) - - - - - A generic type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:527) - - - - - The generic function '%s' must be given explicit type argument(s) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:549) - - - - - This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:557) - - - - - The corresponding formal argument is not optional - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:685) - - - - - The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:532) - - - - - A field/val declaration is not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:756) - - - - - This field requires a name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:749) - - - - - No assignment given for field '%s' of type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:630) - - - - - This field is not a literal and cannot be used in a pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:593) - - - - - This field is readonly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:555) - - - - - Field '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:592) - - - - - This field is not mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:612) - - - - - The field '%s' appears twice in this record expression or pattern - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:533) - - - - - All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1077) - - - - - Extraneous fields have been given values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:631) - - - - - This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:605) - - - - - This expression form may only be used in sequence and computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:601) - - - - - The expression form { expr with ... } may only be used with record types. To build object types use { new Type(...) with ... } - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:652) - - - - - The expression form 'expr then expr' may only be used as part of an explicit object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:608) - - - - - Expected %d expressions, got %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:599) - - - - - TcExprUndelayed: delayed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:600) - - - - - Explicit type specifications cannot be used for exception constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:781) - - - - - Explicit type parameters may only be used on module or member bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:530) - - - - - An explicit static initializer should use the syntax 'static new(args) = expr' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:543) - - - - - Explicit signatures within implementation files may no longer be used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:836) - - - - - An explicit object constructor should use the syntax 'new(args) = expr' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:544) - - - - - Expected unit-of-measure, not type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:570) - - - - - Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:567) - - - - - Expected type parameter, not unit-of-measure parameter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:568) - - - - - Expected type, not unit-of-measure - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:569) - - - - - Expected an interface type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:645) - - - - - Expected module or namespace parent %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:517) - - - - - Exception abbreviations should not have argument lists - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:782) - - - - - Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:784) - - - - - Event '%s' is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:679) - - - - - Event '%s' is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:680) - - - - - Enumerations cannot have members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:762) - - - - - Enumerations cannot have interface declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:770) - - - - - The 'EntryPointAttribute' attribute may only be used on function definitions in modules - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:694) - - - - - '{ }' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:655) - - - - - Duplicate specification of an interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:755) - - - - - The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:550) - - - - - 'do!' cannot be used within sequence expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:660) - - - - - DLLImport stubs cannot be inlined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:522) - - - - - Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:819) - - - - - A delegate constructor must be passed a single function value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:687) - - - - - The 'DefaultValue' attribute may only be used on 'val' declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:691) - - - - - The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:552) - - - - - A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:773) - - - - - This method already has a default implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:723) - - - - - The method implemented by this default is ambiguous - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:724) - - - - - The declared type parameters for this type extension do not match the declared type parameters on the original type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:826) - - - - - This declaration element is not permitted in an augmentation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:775) - - - - - A custom attribute must invoke an object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:714) - - - - - A custom attribute must be a reference type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:712) - - - - - The number of args for a custom attribute does not match the expected number of args for the attribute constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:713) - - - - - Couldn't find Dispose on IDisposable, or it was overloaded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:553) - - - - - Constructors cannot be defined for this type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:738) - - - - - Constructors cannot be specified in exception augmentations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:736) - - - - - Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:677) - - - - - Constructors for the type '%s' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:628) - - - - - This object constructor requires arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:647) - - - - - Constructor expressions for interfaces do not take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:646) - - - - - A constructor cannot have explicit type parameters. Consider using a static construction method instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:537) - - - - - This construct may only be used within sequence or computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:615) - - - - - This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq { ... }', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:613) - - - - - This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:614) - - - - - This construct may only be used within computation expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:616) - - - - - This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {... }'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:659) - - - - - This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder { ... }'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:658) - - - - - One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:526) - - - - - Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1123) - - - - - The 'ConditionalAttribute' attribute may only be used on members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:692) - - - - - Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type, or use implicit class construction, to indicate that the type is a concrete implementation class. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:735) - - - - - The 'CompiledName' attribute cannot be used with this language element - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:621) - - - - - Cannot inherit from a variable type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:619) - - - - - Cannot inherit a sealed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:814) - - - - - Cannot inherit from interface type. Use interface ... with instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:815) - - - - - Cannot create an extension of a sealed type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:639) - - - - - Cannot call an abstract base member: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1107) - - - - - A binding cannot be marked both 'use' and 'rec' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:688) - - - - - This expression has a method called GetEnumerator, but its return type is a value type. Methods returning struct enumerators cannot be used in this expression form. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:559) - - - - - The attributes of this type specify multiple kinds for the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:791) - - - - - Attributes are not allowed within patterns - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:548) - - - - - Attributes are not permitted on 'let' bindings in expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:690) - - - - - This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:707) - - - - - This attribute is not valid for use on this language element - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:708) - - - - - Attribute expressions must be calls to object constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:715) - - - - - The attribute 'AutoOpen(\"%s\")' in the assembly '%s' did not refer to a valid module or namespace in that assembly and has been ignored - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:838) - - - - - The attribute '%s' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1106) - - - - - At least one override did not correctly implement its corresponding abstract member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:649) - - - - - The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:635) - - - - - The member '%s' does not accept the correct number of arguments, %d arguments are expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:634) - - - - - Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:578) - - - - - Anonymous type variables are not permitted in this declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:579) - - - - - Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:799) - - - - - All implemented interfaces should be declared on the initial declaration of the type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:772) - - - - - Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{ new ... with ... }' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:625) - - - - - This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:726) - - - - - Abstract members are not permitted in an augmentation - they must be defined as part of the type itself - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:719) - - - - - Abbreviations for Common IL exception types must have a matching object constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:785) - - - - - Abbreviations for Common IL exceptions cannot take arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:783) - - - - - Abbreviated types cannot be given the 'Sealed' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:813) - - - - - A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:88) - - - - - The value has been copied to ensure the original is not mutated by this operation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:90) - - - - - This value does not have a valid property setter type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:84) - - - - - Unexpected decode of InternalsVisibleToAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:95) - - - - - Unexpected decode of InterfaceDataVersionAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:96) - - - - - Unexpected decode of AutoOpenAttribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:94) - - - - - Unexpected use of a byref-typed variable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:87) - - - - - The type %s did not contain the union case '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1098) - - - - - The type %s did not contain the field '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1097) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the val '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1100) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1101) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1099) - - - - - The type/module '%s' is not a concrete module or type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:74) - - - - - The type '%s' has an inline assembly code representation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:75) - - - - - Two modules named '%s' occur in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:77) - - - - - Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:91) - - - - - Recursive values cannot be directly assigned to the non-mutable field '%s' of the type '%s' within a recursive binding. Consider using a mutable field instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:93) - - - - - Recursive values cannot appear directly as a construction of the type '%s' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:92) - - - - - This is not a constant expression or valid custom attribute value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:99) - - - - - A namespace and a module named '%s' both occur in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:76) - - - - - Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:89) - - - - - Invalid member signature encountered because of an earlier error - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:83) - - - - - Invalid form for a property setter. At least one argument is required. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:86) - - - - - Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:85) - - - - - This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1093) - - - - - Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:78) - - - - - This constant cannot be used as a custom attribute value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:98) - - - - - A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:79) - - - - - Active patterns cannot return more than 7 possibilities - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:97) - - - - - The struct or class field '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:973) - - - - - If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines). - - - - - Recursive class hierarchy in type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:965) - - - - - Error reading/writing metadata for the F# compiled DLL '%s'. Was the DLL compiled with an earlier version of the F# compiler? (error: '%s'). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:70) - - - - - Partial active patterns may only generate one result - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:992) - - - - - Missing variable '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:991) - - - - - Accessibility modifiers are not permitted on an 'inherits' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:436) - - - - - Accessibility modifiers should come immediately prior to the identifier naming a construct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:407) - - - - - 'use' bindings are not permitted in modules and are treated as 'let' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:400) - - - - - 'use' bindings are not permitted in implicit class constructors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:399) - - - - - Unmatched 'with' or badly formatted 'with' block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:423) - - - - - Unmatched '(' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:450) - - - - - No body found for this 'let' or 'do'. The body must be indented to the same column as this line. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:449) - - - - - Unmatched 'if' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:455) - - - - - Unmatched 'class', 'interface' or 'struct' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:421) - - - - - Unmatched '[|' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:469) - - - - - Unmatched '[' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:464) - - - - - Unmatched '{' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:470) - - - - - Unmatched 'begin' or 'struct' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:414) - - - - - Unmatched 'begin' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:426) - - - - - Unmatched '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:468) - - - - - Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:444) - - - - - Accessibility modifiers are not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:405) - - - - - Syntax error: unexpected type parameter specification - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:481) - - - - - A semicolon is not expected at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:403) - - - - - Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:479) - - - - - Unexpected integer literal in unit-of-measure expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:480) - - - - - Unexpected integer literal in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:478) - - - - - Unexpected infix operator in type expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:476) - - - - - Unexpected identifier: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:443) - - - - - Unexpected end of input - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:404) - - - - - Unexpected empty type moduleDefn list - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:416) - - - - - Unclosed 'for', e.g. no 'done' found to match this 'for' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:459) - - - - - Unclosed block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:413) - - - - - Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:429) - - - - - Accessibility modifiers are not permitted in this position for type abbreviations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:439) - - - - - The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:485) - - - - - The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:486) - - - - - Syntax error in labelled type argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:475) - - - - - Syntax error - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:419) - - - - - Successive patterns should be separated by spaces or tupled - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:451) - - - - - Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:463) - - - - - A setter property may have at most two argument groups - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1090) - - - - - Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:432) - - - - - Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:447) - - - - - In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:466) - - - - - At most one 'with' augmentation is permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:402) - - - - - Only '#' compiler directives may occur prior to the first 'namespace' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:406) - - - - - Only class types may take value arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:425) - - - - - The use of the type syntax 'int C' and 'C <int>' is not permitted here. Consider adjusting this type to be written in the form 'C<int>' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1096) - - - - - Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1094) - - - - - Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1095) - - - - - No matching 'in' found for this 'let' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:452) - - - - - No #endif found for #if or #else - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:397) - - - - - No '=' symbol should follow a 'namespace' declaration - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:484) - - - - - Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:408) - - - - - Multiple accessibilities given for property getter or setter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:431) - - - - - The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:477) - - - - - A module name must be a simple name, not a path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:415) - - - - - A module abbreviation must be a simple name, not a path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:409) - - - - - Missing qualification after '.' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:465) - - - - - Missing function body - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:473) - - - - - Mismatched quotation, beginning with '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:467) - - - - - Mismatched quotation operator name, beginning with '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:482) - - - - - This member is not permitted in an object implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:472) - - - - - The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:448) - - - - - Invalid property getter or setter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1091) - - - - - Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1116) - - - - - Invalid prefix operator - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1115) - - - - - Invalid declaration syntax - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:427) - - - - - Interfaces always have the same visibility as the enclosing type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:433) - - - - - An integer for loop must use a simple identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:401) - - - - - Accessibility modifiers are not permitted on inline assembly code types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:442) - - - - - 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:437) - - - - - An indexer property must be given at least one argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1092) - - - - - Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:412) - - - - - Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:411) - - - - - Ignoring attributes on module abbreviation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:410) - - - - - Identifier expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:460) - - - - - A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:430) - - - - - A getter property may have at most one argument group - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1089) - - - - - 'get', 'set' or 'get,set' required - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:424) - - - - - 'get' and/or 'set' required - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:428) - - - - - Field bindings must have the form 'id = expr;' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:471) - - - - - Block following this '%s' is unfinished. Expect an expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:454) - - - - - Error in the return expression for this 'let'. Possible incorrect indentation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:453) - - - - - Error in 'function' block - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:474) - - - - - '=' expected - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:461) - - - - - End of file in verbatim string embedded in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:394) - - - - - End of file in verbatim string begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:391) - - - - - End of file in string embedded in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:393) - - - - - End of file in string begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:390) - - - - - End of file in IF-OCAML section begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:395) - - - - - End of file in #if section begun at or after here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:389) - - - - - End of file in directive begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:396) - - - - - End of file in comment begun at or before here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:392) - - - - - Accessibility modifiers are not permitted in this position for enum types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:440) - - - - - Accessibility modifiers are not permitted on enumeration fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:445) - - - - - A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:422) - - - - - 'done' expected after this expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:457) - - - - - 'do' expected after this expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:458) - - - - - Accessibility modifiers are not permitted on 'do' bindings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:388) - - - - - Consider using a separate record type instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:446) - - - - - Augmentations are not permitted on delegate type moduleDefns - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:420) - - - - - Attributes should be placed before 'val' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:417) - - - - - Attributes are not permitted on 'inherit' declarations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:435) - - - - - Attributes are not allowed here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:438) - - - - - Attributes have been ignored in this construct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:398) - - - - - Attributes are not permitted on interface implementations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:418) - - - - - 'assert' may no longer be used as a first class value. Use 'assert <expr>' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:456) - - - - - The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:462) - - - - - All enum fields must be given values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:441) - - - - - Active pattern case identifiers must begin with an uppercase letter - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:483) - - - - - Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:434) - - - - - Write the xmldoc of the assembly to the given file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:876) - - - - - Specify a Win32 resource file (.res) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:884) - - - - - Specify a Win32 manifest file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:885) - - - - - Report all warnings as errors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:894) - - - - - Report specific warnings as errors - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:895) - - - - - Set a warning level (0-4) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:896) - - - - - Output messages in UTF-8 encoding - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:904) - - - - - Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:913) - - - - - Unrecognized debug type '%s', expected 'pdbonly' or 'full' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:914) - - - - - Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', and 'anycpu' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:928) - - - - - Unknown --test argument: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:927) - - - - - Enable or disable tailcalls - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:892) - - - - - Specify a strong name key file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:877) - - - - - Specify a strong name key container - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:878) - - - - - Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:910) - - - - - Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:909) - - - - - Resolve assembly references using directory-based mono rules rather than MSBuild resolution (Default=false except when running fsc.exe under mono) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:912) - - - - - Print the inferred interface of the assembly to a file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:882) - - - - - Short form of '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:916) - - - - - Embed the specified managed resource - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:887) - - - - - Reference an assembly (Short form: -r) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:883) - - - - - Problem with codepage '%d': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:868) - - - - - Limit which platforms this code can run on: x86, Itanium, x64 or anycpu. The default is anycpu. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:879) - - - - - Name the output debug file - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:911) - - - - - Enable optimizations (Short form: -O) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:891) - - - - - Do not include the default Win32 manifest - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:886) - - - - - Disable specific warning messages - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:897) - - - - - Suppress compiler copyright message - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:901) - - - - - Do not reference the default CLI assemblies by default - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:908) - - - - - Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:880) - - - - - Don't add a resource to the generated assembly containing F#-specific metadata - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:881) - - - - - Name of the output file (Short form: -o) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:870) - - - - - Ignore ML compatibility warnings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:900) - - - - - Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]] - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:888) - - - - - Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:906) - - - - - Invalid warning level '%d' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:915) - - - - - The command-line option '%s' is for internal use only - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:929) - - - - - - RESOURCES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:921) - - - - - - OUTPUT FILES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:919) - - - - - - MISCELLANEOUS - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:924) - - - - - - LANGUAGE - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:925) - - - - - - INPUT FILES - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:920) - - - - - - ERRORS AND WARNINGS - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:926) - - - - - - CODE GENERATION - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:922) - - - - - - ADVANCED - - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:923) - - - - - Display this usage message (Short form: -?) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:902) - - - - - Output messages with fully qualified paths - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:905) - - - - - Delay-sign the assembly using only the public portion of the strong name key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:875) - - - - - Define conditional compilation symbols (Short form: -d) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:899) - - - - - Emit debug information (Short form: -g) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:889) - - - - - Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:890) - - - - - The command-line option '%s' has been deprecated - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:930) - - - - - The command-line option '%s' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:932) - - - - - The command-line option '%s' has been deprecated. Use '%s' instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:931) - - - - - Enable or disable cross-module optimizations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:893) - - - - - Copyright (c) Microsoft Corporation. Apache 2.0 License. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:869) - - - - - Specify the codepage used to read source files - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:903) - - - - - Use to override where the compiler looks for mscorlib.dll and framework components - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:918) - - - - - The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:917) - - - - - Generate overflow checks - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:898) - - - - - Build a Windows executable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:872) - - - - - Build a module that can be added to another assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:874) - - - - - Build a library (Short form: -a) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:873) - - - - - Build a console executable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:871) - - - - - Base address for the library to be built - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:907) - - - - - A value marked as 'inline' has an unexpected value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1007) - - - - - A value marked as 'inline' could not be inlined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1008) - - - - - The value '%s' was marked inline but was not bound in the optimization environment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1005) - - - - - The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1004) - - - - - Recursive ValValue %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1010) - - - - - Local value %s not found during optimization - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1006) - - - - - Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1009) - - - - - Unexpected empty long identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1025) - - - - - Multiple types exist called '%s', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1021) - - - - - The instantiation of the generic type '%s' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1022) - - - - - The type '%s' does not contain a field '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1026) - - - - - No constructors are available for the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1029) - - - - - This is not a constructor or literal, or a constructor is being used incorrectly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1024) - - - - - Invalid module/expression/type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1020) - - - - - Invalid field label - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1027) - - - - - Invalid expression '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1028) - - - - - 'global' may only be used as the first name in a qualified path - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1023) - - - - - No Invoke methods found for delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:975) - - - - - More than one Invoke method found for delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:976) - - - - - Could not determine highest installed .NET framework version from Registry keys, using version 2.0 - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1124) - - - - - This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1111) - - - - - Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1075) - - - - - Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1074) - - - - - Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1076) - - - - - Identifiers containing '@' are reserved for use in F# code generation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:986) - - - - - The identifier '%s' is reserved for future use by F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:987) - - - - - Possible incorrect indentation: this token is offside of context started at position %s. Try indenting this token further or using standard formatting conventions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1015) - - - - - The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1016) - - - - - The indentation of this 'in' token is incorrect with respect to the corresponding 'let' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1014) - - - - - Syntax error. Wrong nested #endif, unexpected tokens before it. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1072) - - - - - Unexpected character '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1041) - - - - - This token is reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1062) - - - - - This Unicode encoding is only valid in string literals - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1061) - - - - - TABs are not allowed in F# code unless the #indent \"off\" option is used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1063) - - - - - This number is outside the allowable range for 32-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1050) - - - - - This number is outside the allowable range for 32-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1049) - - - - - This number is outside the allowable range for 64-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1052) - - - - - This number is outside the allowable range for 64-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1051) - - - - - This number is outside the allowable range for 16-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1048) - - - - - This number is outside the allowable range for 16-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1047) - - - - - This number is outside the allowable range for unsigned native integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1054) - - - - - This number is outside the allowable range for signed native integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1053) - - - - - This number is outside the allowable range for this integer type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1038) - - - - - This number is outside the allowable range for 8-bit unsigned integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1046) - - - - - This number is outside the allowable range for hexadecimal 8-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1045) - - - - - This number is outside the allowable range for 8-bit signed integers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1044) - - - - - This number is outside the allowable range for 32-bit floats - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1057) - - - - - This number is outside the allowable range for decimal literals - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1056) - - - - - Character sequences beginning with '?' are no longer permitted as operator names - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1040) - - - - - This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1058) - - - - - Invalid line number: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1064) - - - - - Invalid floating point number - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1055) - - - - - This is not a valid character literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1060) - - - - - This is not a valid byte literal - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1059) - - - - - Consider using a file with extension '.ml' or '.mli' instead - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1118) - - - - - Identifiers followed by '%s' are reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1043) - - - - - #if directive should be immediately followed by an identifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1071) - - - - - #if directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1065) - - - - - #endif has no matching #if - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1069) - - - - - #endif required for #else - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1067) - - - - - #endif directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1070) - - - - - #else has no matching #if - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1066) - - - - - #else directive must appear as the first non-whitespace character on a line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1068) - - - - - Expected single line comment or end of line - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1073) - - - - - '%s' is not permitted as a character in operator names and is reserved for future use - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1039) - - - - - This byte array literal contains characters that do not encode as a single byte - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1042) - - - - - The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:996) - - - - - A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:997) - - - - - A reference to the DLL %s is required by assembly %s. The imported type %s is located in the first assembly and could not be resolved. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:999) - - - - - Internal error or badly formed metadata: not enough type parameters were in scope while importing - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:998) - - - - - An imported assembly uses the type '%s' but that type is not public - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1000) - - - - - PDB files cannot be generated when running on Mono - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1034) - - - - - Unexpected error creating debug information file '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1033) - - - - - Values marked with 'LiteralAttribute' must currently be simple integer, character, Boolean, string or floating point constants - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:849) - - - - - Values marked with 'LiteralAttribute' cannot be mutable - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:848) - - - - - Compiler error: unexpected unrealized value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:857) - - - - - Unexpected GetSet annotation on a property - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:860) - - - - - Undefined value '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:842) - - - - - This type cannot be used for a literal field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:859) - - - - - The StructLayout attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:862) - - - - - GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:855) - - - - - The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:852) - - - - - Reflected definitions cannot contain uses of the prefix splice operator '%%' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:864) - - - - - Mutable variables cannot escape their method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:856) - - - - - The MarshalAs attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:851) - - - - - Main module of program is empty: nothing will happen when it is run - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:858) - - - - - Literal fields cannot be set - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:854) - - - - - Label %s not found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:843) - - - - - Incorrect number of type arguments to local call - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:844) - - - - - The FieldOffset attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:861) - - - - - The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1121) - - - - - The type '%s' has been marked as having an Explicit layout, but the field '%s' has not been marked with the 'FieldOffset' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1113) - - - - - Dynamic invocation of %s is not supported - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:845) - - - - - The DllImport attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:853) - - - - - The DefaultAugmentation attribute could not be decoded - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:863) - - - - - Custom marshallers cannot be specified in F# code. Consider using a C# helper function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:850) - - - - - This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:847) - - - - - Taking the address of a literal field is invalid - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:846) - - - - - This file was automatically generated by a call to Goto Definition - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:936) - - - - - If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines). - - - - - Prefix flag (' ' or '+') set twice - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:237) - - - - - Precision missing after the '.' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:242) - - - - - Positional specifiers are not permitted in format strings - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:234) - - - - - Missing format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:235) - - - - - The 'l' or 'L' in this format specifier is unnecessary except for ML compatibility. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:245) - - - - - The # formatting modifier is invalid in F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:238) - - - - - The 'h' or 'H' in this format specifier is unnecessary. You can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:246) - - - - - '%s' format does not support precision - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:243) - - - - - '%s' flag set twice - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:236) - - - - - '%s' format does not support '0' flag - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:241) - - - - - '%s' does not support prefix '%s' flag - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:247) - - - - - Bad width in format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:240) - - - - - Bad precision in format specifier - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:239) - - - - - Bad format specifier: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:248) - - - - - Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. These format specifiers support ML compatibility. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:244) - - - - - The record, struct or class field '%s' is not accessible from this code location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:972) - - - - - This construct is experimental - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:974) - - - - - The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:967) - - - - - System.Environment.Exit did not exit - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:252) - - - - - The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:253) - - - - - Delegates are not allowed to have curried signatures - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:977) - - - - - This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:349) - - - - - The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:352) - - - - - The type '%s' is not a CLI enum type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:346) - - - - - The type '%s' is not a CLI delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:348) - - - - - Type instantiation length mismatch - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:356) - - - - - Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:330) - - - - - The type '%s' has a non-standard delegate type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:347) - - - - - The type '%s' does not support any operators named '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:334) - - - - - The type '%s' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:345) - - - - - The type '%s' does not support the 'equality' constraint because it is a function type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:344) - - - - - The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:343) - - - - - The type '%s' does not support a conversion to the type '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:335) - - - - - The type '%s' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:342) - - - - - The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:341) - - - - - The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:340) - - - - - The type '%s' does not have 'null' as a proper value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:339) - - - - - The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:328) - - - - - The constraints 'struct' and 'not struct' are inconsistent - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:338) - - - - - The required signature is %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:368) - - - - - Optional arguments not permitted here - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:357) - - - - - No overloads match for method '%s'. The available overloads are shown below (or in the Error List window). - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:383) - - - - - No %s member or object constructor named '%s' takes %d arguments. The named argument '%s' doesn't correspond to any argument or settable return property for any overload. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:381) - - - - - No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:380) - - - - - No %s member or object constructor named '%s' takes %d arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:379) - - - - - Method or object constructor '%s' not found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:382) - - - - - A unique overload for method '%s' could not be determined based on type information prior to this program point. The available overloads are shown below (or in the Error List window). A type annotation may be needed. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:384) - - - - - %s is not an instance method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:366) - - - - - %s is not a static method - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:365) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:336) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is not static - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:337) - - - - - This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:362) - - - - - The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:375) - - - - - The member or object constructor '%s' requires %d argument(s) but is here given %d unnamed and %d named argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:373) - - - - - The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:374) - - - - - The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. Some names for missing arguments are %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:372) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:371) - - - - - The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:370) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:369) - - - - - The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:378) - - - - - The member or object constructor '%s' taking %d arguments are not accessible from this code location. All accessible versions of method '%s' take %d arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:376) - - - - - %s is not a static member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:358) - - - - - %s is not an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:359) - - - - - The member or object constructor '%s' is not %s. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:364) - - - - - The member or object constructor '%s' is not %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:363) - - - - - The member or object constructor '%s' has no argument or settable return property '%s'. %s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:367) - - - - - This indexer expects %d arguments but is here given %d - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:332) - - - - - Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:377) - - - - - A generic construct requires that the type '%s' is an unmanaged type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:351) - - - - - A generic construct requires that the type '%s' is a CLI or F# struct type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:350) - - - - - A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:353) - - - - - A generic construct requires that the type '%s' have a public default constructor - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:355) - - - - - A generic construct requires that the type '%s' be non-abstract - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:354) - - - - - Expected arguments to an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:331) - - - - - Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:333) - - - - - This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:329) - - - - - The argument types don't match - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:361) - - - - - Argument length mismatch - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:360) - - - - - Quotations cannot contain expressions that set union case fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:315) - - - - - Quotations cannot contain expressions that set fields in exception values - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:316) - - - - - Quotations cannot contain expressions that require byref pointers - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:317) - - - - - Quotations cannot contain expressions that fetch union case indexes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:314) - - - - - Quotations cannot contain this kind of type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:322) - - - - - Quotations cannot contain this kind of pattern match - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:320) - - - - - Quotations cannot contain this kind of constant - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:319) - - - - - Quotations cannot contain expressions that fetch static fields - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:311) - - - - - Quotations cannot contain object expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:309) - - - - - Quotations cannot contain literal byte arrays - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:323) - - - - - Quotations cannot contain inline assembly code or pattern matching on arrays - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:312) - - - - - Quotations cannot contain function declarations that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:308) - - - - - Quotations cannot contain uses of generic expressions - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:307) - - - - - Quotations cannot contain descending for loops - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:313) - - - - - Quotations cannot contain array pattern matching - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:321) - - - - - Quotations cannot contain expressions that take the address of a field - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:310) - - - - - Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:318) - - - - - Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:324) - - - - - The variable '%s' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:306) - - - - - The variable '%s' is used in an invalid way - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:261) - - - - - The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:301) - - - - - The value '%s' is unused - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1087) - - - - - The recursive object reference '%s' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1088) - - - - - default augmentation of the union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:286) - - - - - compiled form of the union case - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:285) - - - - - The type '%s' is less accessible than the value, member or type '%s' it is used in - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:262) - - - - - 'System.Void' can only be used as 'typeof<System.Void>' in F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:263) - - - - - Expression-splicing operators may only be used within quotations - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:266) - - - - - A method return type would contain byrefs which is not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:278) - - - - - [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%%' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:283) - - - - - A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:257) - - - - - Name clash. The property '%s' has the same name as a method in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:287) - - - - - The property '%s' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:289) - - - - - Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:272) - - - - - First-class uses of the expression-splicing operator are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:267) - - - - - First-class uses of the 'reraise' function is not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:269) - - - - - First-class uses of the address-of operators are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:268) - - - - - The type abbreviation contains byrefs. This is not permitted by F#. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:302) - - - - - The byref typed value '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:270) - - - - - A byref typed value would be stored here. Top-level let-bound byref values are not permitted. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:282) - - - - - The address of the static field '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:274) - - - - - The address of the variable '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:273) - - - - - The address of an array element cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:276) - - - - - The address of the field '%s' cannot be used at this point - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:275) - - - - - The mutable variable '%s' is used in an invalid way. Mutable variables cannot be captured by closures. Consider eliminating this use of mutation or using a heap-allocated mutable reference cell via 'ref' and '!'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:259) - - - - - This type implements or inherits the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:300) - - - - - The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to its definition at or near '%s'. This is an invalid forward reference. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:281) - - - - - 'base' values may only be used to make direct calls to the base implementations of overridden members - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:271) - - - - - Invalid custom attribute value (not a constant or literal) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:279) - - - - - The property '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:288) - - - - - The type of a first-class function cannot contain byrefs - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:277) - - - - - A type instantiation involves a byref type. This is not permitted by the rules of Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:264) - - - - - Calls to 'reraise' may only occur directly in a handler of a try-with - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:265) - - - - - A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:284) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:297) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:296) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:293) - - - - - Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type once tuples, functions and/or units of measure are erased. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:299) - - - - - Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:298) - - - - - The method '%s' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:294) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:292) - - - - - Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional' or 'byref' arguments - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:295) - - - - - A type would store a byref typed value. This is not permitted by Common IL. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:290) - - - - - The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:258) - - - - - The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:260) - - - - - The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:280) - - - - - Unrecognized option: '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:60) - - - - - ParseInput: unknown file suffix for '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:41) - - - - - The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:17) - - - - - The signature file '%s' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:57) - - - - - A signature for the file or module '%s' has already been specified - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:54) - - - - - The search directory '%s' could not be found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:27) - - - - - The file '%s' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:32) - - - - - Microsoft (R) F# 2.0 Compiler build %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:21) - - - - - Problem with filename '%s': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:22) - - - - - The '--pdb' option requires the '--debug' option to be used - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:25) - - - - - Option requires parameter: %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:42) - - - - - No inputs specified - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:23) - - - - - This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:40) - - - - - Multiple references to '%s.dll' are not permitted - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:31) - - - - - Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:39) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:34) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:36) - - - - - The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:24) - - - - - Invalid warning number '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:18) - - - - - Invalid version string '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:19) - - - - - Invalid version file '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:20) - - - - - The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:44) - - - - - The search directory '%s' is invalid - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:26) - - - - - Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:30) - - - - - Invalid module or namespace name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:61) - - - - - Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:52) - - - - - Invalid directive. Expected '#r \"<file-or-assembly>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:50) - - - - - Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:51) - - - - - Invalid directive. Expected '#I \"<path>\"'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:49) - - - - - '%s' is not a valid filename - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:28) - - - - - '%s' is not a valid assembly name - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:29) - - - - - The declarations in this file will be placed in an implicit module '%s' based on the file name '%s'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:38) - - - - - An implementation of file or module '%s' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:55) - - - - - An implementation of the file or module '%s' has already been given - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:56) - - - - - When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:62) - - - - - FSharp.Core.sigdata not found alongside FSharp.Core - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:64) - - - - - File '%s' not found alongside FSharp.Core - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:66) - - - - - Error opening binary file '%s': %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:47) - - - - - Directives inside modules are ignored - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:53) - - - - - The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F# - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:48) - - - - - Did not expect to find sigdata resource in FSharp.Core.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:63) - - - - - Did not expect to find optdata resource in FSharp.Core.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:65) - - - - - Could not resolve assembly '%s' required by '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:46) - - - - - Could not resolve assembly '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:45) - - - - - Could not read version from mscorlib.dll - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:33) - - - - - Source file '%s' could not be found - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:43) - - - - - The file extensions '.ml' and '.mli' are for ML compatibility - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1117) - - - - - Unable to read assembly '%s' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:35) - - - - - Assembly resolution failure at or near this location - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:37) - - - - - '%s' is not a valid integer argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:58) - - - - - '%s' is not a valid floating point argument - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:59) - - - - - A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:223) - - - - - The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:222) - - - - - The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:221) - - - - - A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:225) - - - - - Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:224) - - - - - The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:218) - - - - - The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:220) - - - - - A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:228) - - - - - A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:229) - - - - - This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:219) - - - - - A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:226) - - - - - The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:230) - - - - - A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:227) - - - - - Error while parsing embedded IL type - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:212) - - - - - Error while parsing embedded IL - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:211) - - - - - Invalid expression on left of assignment - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:214) - - - - - This indexer notation has been removed from the F# language - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:213) - - - - - .NET Framework - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:960) - - - - - Global Assembly Cache - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:961) - - - - - Found by AssemblyFolders registry key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:958) - - - - - Found by AssemblyFoldersEx registry key - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:959) - - - - - Active pattern '%s' is not a function - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1119) - - - - - Active pattern '%s' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice<int,unit> = A x' - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:1120) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:120) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:112) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:119) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:125) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:111) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:123) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:110) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:124) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:104) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:109) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:126) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:108) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe number of generic parameters in the signature and implementation differ (the signature declares %s but the implementation declares %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:115) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [<Measure>] attribute. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:116) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:122) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:113) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:118) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:106) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:105) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:103) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:114) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe arities in the signature and implementation differ. The signature specifies that '%s' is function definition or lambda expression accepting at least %s argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval %s: int -> (int -> int)\ninstead of\n\tval %s: int -> int -> int. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:117) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:107) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:121) - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:161) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:159) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:160) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:162) - - - - - Invalid recursive reference to an abstract slot - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:966) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:168) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:165) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:163) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:166) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:167) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:164) - - - - - The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:187) - - - - - The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:184) - - - - - The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:191) - - - - - The exception definitions are not compatible because the field '%s' was required by the signature but was not specified by the implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:189) - - - - - The exception definitions are not compatible because the field '%s' was present in the implementation but not in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:190) - - - - - The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:188) - - - - - The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:185) - - - - - The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:186) - - - - - The %s definitions in the signature and implementation are not compatible because the types have different base types - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:139) - - - - - The %s definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:145) - - - - - The %s definitions in the signature and implementation are not compatible because the types are of different kinds - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:146) - - - - - The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:134) - - - - - The %s definitions in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:133) - - - - - The %s definitions in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [<AbstractClass>] attribute to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:138) - - - - - The %s definitions in the signature and implementation are not compatible because the signature defines the %s '%s' but the implementation does not (or does, but not in the same order) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:141) - - - - - The %s definitions in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:155) - - - - - The %s definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:158) - - - - - The %s definitions in the signature and implementation are not compatible because the representations differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:148) - - - - - The %s definitions in the signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:128) - - - - - The %s definitions in the signature and implementation are not compatible because the number of %ss differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:140) - - - - - The %s definitions in the signature and implementation are not compatible because the names differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:127) - - - - - The %s definitions in the signature and implementation are not compatible because the signature requires that the type supports the interface %s but the interface has not been implemented - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:130) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [<Sealed>] attribute to the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:135) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:132) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:131) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [<Sealed>] attribute to the implementation. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:136) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [<AbstractClass>] attribute to the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:137) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:143) - - - - - The %s definitions in the signature and implementation are not compatible because the implementation defines the %s '%s' but the signature does not (or does, but not in the same order) - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:142) - - - - - The %s definitions in the signature and implementation are not compatible because the IL representations differ - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:147) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:149) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was required by the signature but was not specified by the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:151) - - - - - The %s definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:150) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:152) - - - - - The %s definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:144) - - - - - The %s definitions in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:129) - - - - - The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was present in the implementation but not in the signature - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:154) - - - - - The %s definitions in the signature and implementation are not compatible because the abstract member '%s' was required by the signature but was not specified by the implementation - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:153) - - - - - The %s definitions in the signature and implementation are not compatible because the abbreviations differ: %s versus %s - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:156) - - - - - The %s definitions in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. - (Originally from C:\fsharp\staging\src\fsharp\FSComp.txt:157) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Convert string into Option string where null and String.Empty result in None - - - - - - - - - - - - - - Get the System.Reflection.Assembly object for the assembly - - - - - Holds the full qualified assembly name - - - - - Get the object representing the F# core library (FSharp.Core.dll) for the running program - - - - - A handle to the full specification of the contents of the module contained in this Assembly - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - Return the System.Reflection.Assembly object for the assembly - - - - - This is one way of starting the loading process off. - - - - - This is one way of starting the loading process off. Dependencies are automatically - resolved by calling System.Reflection.Assembly.Load. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the XML documentation signature for the entity - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - Get the cases of a discriminated union - - - - - Get the declared accessibility of the representation, not taking signatures into account - - - - - Get the System.Type for the type - - Raises InvalidOperationException if the type is an abbreviation or has an assembly code representation. - - - - - Get the System.Reflection.Assembly for the type - - May raise an exception if an assembly load fails - - - - - Get the fields of the class, struct or enum - - - - - Get the fully qualified name of the type or module - - - - - - - - Get the namespace containing the type or module, if any - - - - - Properties, methods etc. with implementations, also values in a module - - - - - Get the name of the type or module, possibly with `n mangling - - - - - Indicates the entity is a struct or enum - - - - - Indicates the entity is union type - - - - - Indicates the entity is record type - - - - - Indicates the entity is an F# module definition - - - - - Indicates the entity is a measure definition - - - - - If true, then this is a reference to something in some .NET assembly from another .NET language - - - - - Indicates an F# exception declaration - - - - - Indicates the entity is a measure, type or exception abbreviation - - - - - Interface implementations - boolean indicates compiler-generated - - - - - Indicates that a module is compiled to a class with the given mangled name. The mangling is reversed during lookup - - - - - Indicates the type is implemented through a mapping to IL assembly code. THis is only - true for types in FSharp.Core.dll - - - - - Get the generic parameters, possibly including unit-of-measure parameters - - - - - Get the name of the type or module as displayed in F# code - - - - - Get the entity containing the type or module, if any - - - - - Get the declaration location for the type constructor - - - - - Get the compiled name of the type or module, possibly with `n mangling. This is identical to LogicalName - unless the CompiledName attribute is used. - - - - - Base type, if any - - - - - Get the declared attributes for the type - - - - - Get the declared accessibility of the type - - - - - - - - Return the FSharpEntity corresponding to a .NET type - - - - - Represents an F# type or module - - - - - - - - - - - Get the documentation for the type parameter. - - - - - Get the name of the generic parameter - - - - - Indicates if this is a statically resolved type variable - - - - - Indicates if this is a measure variable - - - - - Get the range of the generic parameter - - - - - Get the declared or inferred constraints for the type parameter - - - - - Get the declared attributes of the type parameter. - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates a constraint that a type is an unmanaged type - - - - - Indicates a constraint that a type has a 'null' value - - - - - Indicates a constraint that a type is a simple choice between one of the given ground types. Used by printf format strings. - - - - - Indicates a constraint that a type has a parameterless constructor - - - - - Indicates a constraint that a type is a reference type - - - - - Indicates a constraint that a type is a non-Nullable value type - - - - - Indicates a constraint that a type has a member with the given signature - - - - - Indicates a constraint that a type supports F# generic equality - - - - - Indicates a constraint that a type is an enum with the given underlying - - - - - Indicates a constraint that a type is a delegate from the given tuple of args to the given return type - - - - - Indicates a default value for an inference type variable should it be netiher generalized nor solved - - - - - Indicates a constraint that a type supports F# generic comparison - - - - - Indicates a constraint that a type is a subtype of the given type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indictes the value is inlined but the code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined - - - - - - - - - - - - - - - - - - - - XML documentation signature for the value. - - - - - Get the full type of the member or value when used as a first class value - - - - - - - - Get the reflection object for this member - - - - - Get the logical name of the member - - - - - Get the logical enclosing entity, which for an extension member is type being extended - - - - - Indicates if this is an F# type function - - - - - Indicates if this is a setter method for a property - - - - - Indicates if this is a mutable value - - - - - Indicates if this is a module or member value - - - - - Indicates if this is a member, including extension members? - - - - - Indicates if this is an instance member, when seen from F#? - - - - - Indicates if this is an implicit constructor? - - - - - Indicates if this is a getter method for a property - - - - - Indicates if this is an extension member? - - - - - Indicates if this is an abstract member? - - - - - Indicates if this is a compiler generated value - - - - - Indicates if this value or member is an F# active pattern - - - - - Get a result indicating if this is a must-inline value - - - - - Get the typars of the member or value - - - - - - - - Get the name as presented in F# error messages and documentation - - - - - Get the declaration location of the member or value - - - - - - - - Get the member name in compiled code - - - - - Custom attributes attached to the value. These contain references to other values (i.e. constructors in types). Mutable to fixup - these value references after copying a colelction of values. - - - - - How visible is this? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the XML documentation signature for the field - - - - - Get the type of the field, w.r.t. the generic parameters of the enclosing type constructor - - - - - Get the attributes attached to generated property - - - - - Get the name of the field - - - - - Indicates a static field - - - - - Is the field declared in F#? - - - - - Indicates a compiler generated field, not visible to Intellisense or name resolution - - - - - Get the attributes attached to generated field - - - - - Get the declaration location of the field - - - - - Indicates the declared visibility of the field, not taking signatures into account - - - - - - - - - - - - - - Get the named entity for a type constructed using a named entity - - - - - Indicates the type is a tuple type. The GenericArguments property returns the elements of the tuple type. - - - - - Indicates the type is constructed using a named entity - - - - - Indicates the type is a variable type, whether declared, generalized or an inference type parameter - - - - - Indicates the type is a function type. The GenericArguments property returns the domain and range of the function type. - - - - - Get the index for a generic parameter type - - - - - Get the generic parameter data for a generic parameter type - - - - - Get the generic arguments for a tuple type, a function type or a type constructed using a named entity - - - - - - - - - - - - - - Get the XML documentation signature for the case - - - - - Get type constructed by the case. Normally exactly the type of the enclosing type, sometimes an abbreviation of it - - - - - Get the name of the case - - - - - Get the data carried by the case. - - - - - Get the range of the name of the case - - - - - Gete the name of the case in generated IL code - - - - - Get the attributes for the case, attached to the generated static method to make instances of the case - - - - - Indicates the declared visibility of the union constructor, not taking signatures into account - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Note this operation is O(n) anyway, so executing lastElements() here is OK - - - - - Note this operation is O(1), unless a push happens, which is rare - - - - - - - - - - - - - - - - - Iterable functional collection with O(1) append-1 time. Useful for data structures where elements get added at the - end but the collection must occadionally be iterated. Iteration is slower and may allocate because - a suffix of elements is stored in reverse order. - - The type doesn't support structural hashing or comparison. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - keyed first on namespace then on type name. The namespace is often a unique key for a given type map. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The explicit offset in bytes when explicit layout is used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index table by name and arity. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The type instantiation if the type is generic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Calling conventions. These are used in method pointer types. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global state: table of all assembly references keyed by AssemblyRefData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This is used to store event, property and field maps. - - Review: this is not such a great data structure. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global State. All namespace splits - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A little ugly, but the idea is that if a data structure does not - contain lazy values then we don't add laziness. So if the thing to map - is already evaluated then immediately apply the function. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The assumptions that need to be fixed up - - - - - The data that uses a collection of CcuThunks internally - - - - - Like Fixup but loader may return None, in which case there is no fixup. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This field holds either the function to run or a PPLazyFailure object recording the exception raised - from running the function. It is null if the thunk has been evaluated successfully. - - - - - This field holds the result of a successful computation. It's initial value is Unchecked.defaultof - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Treat a list of key-value pairs as a lookup collection. - This function returns true if two keys are the same according to the predicate - function passed in. - - - - - Treat a list of key-value pairs as a lookup collection. - This function looks up a value based on a match from the supplied - predicate function. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Try to chop "get_" or "set_" from a string - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies the compiled representations of type and exception definitions. - Computed and cached by later phases (never computed type checking). Cached at - type and exception definitions. Not pickled. Cache an optional ILType object for - non-generic types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A representation of a method in an object expression. - Note: Methods associated with types are represented as val declarations - Note: We should probably use val_specs for object expressions, as then the treatment of members - in object expressions could be more unified with the treatment of members in types - - - - - - - - - - - - - - A call to a base method, e.g. 'base.OnPaint(args)' - - - - - A call to a constructor, e.g. 'new C() = new C(3)' - - - - - A call to a constructor, e.g. 'inherit C()' - - - - - A normal use of a value - - - - - Indicates a use of a value represents a call to a method that may require - a .NET 2.0 constrained call. A constrained call is only used for calls where - - - - - - - - let res = a in b;res - - - - - a ; b - - - - - - - - In C syntax this is: *localv_ptr = e - - - - - In C syntax this is: localv = e , note == *(&localv) = e == LGetAddr; LByrefSet - - - - - In C syntax this is: *localv_ptr - - - - - In C syntax this is: &localv - - - - - - - - Evaluate start once and end multiple times, loop up - - - - - Evaluate start and end once, loop down - - - - - Evaluate start and end once, loop up - - - - - - - - - - - - - - - - - - - - IL method calls - - - - - Operation nodes represnting C-style operations on byrefs and mutable vals (l-values) - - - - - Pseudo method calls. This is used for overloaded operations like op_Addition. - - - - - - - - Represents a "rethrow" operation. May not be rebound, or used outside of try-finally, expecting a unit argument - - - - - Conversion node, compiled via type-directed translation or to box/unbox - - - - - generate a ldflda on an 'a ref. - - - - - IL assembly code - type list are the types pushed on the stack - - - - - An operation representing a field-get from an F# tuple value. - - - - - An operation representing a field-set on an F# exception value. - - - - - An operation representing a field-get from an F# exception value. - - - - - An operation representing a field-get from a union value. THe value is not assumed to have been proven to be of the corresponding union case. - - - - - An operation representing a field-get from a union value, where that value has been proven to be of the corresponding union case. - - - - - An operation representing a coercion that proves a union value is of a particular union case. THis is not a test, its - simply added proof to enable us to generate verifiable code for field access on union types - - - - - An operation representing getting an integer tag for a union value representing the union case number - - - - - An operation representing getting the address of a record field - - - - - An operation representing getting a record field - - - - - An operation representing setting a record field - - - - - Construct a record or object-model value. The ValRef is for self-referential class constructors, otherwise - it indicates that we're in a constructor and the purpose of the expression is to - fill in the fields of a pre-created but uninitialized object, and to assign the initialized - version of the object into the optional mutable cell pointed to be the given value. - - - - - An operation representing a lambda-encoded try/finally - - - - - An operation representing a lambda-encoded try/catch - - - - - An operation representing a lambda-encoded for loop - - - - - An operation representing a lambda-encoded while loop. The special while loop marker is used to mark compilations of 'foreach' expressions - - - - - - - - Constant bytes, but a new mutable blob is generated each time the construct is executed - - - - - An operation representing the creation of an array value - - - - - An operation representing the creation of a tuple value - - - - - An operation representing the creation of an exception value using an F# exception declaration - - - - - An operation representing the creation of a union value of the particular union case - - - - - - - - Normal record construction - - - - - We're in a constructor. The purpose of the record expression is to - fill in the fields of a pre-created but uninitialized object - - - - - This ModuleOrNamespace that represents the compilation of a module as a class. - The same set of tycons etc. are bound in the ModuleOrNamespace as in the ModuleOrNamespaceExpr - This is the body of the module/namespace - - - - - - - - A named module-or-namespace-fragment definition - - - - - Indicates the module fragment is a 'rec' definition of types, values and modules - - - - - Indicates the module fragment is an evaluation of expression for side-effects - - - - - Indicates the module fragment is a 'let' definition - - - - - Indicates the module fragment is made of several module fragments in succession - - - - - Indicates the module is a module with a signature - - - - - The module_typ is a binder. However it is not used in the ModuleOrNamespaceExpr: it is only referenced from the 'outside' - The contents of a module-or-namespace-fragment definition - - - - - - - - A type for a module-or-namespace-fragment and the actual definition of the module-or-namespace-fragment - - - - - Typechecking residue: A TExpr_link occurs for every use of a recursively bound variable. While type-checking - the recursive bindings a dummy expression is stored in the mutable reference cell. - After type checking the bindings this is replaced by a use of the variable, perhaps at an - appropriate type instantiation. These are immediately eliminated on subsequent rewrites. - - - - - Typechecking residue: Indicates a free choice of typars that arises due to - minimization of polymorphism at let-rec bindings. These are - resolved to a concrete instantiation on subsequent rewrites. - - - - - - - - An intrinsic applied to some (strictly evaluated) arguments - A few of intrinsics (TOp_try, TOp_while, TOp_for) expect arguments kept in a normal form involving lambdas - - - - - If we statically know some infomation then in many cases we can use a more optimized expression - This is primarily used by terms in the standard library, particularly those implementing overloaded - operators. - - - - - Matches are a more complicated form of "let" with multiple possible destinations - and possibly multiple ways to get to each destination. - The first mark is that of the expression being matched, which is used - as the mark for all the decision making and binding that happens during the match. - - - - - - - - Bind a value. - - - - - Bind a recursive set of values. - - - - - Applications combine type and term applications, and are normalized so - that sequential applications are combined, so "(f x y)" becomes "f [[x];[y]]". - The type attached to the function is the formal function type, used to ensure we don't build application - nodes that over-apply when instantiating at function types. - - - - - - - - Lambda expressions. - - - - - Sequence expressions, used for "a;b", "let a = e in b;a" and "a then b" (the last an OO constructor). - - - - - Reference a value. The flag is only relevant if the value is an object model member - and indicates base calls and special uses of object constructors. - - - - - A constant expression. - - - - - The big type of expressions. - - - - - - - - - - - - - - - - - - - - - - - The extra metadata stored about typars for top-level definitions. Any information here is propagated from signature through - to the compiled code. - - - - - - - - - - - The extra metadata stored about typars for top-level definitions. Any information here is propagated from signature through - to the compiled code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A target of a decision tree. Can be thought of as a little function, though is compiled as a local block. - - - - - Run the active pattern and bind a successful result to the (one) variable in the remaining tree - - - - - Test if the input to a decision tree is an instance of the given type - - - - - Test if the input to a decision tree is null - - - - - Test if the input to a decision tree is the given constant value - - - - - Test if the input to a decision tree is an array of the given length - - - - - Test if the input to a decision tree matches the given constructor - - - - - - - - - - - - - - Bind the given value throught the remaining cases of the dtree. - - - - - Indicates the decision tree has terminated with success, calling the given target with the given parameters - - - - - Indicates a decision point in a decision tree. - - - - - Decision trees. Pattern matching has been compiled down to - a decision tree by this point. The right-hand-sides (actions) of - the decision tree are labelled by integers that are unique for that - particular tree. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Constants in expressions - - - - - - - - AttribNamedArg(name,type,isField,value) - - - - - - - - We keep both source expression and evaluated expression around to help intellisense and signature printing - - - - - - - - Attrib(kind,unnamedArgs,propVal,appliedToAGetterOrSetter,range) - - - - - Indicates an attribute refers to a type defined in an imported F# assembly - - - - - Indicates an attribute refers to a type defined in an imported .NET assembly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The result of attempting to resolve an assembly name to a full ccu. - UnresolvedCcu will contain the name of the assembly that could not be resolved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ensure the ccu is derefable in advance. Supply a path to attach to any resulting error message. - - - - - - - - - - - A relinkable handle to the contents of a compilation unit. Relinking is performed by mutation. - - - - - - - - - - - - - - A helper function used to link method signatures using type equality. This is effectively a forward call to the type equality - logic in tastops.fs - - - - - A handle to the full specification of the contents of the module contained in this ccu - - - - - Indicates that this DLL uses quotation literals somewhere. This is used to implement a restriction on static linking - - - - - Indicates that this DLL was compiled using the F# compiler - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - The fully qualified assembly reference string to refer to this assembly. This is persisted in quotations - - - - - A unique stamp for this DLL - - - - - Holds the data indicating how this assembly/module is referenced from the code being compiled. - - - - - Holds the filename for the DLL, if any - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the type is a variable type, whether declared, generalized or an inference type parameter - - - - - Indicates the type is a non-F#-visible type representing a "proof" that a union value belongs to a particular union case - These types are not user-visible and will never appear as an inferred type. They are the types given to - the temporaries arising out of pattern matching on union values. - - - - - Indicates the type is a function type - - - - - Indicates the type is a tuple type - - - - - Indicates the type is a type application - - - - - Indicates the type is a universal type, only used for types of values, members and record fields - - - - - The algebra of types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - References are either local or nonlocal - - - - - - - - note: ModuleOrNamespaceRef and TyconRef are type equivalent - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Is the destination assembly available? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Index into the namespace/module structure of a particular CCU - - - - - - - - - - - - - - The information ILXGEN needs about the location of an item - - - - - - - - - - - - - - - - - A public path records where a construct lives within the global namespace - of a CCU. - - - - - The name of the value, or the full signature of the member - - - - - A reference to the entity containing the value or member. THis will always be a non-local reference - - - - - - - - - - - - - - - - - - - - - - - Gets updated with 'true' if an abstract slot is implemented in the file being typechecked. Internal only. - - - - - Gets updated with full slotsig after interface implementation relation is checked - - - - - The parent type. For an extension member this is the type being extended - - - - - - - - XML documentation signature for the value - - - - - XML documentation attached to a value. - - - - - - - - Top level values have an arity inferred and/or specified - signatures. The arity records the number of arguments preferred - in each position for a curried functions. The currying is based - on the number of lambdas, and in each position the elements are - based on attempting to deconstruct the type of the argument as a - tuple-type. The field is mutable because arities for recursive - values are only inferred after the r.h.s. is analyzed, but the - value itself is created before the r.h.s. is analyzed. - - TLR also sets this for inner bindings that it wants to - represent as "top level" bindings. - - - - - Custom attributes attached to the value. These contain references to other values (i.e. constructors in types). Mutable to fixup - these value references after copying a colelction of values. - - - - - Is the value actually an instance method/property/event that augments - a type, and if so what name does it take in the IL? - - - - - How visible is this? - - - - - What is the original, unoptimized, closed-term definition, if any? - Used to implement [<ReflectedDefinition>] - - - - - - - - See vflags section further below for encoding/decodings here - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Get the signature for the value's XML documentation - - - - -Get the signature for the value's XML documentation - - - - - Get the declared documentation for the value - - - - - Get the type of the value including any generic type parameters - - - - - The type of the value. - May be a Type_forall for a generic value. - May be a type variable or type containing type variables during type inference. - - - - - Get the generic type parameters for the value - - - - - - - - Get the actual parent entity for the value (a module or a type), i.e. the entity under which the - value will appear in compiled code. For extension members this is the module where the extension member - is declared. - - - - - Get the type of the value after removing any generic type parameters - - - - - A unique stamp within the context of this invocation of the compiler process - - - - - - - - Get the information about the value used during type inference - - - - - The place where the value was defined. - - - - - Get the public path to the value, if any? Should be set if and only if - IsMemberOrModuleBinding is set. - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the property implemented by the abstract slot - - - - - Does the value allow the use of an explicit type instantiation (i.e. does it itself have explciti type arguments, - or does it have a signature?) - - - - - Does the inline declaration for the value indicate that the value must be inlined? - - - - - Is this a member, if so some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Get the apparent parent entity for a member - - - - - Was the value inferred to be a method or function that definitely makes no critical tailcalls? - - - - - The name of the method. - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an extension member then this will be the simple name - - - - - The value of a value or member marked with [<LiteralAttribute>] - - - - - - - - - - - - - - Was this member declared 'override' or is it an implementation of an interface slot - - - - - Was the value declared 'mutable' - - - - - Is this a value in a module, or an extension member, but excluding compiler generated bindings from optimizations - - - - - Is this a member definition or module definition? - - - - - Is this a member, if so some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - - - - Is this a member, excluding extension members - - - - - Is this an instance member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Is this a member generated from the de-sugaring of 'let' function bindings in the implicit class syntax? - - - - - Is this a constructor member generated from the de-sugaring of implicit constructor for a class type? - - - - - - - - - - - Is this a 'new' constructor member - - - - - Was the value generated by the compiler? - - Note: this is true for the overrides generated by hash/compare augmentations - - - - - Is this something compiled into a module, i.e. a user-defined value, an extension member or a compiler-generated value - - - - - Is this represented as a "top level" static binding (i.e. a static field, static member, - instance member), rather than an "inner" binding that may result in a closure. - - This is implied by IsMemberOrModuleBinding, however not vice versa, for two reasons. - Some optimizations mutate this value when they decide to change the representation of a - binding to be IsCompiledAsTopLevel. Second, even immediately after type checking we expect - some non-module, non-member bindings to be marked IsCompiledAsTopLevel, e.g. 'y' in - 'let x = let y = 1 in y + y' (NOTE: check this, don't take it as gospel) - - - - - Was the value ever referenced? - - - - - Is this a compiler-generated class constructor member - - - - - Get the inline declaration on the value - - - - - - - - Was the value ever referenced? - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is '(+)' - - - - - Range of the definition (implementation) of the value, used by Visual Studio - Updated by mutation when the implementation is matched against the signature. - - - - - The name of the method. - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is 'op_Addition' - - - - - The name of the method in compiled code (with some exceptions where ilxgen.fs decides not to use a method impl) - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this may be a mangled name - - If this is an extension member then this will be a mangled name - - If this is an operator then this is 'op_Addition' - - - - - Is this a 'base' or 'this' value? - - - - - Get the declared attributes for the value - - - - - Get the apparent parent entity for the value, i.e. the entity under with which the - value is associated. For extension members this is the nominal type the member extends. - For other values it is just the actual parent. - - - - - The parent type or module, if any (None for expression bindings and parameters) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the signature of a member constraint. Contains a mutable solution cell - to store the inferred solution of the constraint. - - - - - - - - - - - - - - - - - The specification of a member constraint that must be solved - - - - - Indicates a constraint that a type is .NET unmanaged type - - - - - Indicates a constraint that a type is a delegate from the given tuple of args to the given return type - - - - - Indicates a constraint that a type does not have the Equality(false) attribute, or is not a structural type with this attribute, with special rules for some known structural container types - - - - - Indicates a constraint that a type implements IComparable, with special rules for some known structural container types - - - - - Indicates a constraint that a type is an enum with the given underlying - - - - - Indicates a constraint that a type has a parameterless constructor - - - - - Indicates a constraint that a type is a simple choice between one of the given ground types. See format.fs - - - - - Indicates a constraint that a type is a reference type - - - - - Indicates a constraint that a type is a non-Nullable value type - These are part of .NET's model of generic constraints, and in order to - generate verifiable code we must attach them to F# generalzied type variables as well. - - - - - Indicates a constraint that a type has a member with the given signature - - - - - Indicates a constraint that a type has a 'null' value - - - - - Indicates a default value for an inference type variable should it be netiher generalized nor solved - - - - - Indicates a constraint that a type is a subtype of the given type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The inferred constraints for the type inference variable - - - - - An inferred equivalence for a type inference variable. - - - - - The declared attributes of the type parameter. Empty for type inference variables. - - - - - The documentation for the type parameter. Empty for type inference variables. - - - - - The unique stamp of the typar blob. - - - - - - - - - - - - - - - - - Indicates the construct can only be accessed from any code in the given type constructor, module or assembly. [] indicates global scope. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - - - - - - - - - - - - - - - - - - - - - - Namespace or module-compiled-as-type? - - - - - - - - - - - - - - - - - - - - - - - Values, including members in F# types in this module-or-namespace-fragment. - - - - - - - - - - - Type, mapping mangled name to Tycon, e.g. - - - - - - - - - - - - - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - - - - - - - - - - Indicates that a 'module' is really a namespace - - - - - Indicates that a module is compiled to a class with the same name as the original module - - - - - Indicates that a module is compiled to a class with the "Module" suffix added. - - - - - - - - Indicates that an exception is abstract, i.e. is in a signature file, and we do not know the representation - - - - - Indicates that an exception carries the given record of values - - - - - Indicates that an exception is shorthand for the given .NET exception type - - - - - Indicates that an exception is an abbreviation for the given exception - - - - - - - - Name/declaration-location of the field - - - - - Attributes attached to generated field - - - - - Attributes attached to generated property - - - - - Indicates the declared visibility of the field, not taking signatures into account - - - - - The default initialization info, for static literals - - - - - Indicates a compiler generated field, not visible to Intellisense or name resolution - - - - - Indicates a volatile field - - - - - Indicates a static field - - - - - The type of the field, w.r.t. the generic parameters of the enclosing type constructor - - - - - XML Documentation signature for the field - - - - - Documentation for the field - - - - - Is the field declared mutable in F#? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This may represent a "field" in either a struct, class, record or union - It is normally compiled to a property. - - - - - Attributes, attached to the generated static method to make instances of the case - - - - - Indicates the declared visibility of the union constructor, not taking signatures into account - - - - - Name/range of the case - - - - - XML documentation signature for the case - - - - - Documentation for the case - - - - - Name of the case in generated IL code - - - - - Return type constructed by the case. Normally exactly the type of the enclosing type, sometimes an abbreviation of it - - - - - Data carried by the case. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The cases contained in the discriminated union. - - - - - The ILX data structure representing the discriminated union. - - - - - - - - The cases of the discriminated union, indexed by name. - - - - - The cases of the discriminated union, in declaration order. - - - - - - - - - - - - - - The fields of the record, indexed by name. - - - - - The fields of the record, in declaration order. - - - - - - - - - - - - - - - - - - - - - - - The fields of the class, struct or enum - - - - - The declared abstract slots of the class, interface or struct - - - - - Indicates whether the type declaration is a class, interface, enum, delegate or struct - - - - - - - - Indicates the type is an enumeration - - - - - Indicates the type is a delegate with the given Invoke signature - - - - - Indicates the type is a struct - - - - - Indicates the type is an interface - - - - - Indicates the type is a class (also used for units-of-measure) - - - - - - - - Indicates the type is parameterized on a measure (e.g. float<_>) but erases to some other type (e.g. float) - - - - - Indicates the type is implemented as IL assembly code using the given closed Abstract IL type - - - - - Indicates the type is a .NET type - - - - - Indicates the type is a discriminated union - - - - - Indicates the type is a record - - - - - Indicates the type is a class, struct, enum, delegate or interface - - - - - - - - Set to true if the type is determined to be abstract - - - - - Set to true at the end of the scope where proper augmentations are allowed - - - - - Super type, if any - - - - - Interface implementations - boolean indicates compiler-generated - - - - - Properties, methods etc. as lookup table - - - - - Properties, methods etc. in declaration order - - - - - True if the type defined an Object.GetHashCode method. In this - case we give a warning if we auto-generate a hash method since the semantics may not match up - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralEquatable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated equality - semantics if any. It is not present if the type defines its own implementation - of Object.Equals or if the type doesn't override Object.Equals implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralComparable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IComparable or if the type doesn't implement IComparable implicitly. - - - - - - - - - - - - - - - - - Used during codegen to hold the ILX representation indicating how to access the type - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - The XML document signature for this entity - - - - - The declared documentation for the type or module - - - - - This field is used when the 'tycon' is really a module definition. It holds statically nested type definitions and nested modules - - - - - Field used when the 'tycon' is really an exception definition - - - - - The methods and properties of the type - - - - - If non-None, indicates the type is an abbreviation for another type. - - - - - The declared representation of the type, i.e. record, union, class etc. - - - - - The declared attributes for the type - - - - - The declared accessibility of the representation, not taking signatures into account - - - - - The declaration location for the type constructor - - - - - The name of the type, possibly with `n mangling - - - - - The name of the type, possibly with `n mangling - - - - - The unique stamp of the "tycon blob". Note the same tycon in signature and implementation get different stamps - - - - - - - - - - - The declared type parameters of the type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Note: result is alphabetically sorted, then for each name the results are in declaration order - - - - - Note: result is a indexed table, and for each name the results are in reverse declaration order - - - - - - - - - - - - - - - - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - - - - Indicates the "tycon blob" is actually a module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From TAST TyconRef to IL ILTypeRef - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata - - - - - - - - - - - - - - - - - - - - Encode entity flags into a bit field. We leave lots of space to allow for future expansion. - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata. We pickle this as int64 to allow for future expansion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Encode typar flags into a bit field - - - - - Indicates the type parameter derives from an '_' anonymous type - For units-of-measure, we give a warning if this gets solved to '1' - - - - - Indicates the type parameter is an inference variable may be solved - - - - - Indicates we give a warning if the type parameter is ever solved - - - - - Indicates the type parameter can't be solved, but the variable is not set to "rigid" until after inference is complete - - - - - Indicates the type parameter can't be solved - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get the flags as included in the F# binary metadata - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Indicates the 'this' value specified in a memberm e.g. 'x' in 'member x.M() = 1' - - - - - Indicates a normal value - - - - - Indicates the value called 'base' available for calling base class members - - - - - Indicates a ref-cell holding 'this' or the implicit 'this' used throughout an - implicit constructor to access and set values - - - - - - - - Indicates the type parameter is needed at runtime and may not be eliminated - - - - - Indicates the type parameter is not needed at runtime and may be eliminated - - - - - - - - - - - - - - - - - The normal value for this flag when the value is not within its recursive scope - - - - - Set while the value is within its recursive scope. The flag indicates if the value has been eagerly generalized and accepts generic-recursive calls - - - - - - - - - - - - - - Indictes the value is inlined but the code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined - - - - - Indicates the value must always be inlined - - - - - - - - - - - - - - Unique name generator for stamps attached to lambdas and object expressions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Primitive routine to compare two EntityRef's for equality - This takes into account the possibility that they may have type forwarders - - - - - This predicate tests if non-local resolution paths are definitely known to resolve - to different entities. All references with different named paths always resolve to - different entities. Two references with the same named paths may resolve to the same - entities even if they reference through different CCUs, because one reference - may be forwarded to another via a .NET TypeForwarder. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Equality on CCU references, implemented as reference equality except when unresolved - - - - - - - - - - - - - - - - - - - - - - - Unique name generator for stamps attached to to val_specs, tycon_specs etc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Metadata on values (names of arguments etc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/FSPowerPack.Metadata.Community.3.0.0.0/tools/install.ps1 b/packages/FSPowerPack.Metadata.Community.3.0.0.0/tools/install.ps1 deleted file mode 100644 index faaa23e09..000000000 --- a/packages/FSPowerPack.Metadata.Community.3.0.0.0/tools/install.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -param($rootPath, $toolsPath, $package, $project) - -Add-BindingRedirect $project.Name \ No newline at end of file diff --git a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.dll b/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.dll deleted file mode 100644 index 9e4f13500..000000000 Binary files a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.dll and /dev/null differ diff --git a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.xml b/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.xml deleted file mode 100644 index 2cf28e308..000000000 --- a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/Lib/Net40/FSharp.PowerPack.Parallel.Seq.xml +++ /dev/null @@ -1,817 +0,0 @@ - - -FSharp.PowerPack.Parallel.Seq - - - - - - Operates in parallel, using System.Linq.Parallel. Returns the average of the results generated by applying the function to each element - of the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the generated type. - - A function applied to transform each element of the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Operates in parallel, using System.Linq.Parallel. Generates a new sequence which, when iterated, will return successive - elements by calling the given function. The results of calling the function - will not be saved, that is the function will be reapplied as necessary to - regenerate the elements. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - Iteration can continue up to Int32.MaxValue. - - A function that generates an item in the sequence from a given index. - - The result sequence. - Operates in parallel, using System.Linq.Parallel. Returns a sequence that is built from the given delayed specification of a - sequence. - - The input function is evaluated each time an IEnumerator for the sequence - is requested. - - The generating function for the sequence. - Operates in parallel, using System.Linq.Parallel. Compares two sequences using the given comparison function, element by element. - Returns the first non-zero result from the comparison function. If the end of a sequence - is reached it returns a -1 if the first sequence is shorter and a 1 if the second sequence - is shorter. - - A function that takes an element from each sequence and returns an int. - If it evaluates to a non-zero value iteration is stopped and that value is returned. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences - is null. - Operates in parallel, using System.Linq.Parallel. Returns a sequence that corresponds to a cached version of the input sequence. - This result sequence will have the same elements as the input sequence. The result - can be enumerated multiple times. The input sequence will be enumerated at most - once and only as far as is necessary. Caching a sequence is typically useful when repeatedly - evaluating items in the original sequence is computationally expensive or if - iterating the sequence causes side-effects that the user does not want to be - repeated multiple times. - - Enumeration of the result sequence is thread safe in the sense that multiple independent IEnumerator - values may be used simultaneously from different threads (accesses to - the internal lookaside table are thread safe). Each individual IEnumerator - is not typically thread safe and should not be accessed concurrently. - - Once enumeration of the input sequence has started, - it's enumerator will be kept live by this object until the enumeration has completed. - At that point, the enumerator will be disposed. - - The enumerator may be disposed and underlying cache storage released by - converting the returned sequence object to type IDisposable, and calling the Dispose method - on this object. The sequence object may then be re-enumerated and a fresh enumerator will - be used. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Operates in parallel, using System.Linq.Parallel. Returns the average of the elements in the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the element type. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Operates in parallel, using System.Linq.Parallel. Returns the greatest of all elements of the sequence, compared via Operators.max on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence of each element in the input sequence and its predecessor, with the - exception of the first element which is only returned as the predecessor of the second element. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Operates in parallel, using System.Linq.Parallel. Returns the greatest of all elements of the sequence, compared via Operators.max - - The input sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Returns the lowest of all elements of the sequence, compared via Operators.min on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Operates in parallel, using System.Linq.Parallel. Like fold, but computes on-demand and returns the sequence of intermediary and final results. - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Operates in parallel, using System.Linq.Parallel. Builds a new sequence object that delegates to the given sequence object. This ensures - the original sequence cannot be rediscovered and mutated by a type cast. For example, - if given an array the returned sequence will return the elements of the array, but - you cannot cast the returned sequence object to an array. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Operates in parallel, using System.Linq.Parallel. Returns the lowest of all elements of the sequence, compared via Operators.min. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Operates in parallel, using System.Linq.Parallel. Returns the sum of the results generated by applying the function to each element of the sequence. - The generated elements are summed using the + operator and Zero property associated with the generated type. - - A function to transform items from the input sequence into the type that will be summed. - The input sequence. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Returns the first N elements of the sequence. - Throws InvalidOperationException - if the count exceeds the number of elements in the sequence. Seq.truncate - returns as many items as the sequence contains instead of throwing an exception. - - The number of items to take. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - Thrown when count exceeds the number of elements - in the sequence. - Operates in parallel, using System.Linq.Parallel. Applies the given function to successive elements, returning the first - result where the function returns "Some(x)". - - A function that transforms items from the input sequence into options. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Operates in parallel, using System.Linq.Parallel. Returns a sequence that contains the elements generated by the given computation. - The given initial state argument is passed to the element generator. - For each IEnumerator elements in the stream are generated on-demand by applying the element - generator, until a None value is returned by the element generator. Each call to the element - generator returns a new residual state. - - The stream will be recomputed each time an IEnumerator is requested and iterated for the Seq. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function that takes in the current state and returns an option tuple of the next - element of the sequence and the next state value. - The initial state value. - - The result sequence. - Operates in parallel, using System.Linq.Parallel. Returns a sequence that yields sliding windows of containing elements drawn from the input - sequence. Each window is returned as a fresh array. - - The number of elements in each window. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - Operates in parallel, using System.Linq.Parallel. Combines the three sequences into a list of triples. The sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequences are ignored. - - The first input sequence. - The second input sequence. - The third input sequence. - - The result sequence. - - Thrown when any of the input sequences is null. - Operates in parallel, using System.Linq.Parallel. Returns the sum of the elements in the sequence. - - The elements are summed using the + operator and Zero property associated with the generated type. - - The input sequence. - - The result sequence. - - - - - - - - - - - - - - - - - - Operates in parallel, using System.Linq.Parallel. Combines the two sequences into a list of pairs. The two sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequence are ignored. - - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that when enumerated returns at most N elements. - - The maximum number of items to enumerate. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns the index of the first element in the sequence - that satisfies the given predicate. Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns the first element for which the given function returns true. - Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Builds a list from the given collection. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Builds an array from the given collection. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that, when iterated, yields elements of the underlying sequence while the - given predicate returns true, and then returns no further elements. - - A function that evaluates to false when no more items should be returned. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies a key-generating function to each element of a sequence and yield a sequence ordered - by keys. The keys are compared using generic comparison as implemented by Operators.compare. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - A function to transform items of the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Yields a sequence ordered by keys. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that, when iterated, skips elements of the underlying sequence while the - given predicate returns true, and then yields the remaining elements of the sequence. - - A function that evaluates an element of the sequence to a boolean value. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that skips N elements of the underlying sequence and then yields the - remaining elements of the sequence. - - The number of items to skip. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when count exceeds the number of elements - in the sequence. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that yields one item only. - - The input item. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Applies a function to each element of the sequence, threading an accumulator argument - through the computation. Begin by applying the function to the first two elements. - Then feed this result into the function along with the third element and so on. - Return the final result. - - A function that takes in the current accumulated result and the next - element of the sequence to produce the next accumulated result. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to successive elements, returning the first - x where the function returns "Some(x)". - - A function to transform each item of the input sequence into an option of the output type. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when every item of the sequence - evaluates to None when the given function is applied. - - - Operates in parallel, using System.Linq.Parallel. Views the given list as a sequence. - - The input list. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Views the given array as a sequence. - - The input array. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Computes the nth element in the collection. - - The index of element to retrieve. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The integer index passed to the - function indicates the index (from 0) of element being transformed. - - A function to transform items from the input sequence that also supplies the current index. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Builds a new collection whose elements are the results of applying the given function - to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to transform pairs of items from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Operates in parallel, using System.Linq.Parallel. Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The given function will be applied - as elements are demanded using the MoveNext method on enumerators retrieved from the - object. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function to transform items from the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns the lengthof the sequence - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to two collections simultaneously. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to apply to each pair of elements from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to each element of the collection. The integer passed to the - function indicates the index of element. - - A function to apply to each element of the sequence that can also access the current index. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to each element of the collection. - - A function to apply to each element of the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Generates a new sequence which, when iterated, will return successive - elements by calling the given function, up to the given count. The results of calling the function - will not be saved, that is the function will be reapplied as necessary to - regenerate the elements. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The maximum number of items to generate for the sequence. - A function that generates an item in the sequence from a given index. - - The result sequence. - - Thrown when count is negative. - - - Operates in parallel, using System.Linq.Parallel. Returns true if the sequence contains no elements, false otherwise. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns the first element of the sequence. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input does not have any elements. - - - Operates in parallel, using System.Linq.Parallel. Applies a key-generating function to each element of a sequence and yields a sequence of - unique keys. Each unique key has also contains a sequence of all elements that match - to this key. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function that transforms an element of the sequence into a comparable key. - The input sequence. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Tests the all pairs of elements drawn from the two sequences satisfy the - given predicate. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test pairs of elements from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Operates in parallel, using System.Linq.Parallel. Tests if all elements of the sequence satisfy the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - - A function to test an element of the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f (... (f s i0)...) iN - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns the index of the first element for which the given function returns true. - - A function to test whether the index of a particular element should be returned. - The input sequence. - - The result sequence. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Operates in parallel, using System.Linq.Parallel. Returns the first element for which the given function returns true. - - A function to test whether an item in the sequence should be returned. - The input sequence. - - The result sequence. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Operates in parallel, using System.Linq.Parallel. Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to test whether each item in the input sequence should be included in the output. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Tests if any pair of corresponding elements of the input sequences satisfies the given predicate. - - The predicate is applied to matching elements in the two sequences up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, false is returned. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test each pair of items from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the two input sequences is null. - - - Operates in parallel, using System.Linq.Parallel. Tests if any element of the sequence satisfies the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - - A function to test each item of the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Creates an empty sequence. - - The result sequence. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that contains no duplicate entries according to the - generic hash and equality comparisons on the keys returned by the given key-generating function. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - A function transforming the sequence items into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Returns a sequence that contains no duplicate entries according to generic hash and - equality comparisons on the entries. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies a key-generating function to each element of a sequence and return a sequence yielding unique - keys and their number of occurrences in the original sequence. - - Note that this function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function transforming each item of input sequence into a key to be - compared against the others. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Combines the given enumeration-of-enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input enumeration-of-enumerations. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to each element of the sequence and concatenates all the - results. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to transform elements of the input sequence into the sequences - that will then be concatenated. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Applies the given function to each element of the list. Return - the list comprised of the results "x" for each element where - the function returns Some(x). - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not - be accessed concurrently. - - A function to transform items of type T into options of type U. - The input sequence of type T. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Wraps a loosely-typed System.Collections sequence as a typed sequence. - - The use of this function usually requires a type annotation. - An incorrect type annotation may result in runtime type - errors. - Individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Operates in parallel, using System.Linq.Parallel. Wraps the two given enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed - concurrently. - - The first sequence. - The second sequence. - - The result sequence. - - Thrown when either of the two provided sequences is - null. - - - Parallel operations on IEnumerables. - - - diff --git a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/tools/install.ps1 b/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/tools/install.ps1 deleted file mode 100644 index faaa23e09..000000000 --- a/packages/FSPowerPack.Parallel.Seq.Community.3.0.0.0/tools/install.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -param($rootPath, $toolsPath, $package, $project) - -Add-BindingRedirect $project.Name \ No newline at end of file diff --git a/packages/FSharp.Core.4.0.0/lib/FSharp.Core.dll b/packages/FSharp.Core.4.0.0/lib/FSharp.Core.dll deleted file mode 100644 index 1b9afb668..000000000 Binary files a/packages/FSharp.Core.4.0.0/lib/FSharp.Core.dll and /dev/null differ diff --git a/packages/FSharp.Core.4.0.0/lib/FSharp.Core.xml b/packages/FSharp.Core.4.0.0/lib/FSharp.Core.xml deleted file mode 100644 index 533c5f5fb..000000000 --- a/packages/FSharp.Core.4.0.0/lib/FSharp.Core.xml +++ /dev/null @@ -1,8809 +0,0 @@ - - -FSharp.Core - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets the tail of the list, which is a list containing all the elements of the list, excluding the first element - - - Gets the number of items contained in the list - - - Gets the element of the list at the given position. - Lists are represented as linked lists so this is an O(n) operation. - The index. - The value at the given index. - - - Gets a value indicating if the list contains no entries - - - Gets the first element of the list - - - Returns an empty list of a particular type - - - Returns a list with head as its first element and tail as its subsequent elements - A new head value for the list. - The existing list. - The list with head appended to the front of tail. - - - The type of immutable singly-linked lists. - - Use the constructors [] and :: (infix) to create values of this type, or - the notation [1;2;3]. Use the values in the List module to manipulate - values of this type, or pattern match against the values directly. - - - Lookup an element in the map. Raise KeyNotFoundException if no binding - exists in the map. - The input key. - Thrown when the key is not found. - The value mapped to the key. - - - Returns true if there are no bindings in the map. - - - The number of bindings in the map. - - - Lookup an element in the map, returning a Some value if the element is in the domain - of the map and None if not. - The input key. - The mapped value, or None if the key is not in the map. - - - Removes an element from the domain of the map. No exception is raised if the element is not present. - The input key. - The resulting map. - - - - - - Tests if an element is in the domain of the map. - The input key. - True if the map contains the given key. - - - Returns a new map with the binding added to the given map. - The input key. - The resulting map. - - - Builds a map that contains the bindings of the given IEnumerable. - The input sequence of key/value pairs. - The resulting map. - - - Immutable maps. Keys are ordered by F# generic comparison. - - Maps based on generic comparison are efficient for small keys. They are not a suitable choice if keys are recursive data structures - or if keys require bespoke comparison semantics. - - All members of this class are thread-safe and may be used concurrently from multiple threads. - - - An abbreviation for the CLI type System.Collections.Generic.List<_> - - - Returns a new set with the elements of the second set removed from the first. - The first input set. - The second input set. - A set containing elements of the first set that are not contained in the second set. - - - Compute the union of the two sets. - The first input set. - The second input set. - The union of the two input sets. - - - Returns the lowest element in the set according to the ordering being used for the set. - - - Returns the highest element in the set according to the ordering being used for the set. - - - A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. - - - The number of elements in the set - - - A useful shortcut for Set.remove. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - The value to remove from the set. - The result set. - - - Evaluates to "true" if all elements of the second set are in the first. - The set to test against. - True if this set is a superset of otherSet. - - - Evaluates to "true" if all elements of the first set are in the second. - The set to test against. - True if this set is a subset of otherSet. - - - Evaluates to "true" if all elements of the second set are in the first, and at least - one element of the first is not in the second. - The set to test against. - True if this set is a proper superset of otherSet. - - - Evaluates to "true" if all elements of the first set are in the second, and at least - one element of the second is not in the first. - The set to test against. - True if this set is a proper subset of otherSet. - - - - - - A useful shortcut for Set.contains. See the Set module for further operations on sets. - The value to check. - True if the set contains value. - - - A useful shortcut for Set.add. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - The value to add to the set. - The result set. - - - Create a set containing elements drawn from the given sequence. - The input sequence. - The result set. - - - Immutable sets based on binary trees, where comparison is the - F# structural comparison function, potentially using implementations - of the IComparable interface on key values. - - See the Set module for further operations on sets. - - All members of this class are thread-safe and may be used concurrently from multiple threads. - - - An abbreviation for the type of immutable singly-linked lists. - - Use the constructors [] and :: (infix) to create values of this type, or - the notation [1;2;3]. Use the values in the List module to manipulate - values of this type, or pattern match against the values directly. - - - An abbreviation for the CLI type System.Collections.Generic.IEnumerable<_> - - - Fetches an element from a 2D array. You can also use the syntax array.[index1,index2]. - - The input array. - The index along the first dimension. - The index along the second dimension. - - The value of the array at the given index. - Thrown when the indices are negative or exceed the bounds of the array. - - - Sets the value of an element in an array. You can also use the syntax array.[index1,index2] <- value. - - The input array. - The index along the first dimension. - The index along the second dimension. - The value to set in the array. - Thrown when the indices are negative or exceed the bounds of the array. - - - Builds a new array whose elements are the same as the input array but - where a non-zero-based input array generates a corresponding zero-based - output array. - - The input array. - - The zero-based output array. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer indices passed to the - function indicates the element being transformed. - - For non-zero-based arrays the basing on an input array will be propagated to the output - array. - - A function that is applied to transform each element of the array. The two integers - provide the index of the element. - The input array. - - An array whose elements have been transformed by the given mapping. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - - A function that is applied to transform each item of the input array. - The input array. - - An array whose elements have been transformed by the given mapping. - - - Returns the length of an array in the second dimension. - - The input array. - - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension. - - The input array. - - The length of the array in the first dimension. - - - Applies the given function to each element of the array. The integer indices passed to the - function indicates the index of element. - - A function to apply to each element of the array with the indices available as an argument. - The input array. - - - Applies the given function to each element of the array. - - A function to apply to each element of the array. - The input array. - - - Creates a based array where the entries are initially Unchecked.defaultof<'T>. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates a based array whose elements are all initially the given value. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - The value to populate the new array. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates a based array given the dimensions and a generator function to compute the elements. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - A function to produce elements of the array given the two indices. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates an array where the entries are initially Unchecked.defaultof<'T>. - - The length of the first dimension of the array. - The length of the second dimension of the array. - - The created array. - Thrown when length1 or length2 is negative. - - - Creates an array whose elements are all initially the given value. - - The length of the first dimension of the array. - The length of the second dimension of the array. - The value to populate the new array. - - The created array. - Thrown when length1 or length2 is negative. - - - Creates an array given the dimensions and a generator function to compute the elements. - - The length of the first dimension of the array. - The length of the second dimension of the array. - A function to produce elements of the array given the two indices. - - The generated array. - Thrown when either of the lengths is negative. - - - Reads a range of elements from the first array and write them into the second. - - The source array. - The first-dimension index to begin copying from in the source array. - The second-dimension index to begin copying from in the source array. - The target array. - The first-dimension index to begin copying into in the target array. - The second-dimension index to begin copying into in the target array. - The number of elements to copy across the first dimension of the arrays. - The number of elements to copy across the second dimension of the arrays. - Thrown when any of the indices are negative or if either of - the counts are larger than the dimensions of the array allow. - - - Builds a new array whose elements are the same as the input array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - - The input array. - - A copy of the input array. - - - Fetches the base-index for the second dimension of the array. - - The input array. - - The base-index of the second dimension of the array. - - - Fetches the base-index for the first dimension of the array. - - The input array. - - The base-index of the first dimension of the array. - - - Basic operations on 2-dimensional arrays. - - F# and CLI multi-dimensional arrays are typically zero-based. - However, CLI multi-dimensional arrays used in conjunction with external - libraries (e.g. libraries associated with Visual Basic) be - non-zero based, using a potentially different base for each dimension. - The operations in this module will accept such arrays, and - the basing on an input array will be propagated to a matching output - array on the Array2D.map and Array2D.mapi operations. - Non-zero-based arrays can also be created using Array2D.zeroCreateBased, - Array2D.createBased and Array2D.initBased. - - - Creates an array where the entries are initially the "default" value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The created array. - - - Sets the value of an element in an array. You can also - use the syntax 'array.[index1,index2,index3] <- value'. - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The value to set at the given index. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer indices passed to the - function indicates the element being transformed. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - The function to transform the elements at each index in the array. - The input array. - The array created from the transformed elements. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - The function to transform each element of the array. - The input array. - The array created from the transformed elements. - - - Returns the length of an array in the third dimension. - The input array. - The length of the array in the third dimension. - - - Returns the length of an array in the second dimension. - The input array. - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension - The input array. - The length of the array in the first dimension. - - - Applies the given function to each element of the array. The integer indicies passed to the - function indicates the index of element. - The function to apply to each element of the array. - The input array. - - - Applies the given function to each element of the array. - The function to apply to each element of the array. - The input array. - - - Fetches an element from a 3D array. You can also use the syntax 'array.[index1,index2,index3]' - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The value at the given index. - - - Creates an array given the dimensions and a generator function to compute the elements. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The function to create an initial value at each index into the array. - The created array. - - - Creates an array whose elements are all initially the given value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The value of the array elements. - The created array. - - - Basic operations on rank 3 arrays. - - - Sets the value of an element in an array. You can also - use the syntax 'array.[index1,index2,index3,index4] <- value'. - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The index along the fourth dimension. - The value to set. - - - Fetches an element from a 4D array. You can also use the syntax 'array.[index1,index2,index3,index4]' - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The index along the fourth dimension. - The value at the given index. - - - Creates an array where the entries are initially the "default" value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The created array. - - - Returns the length of an array in the fourth dimension. - The input array. - The length of the array in the fourth dimension. - - - Returns the length of an array in the third dimension. - The input array. - The length of the array in the third dimension. - - - Returns the length of an array in the second dimension. - The input array. - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension - The input array. - The length of the array in the first dimension. - - - Creates an array given the dimensions and a generator function to compute the elements. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The function to create an initial value at each index in the array. - The created array. - - - Creates an array whose elements are all initially the given value - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The initial value for each element of the array. - The created array. - - - Basic operations on rank 4 arrays. - - - Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an ArgumentException is - raised. - The first input array. - The second input array. - The third input array. - Thrown when the input arrays differ in length. - The array of tupled elements. - - - Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is - raised. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - The array of tupled elements. - - - Splits an array of triples into three arrays. - The input array. - The tuple of three arrays. - - - Splits an array of pairs into two arrays. - The input array. - The two arrays. - - - Returns the index of the first element in the array - that satisfies the given predicate. - The function to test the input elements. - The input array. - The index of the first element that satisfies the predicate, or None. - - - Returns the first element for which the given function returns true. - Return None if no such element exists. - The function to test the input elements. - The input array. - The first element that satisfies the predicate, or None. - - - Views the given array as a sequence. - The input array. - The sequence of array elements. - - - Builds a list from the given array. - The input array. - The list of array elements. - - - Returns the sum of the results generated by applying the function to each element of the array. - The function to transform the array elements into the type to be summed. - The input array. - The resulting sum. - - - Returns the sum of the elements in the array. - The input array. - The resulting sum. - - - Sorts the elements of an array by mutating the array in-place, using the given comparison function. - Elements are compared using Operators.compare. - The input array. - - - Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order. - The function to compare pairs of array elements. - The input array. - - - Sorts the elements of an array by mutating the array in-place, using the given projection for the keys. - Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to transform array elements into the type that is compared. - The input array. - - - Sorts the elements of an array, using the given comparison function as the order, returning a new array. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to compare pairs of array elements. - The input array. - The sorted array. - - - Sorts the elements of an array, using the given projection for the keys and returning a new array. - Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to transform array elements into the type that is compared. - The input array. - The sorted array. - - - Sorts the elements of an array, returning a new array. Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The input array. - The sorted array. - - - Builds a new array that contains the given subrange specified by - starting index and length. - The input array. - The index of the first element of the sub array. - The length of the sub array. - The created sub array. - - - Sets an element of an array. - The input array. - The input index. - The input value. - - - Like foldBack, but return both the intermediary and final results. - The function to update the state given the input elements. - The input array. - The initial state. - The array of state values. - - - Like fold, but return the intermediary and final results. - The function to update the state given the input elements. - The initial state. - The input array. - The array of state values. - - - Returns a new array with the elements in reverse order. - The input array. - The reversed array. - - - Applies a function to each element of the array, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f i0 (...(f iN-1 iN)). - Raises ArgumentException if the array has size zero. - The function to reduce a pair of elements to a single element. - The input array. - Thrown when the input array is empty. - The final result of the reductions. - - - Applies a function to each element of the array, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f (... (f i0 i1)...) iN. - Raises ArgumentException if the array has size zero. - The function to reduce a pair of elements to a single element. - The input array. - Thrown when the input array is empty. - The final result of the redcutions. - - - Returns an array with all elements permuted according to the - specified permutation. - The function that maps input indices to output indices. - The input array. - The output array. - - - Splits the collection into two collections, containing the - elements for which the given predicate returns "true" and "false" - respectively. - The function to test the input elements. - The input array. - A pair of arrays. The first containing the elements the predicate evaluated to true, - and the second containing those evaluated to false. - - - Builds a new array from the given enumerable object. - The input sequence. - The array of elements from the sequence. - - - Builds an array from the given list. - The input list. - The array of elements from the list. - - - Returns the lowest of all elements of the array, compared via Operators.min on the function result. - - Throws ArgumentException for empty arrays. - The function to transform the elements into a type supporting comparison. - The input array. - Thrown when the input array is empty. - The minimum element. - - - Returns the lowest of all elements of the array, compared via Operators.min. - - Throws ArgumentException for empty arrays - The input array. - Thrown when the input array is empty. - The minimum element. - - - Returns the greatest of all elements of the array, compared via Operators.max on the function result. - - Throws ArgumentException for empty arrays. - The function to transform the elements into a type supporting comparison. - The input array. - Thrown when the input array is empty. - The maximum element. - - - Returns the greatest of all elements of the array, compared via Operators.max on the function result. - - Throws ArgumentException for empty arrays. - The input array. - Thrown when the input array is empty. - The maximum element. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer index passed to the - function indicates the index of element being transformed. - The function to transform elements and their indices. - The input array. - The array of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise, also passing the index of - the elements. The two input arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to transform pairs of input elements and their indices. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - The array of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to transform the pairs of the input elements. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - The array of transformed elements. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - The function to transform elements of the array. - The input array. - The array of transformed elements. - - - Returns the length of an array. You can also use property arr.Length. - The input array. - The length of the array. - - - Applies the given function to pair of elements drawn from matching indices in two arrays, - also passing the index of the elements. The two arrays must have the same lengths, - otherwise an ArgumentException is raised. - The function to apply to each index and pair of elements. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - - - Applies the given function to each element of the array. The integer passed to the - function indicates the index of element. - The function to apply to each index and element. - The input array. - - - Applies the given function to pair of elements drawn from matching indices in two arrays. The - two arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to apply. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - - - Applies the given function to each element of the array. - The function to apply. - The input array. - - - Returns true if the given array is empty, otherwise false. - The input array. - True if the array is empty. - - - Creates an array where the entries are initially the default value Unchecked.defaultof<'T>. - The length of the array to create. - The created array. - - - Creates an array given the dimension and a generator function to compute the elements. - The number of elements to initialize. - The function to generate the initial values for each index. - The created array. - - - Gets an element from an array. - The input array. - The input index. - The value of the array at the given index. - - - Apply a function to pairs of elements drawn from the two collections, right-to-left, - threading an accumulator argument through the computation. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to update the state given the input elements. - The first input array. - The second input array. - The initial state. - Thrown when the input arrays differ in length. - The final state. - - - Applies a function to pairs of elements drawn from the two collections, - left-to-right, threading an accumulator argument - through the computation. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to update the state given the input elements. - The initial state. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - The final state. - - - Applies a function to each element of the array, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f i0 (...(f iN s)) - The function to update the state given the input elements. - The input array. - The initial state. - The final state. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f (... (f s i0)...) iN - The function to update the state given the input elements. - The initial state. - The input array. - The final state. - - - Tests if all corresponding elements of the array satisfy the given predicate pairwise. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns false then the overall result is - false and no further elements are tested. Otherwise, if one collection is longer - than the other then the ArgumentException exception is raised. - Otherwise, true is returned. - The function to test the input elements. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - True if all of the array elements satisfy the predicate. - - - Tests if all elements of the array satisfy the given predicate. - - The predicate is applied to the elements of the input collection. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - The function to test the input elements. - The input array. - True if all of the array elements satisfy the predicate. - - - Returns the index of the first element in the array - that satisfies the given predicate. Raise KeyNotFoundException if - none of the elements satisy the predicate. - The function to test the input elements. - The input array. - Thrown if predicate - never returns true. - The index of the first element in the array that satisfies the given predicate. - - - Returns the first element for which the given function returns 'true'. - Raise KeyNotFoundException if no such element exists. - The function to test the input elements. - The input array. - Thrown if predicate - never returns true. - The first element for which predicate returns true. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". - The function to test the input elements. - The input array. - An array containing the elements for which the given predicate returns true. - - - Tests if any pair of corresponding elements of the arrays satisfies the given predicate. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, if one collections is longer - than the other then the ArgumentException exception is raised. - Otherwise, false is returned. - The function to test the input elements. - The first input array. - The second input array. - True if any result from predicate is true. - - - Tests if any element of the array satisfies the given predicate. - - The predicate is applied to the elements of the input array. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - The function to test the input elements. - The input array. - True if any result from predicate is true. - - - Returns an empty array of the given type. - - - Applies the given function to each element of the array. Returns - the array comprised of the results "x" for each element where - the function returns Some(x) - The function to generate options from the elements. - The input array. - The array of results. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If the function - never returns Some(x) then KeyNotFoundException is raised. - The function to generate options from the elements. - The input array. - Thrown if every result from - chooser is None. - The first result. - - - Fills a range of elements of the array with the given value. - The target array. - The index of the first element to set. - The number of elements to set. - The value to set. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If the function - never returns Some(x) then None is returned. - The function to transform the array elements into options. - The input array. - The first transformed element that is Some(x). - - - Creates an array whose elements are all initially the given value. - The length of the array to create. - The value for the elements. - The created array. - - - Builds a new array that contains the elements of the given array. - The input array. - A copy of the input array. - - - Builds a new array that contains the elements of each of the given sequence of arrays. - The input sequence of arrays. - The concatenation of the sequence of input arrays. - - - For each element of the array, applies the given function. Concatenates all the results and return the combined array. - The function to create sub-arrays from the input array elements. - The input array. - The concatenation of the sub-arrays. - - - Reads a range of elements from the first array and write them into the second. - The source array. - The starting index of the source array. - The target array. - The starting index of the target array. - The number of elements to copy. - - - Returns the average of the elements generated by applying the function to each element of the array. - The function to transform the array elements before averaging. - The input array. - Thrown when array is empty. - The computed average. - - - Returns the average of the elements in the array. - The input array. - Thrown when array is empty. - The average of the elements in the array. - - - Builds a new array that contains the elements of the first array followed by the elements of the second array. - The first input array. - The second input array. - The resulting array. - - - Split the collection into two collections, containing the - elements for which the given predicate returns "true" and "false" - respectively - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to indicies is not specified. - The function to test the input elements. - The input array. - 'T[] * 'T[] - - - Create an array given the dimension and a generator function to compute the elements. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to indicies is not specified. - - - 'T[] - - - Apply the given function to each element of the array. The integer passed to the - function indicates the index of element. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - - - Apply the given function to each element of the array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - - - Build a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer index passed to the - function indicates the index of element being transformed. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - - - Build a new array whose elements are the results of applying the given function - to each of the elements of the array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - - - For each element of the array, apply the given function. Concatenate all the results and return the combined array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - - - Apply the given function to each element of the array. Return - the array comprised of the results "x" for each element where - the function returns Some(x). - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - The function to generate options from the elements. - The input array. - 'U[] - - - Provides parallel operations on arrays - - - Basic operations on arrays. - - - Compare using the given comparer function. - A function to compare two values. - An object implementing IComparer using the supplied comparer. - - - Structural comparison. Compare using Operators.compare. - - - Common notions of comparison identity used with sorted data structures. - - - Hash using the given hashing and equality functions. - A function to generate a hash code from a value. - A function to test equality of two values. - An object implementing IEqualityComparer using the supplied functions. - - - Physical hashing (hash on reference identity of objects, and the contents of value types). - Hash using LanguagePrimitives.PhysicalEquality and LanguagePrimitives.PhysicalHash, - That is, for value types use GetHashCode and Object.Equals (if no other optimization available), - and for reference types use System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode and - reference equality. - - - - - - Structural hashing. Hash using Operators.(=) and Operators.hash. - - - Common notions of value identity used with hash tables. - - - Combines the three lists into a list of triples. The lists must have equal lengths. - The first input list. - The second input list. - The third input list. - A single list containing triples of matching elements from the input lists. - - - Combines the two lists into a list of pairs. The two lists must have equal lengths. - The first input list. - The second input list. - A single list containing pairs of matching elements from the input lists. - - - Splits a list of triples into three lists. - The input list. - Three lists of split elements. - - - Splits a list of pairs into two lists. - The input list. - Two lists of split elements. - - - Returns the index of the first element in the list - that satisfies the given predicate. - Return None if no such element exists. - The function to test the input elements. - The input list. - The index of the first element for which the predicate returns true, or None if - every element evaluates to false. - - - Returns the first element for which the given function returns true.. - Return None if no such element exists. - The function to test the input elements. - The input list. - The first element for which the predicate returns true, or None if - every element evaluates to false. - - - Applies the given function to successive elements, returning Some(x) the first - result where function returns Some(x) for some x. If no such element - exists then return None. - The function to generate options from the elements. - The input list. - The first resulting value or None. - - - Views the given list as a sequence. - The input list. - The sequence of elements in the list. - - - Builds an array from the given list. - The input list. - The array containing the elements of the list. - - - - - - Returns the sum of the results generated by applying the function to each element of the list. - The function to transform the list elements into the type to be summed. - The input list. - The resulting sum. - - - Returns the sum of the elements in the list. - The input list. - The resulting sum. - - - Sorts the given list using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The input list. - The sorted list. - - - Sorts the given list using keys given by the given projection. Keys are compared using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The function to transform the list elements into the type to be compared. - The input list. - The sorted list. - - - Sorts the given list using the given comparison function. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The function to compare the list elements. - The input list. - The sorted list. - - - Like foldBack, but returns both the intermediary and final results - The function to update the state given the input elements. - The input list. - The initial state. - The list of states. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. Take the second argument, and apply the function to it - and the first element of the list. Then feed this result into the function along - with the second element and so on. Returns the list of intermediate results and the final result. - The function to update the state given the input elements. - The initial state. - The input list. - The list of states. - - - Returns a new list with the elements in reverse order. - The input list. - The reversed list. - - - Creates a list by calling the given generator on each index. - The number of elements to replicate. - The value to replicate - The generated list. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f i0 (...(f iN-1 iN)). - - Raises System.ArgumentException if list is empty - The function to reduce two list elements to a single element. - The input list. - Thrown when the list is empty. - The final reduced value. - - - Apply a function to each element of the collection, threading an accumulator argument - through the computation. Apply the function to the first two elements of the list. - Then feed this result into the function along with the third element and so on. - Return the final result. If the input function is f and the elements are i0...iN then computes - f (... (f i0 i1) i2 ...) iN. - - Raises System.ArgumentException if list is empty - The function to reduce two list elements to a single element. - The input list. - Thrown when the list is empty. - The final reduced value. - - - Returns a list with all elements permuted according to the - specified permutation. - The function to map input indices to output indices. - The input list. - The permutated list. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If no such - element exists then raise System.Collections.Generic.KeyNotFoundException - The function to generate options from the elements. - The input list. - Thrown when the list is empty. - The first resulting value. - - - Splits the collection into two collections, containing the - elements for which the given predicate returns true and false - respectively. - The function to test the input elements. - The input list. - A list containing the elements for which the predicate evaluated to false and a list - containing the elements for which the predicate evaluated to true. - - - Builds a new list from the given enumerable object. - The input sequence. - The list of elements from the sequence. - - - Builds a list from the given array. - The input array. - The list of elements from the array. - - - Indexes into the list. The first element has index 0. - The input list. - The index to retrieve. - The value at the given index. - - - Returns the lowest of all elements of the list, compared via Operators.min on the function result - - Raises System.ArgumentException if list is empty. - The function to transform list elements into the type to be compared. - The input list. - Thrown when the list is empty. - The minimum value. - - - Returns the lowest of all elements of the list, compared via Operators.min. - - Raises System.ArgumentException if list is empty - The input list. - Thrown when the list is empty. - The minimum value. - - - Returns the greatest of all elements of the list, compared via Operators.max on the function result. - - Raises System.ArgumentException if list is empty. - The function to transform the list elements into the type to be compared. - The input list. - Thrown when the list is empty. - The maximum element. - - - Return the greatest of all elements of the list, compared via Operators.max. - - Raises System.ArgumentException if list is empty - The input list. - Thrown when the list is empty. - The maximum element. - - - Like mapi, but mapping corresponding elements from two lists of equal length. - The function to transform pairs of elements from the two lists and their index. - The first input list. - The second input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The integer index passed to the - function indicates the index (from 0) of element being transformed. - The function to transform elements and their indices. - The input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the three collections simultaneously. - The function to transform triples of elements from the input lists. - The first input list. - The second input list. - The third input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. - The function to transform pairs of elements from the input lists. - The first input list. - The second input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - The function to transform elements from the input list. - The input list. - The list of transformed elements. - - - Returns the length of the list. - The input list. - The length of the list. - - - Applies the given function to two collections simultaneously. The - collections must have identical size. The integer passed to the - function indicates the index of element. - The function to apply to a pair of elements from the input lists along with their index. - The first input list. - The second input list. - - - Applies the given function to each element of the collection. The integer passed to the - function indicates the index of element. - The function to apply to the elements of the list along with their index. - The input list. - - - Applies the given function to two collections simultaneously. The - collections must have identical size. - The function to apply to pairs of elements from the input lists. - The first input list. - The second input list. - - - Applies the given function to each element of the collection. - The function to apply to elements from the input list. - The input list. - - - Returns true if the list contains no elements, false otherwise. - The input list. - True if the list is empty. - - - Creates a list by calling the given generator on each index. - The length of the list to generate. - The function to generate an element from an index. - The list of generated elements. - - - Returns the first element of the list. - - Raises System.ArgumentException if list is empty - The input list. - Thrown when the list is empty. - The first element of the list. - - - Tests if all corresponding elements of the collection satisfy the given predicate pairwise. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns false then the overall result is - false and no further elements are tested. Otherwise, if one collection is longer - than the other then the System.ArgumentException exception is raised. - Otherwise, true is returned. - The function to test the input elements. - The first input list. - The second input list. - Thrown when the input lists differ in length. - True if all of the pairs of elements satisfy the predicate. - - - Tests if all elements of the collection satisfy the given predicate. - - The predicate is applied to the elements of the input list. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - The function to test the input elements. - The input list. - True if all of the elements satisfy the predicate. - - - Applies a function to corresponding elements of two collections, threading an accumulator argument - through the computation. The collections must have identical sizes. - If the input function is f and the elements are i0...iN and j0...jN - then computes f i0 j0 (...(f iN jN s)). - The function to update the state given the input elements. - The first input list. - The second input list. - The initial state. - The final state value. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then - computes f i0 (...(f iN s)). - The function to update the state given the input elements. - The input list. - The initial state. - The final state value. - - - Applies a function to corresponding elements of two collections, threading an accumulator argument - through the computation. The collections must have identical sizes. - If the input function is f and the elements are i0...iN and j0...jN - then computes f (... (f s i0 j0)...) iN jN. - The function to update the state given the input elements. - The initial state. - The first input list. - The second input list. - The final state value. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. Take the second argument, and apply the function to it - and the first element of the list. Then feed this result into the function along - with the second element and so on. Return the final result. - If the input function is f and the elements are i0...iN then - computes f (... (f s i0) i1 ...) iN. - The function to update the state given the input elements. - The initial state. - The input list. - The final state value. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true" - The function to test the input elements. - The input list. - A list containing only the elements that satisfy the predicate. - - - Returns the index of the first element in the list - that satisfies the given predicate. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for all the - elements of the list. - The index of the first element that satisfies the predicate. - - - Returns the first element for which the given function returns true. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for - all the elements of the list. - The first element that satisfies the predicate. - - - Tests if any pair of corresponding elements of the lists satisfies the given predicate. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, if one collections is longer - than the other then the System.ArgumentException exception is raised. - Otherwise, false is returned. - The function to test the input elements. - The first input list. - The second input list. - Thrown when the input lists differ in length. - True if any pair of elements satisfy the predicate. - - - Tests if any element of the list satisfies the given predicate. - - The predicate is applied to the elements of the input list. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - The function to test the input elements. - The input list. - True if any element satisfies the predicate. - - - Returns an empty list of the given type. - - - Returns a new list that contains the elements of each the lists in order. - The input sequence of lists. - The resulting concatenated list. - - - For each element of the list, applies the given function. Concatenates all the results and return the combined list. - The function to transform each input element into a sublist to be concatenated. - The input list. - The concatenation of the transformed sublists. - - - Applies the given function to each element of the list. Returns - the list comprised of the results x for each element where - the function returns Some(x) - The function to generate options from the elements. - The input list. - The list comprising the values selected from the chooser function. - - - Returns the average of the elements generated by applying the function to each element of the list. - - Raises System.ArgumentException if list is empty. - The function to transform the list elements into the type to be averaged. - The input list. - Thrown when the list is empty. - The resulting average. - - - Returns the average of the elements in the list. - - Raises System.ArgumentException if list is empty. - The input list. - Thrown when the list is empty. - The resulting average. - - - Returns a new list that contains the elements of the first list - followed by elements of the second. - The first input list. - The second input list. - The resulting list. - - - Basic operations on lists. - - - Returns the key of the first mapping in the collection that satisfies the given predicate. - Returns 'None' if no such element exists. - The function to test the input elements. - The input map. - The first key for which the predicate returns true or None if the predicate evaluates to false for each key/value pair. - - - Evaluates the function on each mapping in the collection. Returns the key for the first mapping - where the function returns 'true'. Raise KeyNotFoundException if no such element exists. - The function to test the input elements. - The input map. - Thrown if the key does not exist in the map. - The first key for which the predicate evaluates true. - - - Lookup an element in the map, returning a Some value if the element is in the domain - of the map and None if not. - The input key. - The input map. - The found Some value or None. - - - Removes an element from the domain of the map. No exception is raised if the element is not present. - The input key. - The input map. - The resulting map. - - - Builds two new maps, one containing the bindings for which the given predicate returns 'true', - and the other the remaining bindings. - The function to test the input elements. - The input map. - A pair of maps in which the first contains the elements for which the predicate returned true - and the second containing the elements for which the predicated returned false. - - - Tests if an element is in the domain of the map. - The input key. - The input map. - True if the map contains the key. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The key passed to the - function indicates the key of element being transformed. - The function to transform the key/value pairs. - The input map. - The resulting map of keys and transformed values. - - - Returns true if the given predicate returns true for all of the - bindings in the map. - The function to test the input elements. - The input map. - True if the predicate evaluates to true for all of the bindings in the map. - - - Builds a new map containing only the bindings for which the given predicate returns 'true'. - The function to test the key/value pairs. - The input map. - The filtered map. - - - Returns true if the given predicate returns true for one of the - bindings in the map. - The function to test the input elements. - The input map. - True if the predicate returns true for one of the key/value pairs. - - - Applies the given function to each binding in the dictionary - The function to apply to each key/value pair. - The input map. - - - Folds over the bindings in the map - The function to update the state given the input key/value pairs. - The initial state. - The input map. - The final state value. - - - Folds over the bindings in the map. - The function to update the state given the input key/value pairs. - The input map. - The initial state. - The final state value. - - - Searches the map looking for the first element where the given function returns a Some value - The function to generate options from the key/value pairs. - The input map. - The first result. - - - Searches the map looking for the first element where the given function returns a Some value. - The function to generate options from the key/value pairs. - The input map. - The first result. - - - Lookup an element in the map, raising KeyNotFoundException if no binding - exists in the map. - The input key. - The input map. - Thrown when the key does not exist in the map. - The value mapped to the given key. - - - The empty map. - - - Is the map empty? - The input map. - True if the map is empty. - - - Returns an array of all key-value pairs in the mapping. - The array will be ordered by the keys of the map. - The input map. - The array of key/value pairs. - - - Returns a list of all key-value pairs in the mapping. - The list will be ordered by the keys of the map. - The input map. - The list of key/value pairs. - - - Views the collection as an enumerable sequence of pairs. - The sequence will be ordered by the keys of the map. - The input map. - The sequence of key/value pairs. - - - Returns a new map made from the given bindings. - The input sequence of key/value pairs. - The resulting map. - - - Returns a new map made from the given bindings. - The input array of key/value pairs. - The resulting map. - - - Returns a new map made from the given bindings. - The input list of key/value pairs. - The resulting map. - - - Returns a new map with the binding added to the given map. - The input key. - The input value. - The input map. - The resulting map. - - - Functional programming operators related to the Map<_,_> type. - - - Combines the three sequences into a list of triples. The sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequences are ignored. - - The first input sequence. - The second input sequence. - The third input sequence. - - The result sequence. - - Thrown when any of the input sequences is null. - - - Combines the two sequences into a list of pairs. The two sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequence are ignored. - - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Returns a sequence that yields sliding windows of containing elements drawn from the input - sequence. Each window is returned as a fresh array. - - The number of elements in each window. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns a sequence that contains the elements generated by the given computation. - The given initial state argument is passed to the element generator. - For each IEnumerator elements in the stream are generated on-demand by applying the element - generator, until a None value is returned by the element generator. Each call to the element - generator returns a new residual state. - - The stream will be recomputed each time an IEnumerator is requested and iterated for the Seq. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function that takes in the current state and returns an option tuple of the next - element of the sequence and the next state value. - The initial state value. - - The result sequence. - - - Returns a sequence that when enumerated returns at most N elements. - - The maximum number of items to enumerate. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to successive elements, returning the first - result where the function returns "Some(x)". - - A function that transforms items from the input sequence into options. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the index of the first element in the sequence - that satisfies the given predicate. Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the first element for which the given function returns true. - Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Builds a list from the given collection. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Builds an array from the given collection. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that, when iterated, yields elements of the underlying sequence while the - given predicate returns true, and then returns no further elements. - - A function that evaluates to false when no more items should be returned. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the first N elements of the sequence. - Throws InvalidOperationException - if the count exceeds the number of elements in the sequence. Seq.truncate - returns as many items as the sequence contains instead of throwing an exception. - - The number of items to take. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - Thrown when count exceeds the number of elements - in the sequence. - - - Returns the sum of the results generated by applying the function to each element of the sequence. - The generated elements are summed using the + operator and Zero property associated with the generated type. - - A function to transform items from the input sequence into the type that will be summed. - The input sequence. - - The result sequence. - - - Returns the sum of the elements in the sequence. - - The elements are summed using the + operator and Zero property associated with the generated type. - - The input sequence. - - The result sequence. - - - Applies a key-generating function to each element of a sequence and yield a sequence ordered - by keys. The keys are compared using generic comparison as implemented by Operators.compare. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - A function to transform items of the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Yields a sequence ordered by keys. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that, when iterated, skips elements of the underlying sequence while the - given predicate returns true, and then yields the remaining elements of the sequence. - - A function that evaluates an element of the sequence to a boolean value. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that skips N elements of the underlying sequence and then yields the - remaining elements of the sequence. - - The number of items to skip. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when count exceeds the number of elements - in the sequence. - - - Returns a sequence that yields one item only. - - The input item. - - The result sequence. - - - Like fold, but computes on-demand and returns the sequence of intermediary and final results. - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies a function to each element of the sequence, threading an accumulator argument - through the computation. Begin by applying the function to the first two elements. - Then feed this result into the function along with the third element and so on. - Return the final result. - - A function that takes in the current accumulated result and the next - element of the sequence to produce the next accumulated result. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Builds a new sequence object that delegates to the given sequence object. This ensures - the original sequence cannot be rediscovered and mutated by a type cast. For example, - if given an array the returned sequence will return the elements of the array, but - you cannot cast the returned sequence object to an array. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to successive elements, returning the first - x where the function returns "Some(x)". - - A function to transform each item of the input sequence into an option of the output type. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when every item of the sequence - evaluates to None when the given function is applied. - - - Returns a sequence of each element in the input sequence and its predecessor, with the - exception of the first element which is only returned as the predecessor of the second element. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Views the given list as a sequence. - - The input list. - - The result sequence. - - - Views the given array as a sequence. - - The input array. - - The result sequence. - - Thrown when the input sequence is null. - - - Computes the nth element in the collection. - - The index of element to retrieve. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the lowest of all elements of the sequence, compared via Operators.min on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the lowest of all elements of the sequence, compared via Operators.min. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the greatest of all elements of the sequence, compared via Operators.max on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the greatest of all elements of the sequence, compared via Operators.max - - The input sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - The result sequence. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The integer index passed to the - function indicates the index (from 0) of element being transformed. - - A function to transform items from the input sequence that also supplies the current index. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to transform pairs of items from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The given function will be applied - as elements are demanded using the MoveNext method on enumerators retrieved from the - object. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function to transform items from the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the length of the sequence - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to two collections simultaneously. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to apply to each pair of elements from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Applies the given function to each element of the collection. The integer passed to the - function indicates the index of element. - - A function to apply to each element of the sequence that can also access the current index. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to each element of the collection. - - A function to apply to each element of the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Generates a new sequence which, when iterated, will return successive - elements by calling the given function. The results of calling the function - will not be saved, that is the function will be reapplied as necessary to - regenerate the elements. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - Iteration can continue up to Int32.MaxValue. - - A function that generates an item in the sequence from a given index. - - The result sequence. - - - Generates a new sequence which, when iterated, will return successive - elements by calling the given function, up to the given count. The results of calling the function - will not be saved, that is the function will be reapplied as necessary to - regenerate the elements. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The maximum number of items to generate for the sequence. - A function that generates an item in the sequence from a given index. - - The result sequence. - - Thrown when count is negative. - - - Returns true if the sequence contains no elements, false otherwise. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the first element of the sequence. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input does not have any elements. - - - Applies a key-generating function to each element of a sequence and yields a sequence of - unique keys. Each unique key has also contains a sequence of all elements that match - to this key. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function that transforms an element of the sequence into a comparable key. - The input sequence. - - The result sequence. - - - Tests the all pairs of elements drawn from the two sequences satisfy the - given predicate. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test pairs of elements from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Tests if all elements of the sequence satisfy the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - - A function to test an element of the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f (... (f s i0)...) iN - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the index of the first element for which the given function returns true. - - A function to test whether the index of a particular element should be returned. - The input sequence. - - The result sequence. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns the first element for which the given function returns true. - - A function to test whether an item in the sequence should be returned. - The input sequence. - - The result sequence. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to test whether each item in the input sequence should be included in the output. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Tests if any pair of corresponding elements of the input sequences satisfies the given predicate. - - The predicate is applied to matching elements in the two sequences up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, false is returned. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test each pair of items from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the two input sequences is null. - - - Tests if any element of the sequence satisfies the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - - A function to test each item of the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Creates an empty sequence. - - The result sequence. - - - Returns a sequence that contains no duplicate entries according to the - generic hash and equality comparisons on the keys returned by the given key-generating function. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - A function transforming the sequence items into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that contains no duplicate entries according to generic hash and - equality comparisons on the entries. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that is built from the given delayed specification of a - sequence. - - The input function is evaluated each time an IEnumerator for the sequence - is requested. - - The generating function for the sequence. - - - Applies a key-generating function to each element of a sequence and return a sequence yielding unique - keys and their number of occurrences in the original sequence. - - Note that this function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function transforming each item of input sequence into a key to be - compared against the others. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Combines the given enumeration-of-enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input enumeration-of-enumerations. - - The result sequence. - - Thrown when the input sequence is null. - - - Compares two sequences using the given comparison function, element by element. - Returns the first non-zero result from the comparison function. If the end of a sequence - is reached it returns a -1 if the first sequence is shorter and a 1 if the second sequence - is shorter. - - A function that takes an element from each sequence and returns an int. - If it evaluates to a non-zero value iteration is stopped and that value is returned. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences - is null. - - - Applies the given function to each element of the sequence and concatenates all the - results. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to transform elements of the input sequence into the sequences - that will then be concatenated. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to each element of the list. Return - the list comprised of the results "x" for each element where - the function returns Some(x). - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not - be accessed concurrently. - - A function to transform items of type T into options of type U. - The input sequence of type T. - - The result sequence. - - Thrown when the input sequence is null. - - - Wraps a loosely-typed System.Collections sequence as a typed sequence. - - The use of this function usually requires a type annotation. - An incorrect type annotation may result in runtime type - errors. - Individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that corresponds to a cached version of the input sequence. - This result sequence will have the same elements as the input sequence. The result - can be enumerated multiple times. The input sequence will be enumerated at most - once and only as far as is necessary. Caching a sequence is typically useful when repeatedly - evaluating items in the original sequence is computationally expensive or if - iterating the sequence causes side-effects that the user does not want to be - repeated multiple times. - - Enumeration of the result sequence is thread safe in the sense that multiple independent IEnumerator - values may be used simultaneously from different threads (accesses to - the internal lookaside table are thread safe). Each individual IEnumerator - is not typically thread safe and should not be accessed concurrently. - - Once enumeration of the input sequence has started, - it's enumerator will be kept live by this object until the enumeration has completed. - At that point, the enumerator will be disposed. - - The enumerator may be disposed and underlying cache storage released by - converting the returned sequence object to type IDisposable, and calling the Dispose method - on this object. The sequence object may then be re-enumerated and a fresh enumerator will - be used. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the average of the results generated by applying the function to each element - of the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the generated type. - - A function applied to transform each element of the sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Returns the average of the elements in the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the element type. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Wraps the two given enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed - concurrently. - - The first sequence. - The second sequence. - - The result sequence. - - Thrown when either of the two provided sequences is - null. - - - Basic operations on IEnumerables. - - - Returns a new set with the elements of the second set removed from the first. - The first input set. - The set whose elements will be removed from set1. - The set with the elements of set2 removed from set1. - - - Builds a new collection from the given enumerable object. - The input sequence. - The set containing elements. - - - Returns an ordered view of the collection as an enumerable object. - The input set. - An ordered sequence of the elements of set. - - - Builds an array that contains the elements of the set in order. - The input set. - An ordered array of the elements of set. - - - Builds a set that contains the same elements as the given array. - The input array. - A set containing the elements of array. - - - Builds a list that contains the elements of the set in order. - The input set. - An ordered list of the elements of set. - - - Builds a set that contains the same elements as the given list. - The input list. - A set containing the elements form the input list. - - - Returns the highest element in the set according to the ordering being used for the set. - The input set. - The max value from the set. - - - Returns the lowest element in the set according to the ordering being used for the set. - The input set. - The min value from the set. - - - Returns a new set with the given element removed. No exception is raised if - the set doesn't contain the given element. - The element to remove. - The input set. - The input set with value removed. - - - Splits the set into two sets containing the elements for which the given predicate - returns true and false respectively. - The function to test set elements. - The input set. - A pair of sets with the first containing the elements for which predicate returns - true and the second containing the elements for which predicate returns false. - - - Applies the given function to each element of the set, in order according - to the comparison function. - The function to apply to each element. - The input set. - - - Returns "true" if the set is empty. - The input set. - True if set is empty. - - - Computes the union of a sequence of sets. - The sequence of sets to untion. - The union of the input sets. - - - Computes the union of the two sets. - The first input set. - The second input set. - The union of set1 and set2. - - - Computes the intersection of a sequence of sets. The sequence must be non-empty. - The sequence of sets to intersect. - The intersection of the input sets. - - - Computes the intersection of the two sets. - The first input set. - The second input set. - The intersection of set1 and set2. - - - Tests if all elements of the collection satisfy the given predicate. - If the input function is f and the elements are i0...iN and "j0...jN" - then computes p i0 && ... && p iN. - The function to test set elements. - The input set. - True if all elements of set satisfy predicate. - - - Applies the given accumulating function to all the elements of the set. - The accumulating function. - The input set. - The initial state. - The final state. - - - Applies the given accumulating function to all the elements of the set - The accumulating function. - The initial state. - The input set. - The final state. - - - Returns a new collection containing the results of applying the - given function to each element of the input set. - The function to transform elements of the input set. - The input set. - A set containing the transformed elements. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns true. - The function to test set elements. - The input set. - The set containing only the elements for which predicate returns true. - - - Tests if any element of the collection satisfies the given predicate. - If the input function is predicate and the elements are i0...iN - then computes p i0 or ... or p iN. - The function to test set elements. - The input set. - True if any element of set satisfies predicate. - - - Returns the number of elements in the set. Same as size. - The input set. - The number of elements in the set. - - - Evaluates to "true" if all elements of the second set are in the first, and at least - one element of the first is not in the second. - The potential superset. - The set to test against. - True if set1 is a proper superset of set2. - - - Evaluates to "true" if all elements of the second set are in the first. - The potential superset. - The set to test against. - True if set1 is a superset of set2. - - - Evaluates to "true" if all elements of the first set are in the second, and at least - one element of the second is not in the first. - The potential subset. - The set to test against. - True if set1 is a proper subset of set2. - - - Evaluates to "true" if all elements of the first set are in the second - The potential subset. - The set to test against. - True if set1 is a subset of set2. - - - Evaluates to "true" if the given element is in the given set. - The element to test. - The input set. - True if element is in set. - - - Returns a new set with an element added to the set. No exception is raised if - the set already contains the given element. - The value to add. - The input set. - A new set containing value. - - - The set containing the given element. - The value for the set to contain. - The set containing value. - - - The empty set for the type 'T. - - - Functional programming operators related to the Set<_> type. - - - Gets the default cancellation token for executing asynchronous computations. - The default CancellationToken. - - - Creates an asynchronous computation that returns the CancellationToken governing the execution - of the computation. - In async { let! token = Async.CancellationToken ...} token can be used to initiate other - asynchronous operations that will cancel cooperatively with this workflow. - An asynchronous computation capable of retrieving the CancellationToken from a computation - expression. - - - Creates an asynchronous computation that executes computation. - If this computation is cancelled before it completes then the computation generated by - running compensation is executed. - The input asynchronous computation. - The function to be run if the computation is cancelled. - An asynchronous computation that runs the compensation if the input computation - is cancelled. - - - Creates an asynchronous computation that queues a work item that runs - its continuation. - A computation that generates a new work item in the thread pool. - - - Creates an asynchronous computation that creates a new thread and runs - its continuation in that thread. - A computation that will execute on a new thread. - - - Creates an asynchronous computation that runs - its continuation using syncContext.Post. If syncContext is null - then the asynchronous computation is equivalent to SwitchToThreadPool(). - The synchronization context to accept the posted computation. - An asynchronous computation that uses the syncContext context to execute. - - - Runs an asynchronous computation, starting immediately on the current operating system - thread. Call one of the three continuations when the operation completes. - If no cancellation token is provided then the default cancellation token - is used. - The asynchronous computation to execute. - The function called on success. - The function called on exception. - The function called on cancellation. - The CancellationToken to associate with the computation. - The default is used if this parameter is not provided. - - - Runs an asynchronous computation, starting immediately on the current operating system - thread. - If no cancellation token is provided then the default cancellation token is used. - The asynchronous computation to execute. - The CancellationToken to associate with the computation. - The default is used if this parameter is not provided. - - - - Creates an asynchronous computation which starts the given computation as a <c>System.Threading.Tasks.Task</c> - - - - Starts a child computation within an asynchronous workflow. - This allows multiple asynchronous computations to be executed simultaneously. - - This method should normally be used as the immediate - right-hand-side of a let! binding in an F# asynchronous workflow, that is, - - async { ... - let! completor1 = childComputation1 |> Async.StartChild - let! completor2 = childComputation2 |> Async.StartChild - ... - let! result1 = completor1 - let! result2 = completor2 - ... } - - When used in this way, each use of StartChild starts an instance of childComputation - and returns a completor object representing a computation to wait for the completion of the operation. - When executed, the completor awaits the completion of childComputation. - The child computation. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - A new computation that waits for the input computation to finish. - - - - Executes a computation in the thread pool. Returns a <c>System.Threading.Tasks.Task</c> that will be completed - in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled) - - If no cancellation token is provided then the default cancellation token is used. - - - - Starts the asynchronous computation in the thread pool. Do not await its result. - - If no cancellation token is provided then the default cancellation token is used. - The computation to run asynchronously. - The cancellation token to be associated with the computation. - If one is not supplied, the default cancellation token is used. - - - Creates an asynchronous computation that will sleep for the given time. This is scheduled - using a System.Threading.Timer object. The operation will not block operating system threads - for the duration of the wait. - The number of milliseconds to sleep. - An asynchronous computation that will sleep for the given time. - Thrown when the due time is negative - and not infinite. - - - Runs the asynchronous computation and await its result. - - If an exception occurs in the asynchronous computation then an exception is re-raised by this - function. - - If no cancellation token is provided then the default cancellation token is used. - - The timeout parameter is given in milliseconds. A value of -1 is equivalent to - System.Threading.Timeout.Infinite. - The computation to run. - The amount of time in milliseconds to wait for the result of the - computation before raising a System.TimeoutException. If no value is provided - for timeout then a default of -1 is used to correspond to System.Threading.Timeout.Infinite. - The cancellation token to be associated with the computation. - If one is not supplied, the default cancellation token is used. - The result of the computation. - - - Creates an asynchronous computation that executes all the given asynchronous computations, - initially queueing each as work items and using a fork/join pattern. - - If all child computations succeed, an array of results is passed to the success continuation. - - If any child computation raises an exception, then the overall computation will trigger an - exception, and cancel the others. - - The overall computation will respond to cancellation while executing the child computations. - If cancelled, the computation will cancel any remaining child computations but will still wait - for the other child computations to complete. - A sequence of distinct computations to be parallelized. - A computation that returns an array of values from the sequence of input computations. - - - Generates a scoped, cooperative cancellation handler for use within an asynchronous workflow. - - For example, - async { use! holder = Async.OnCancel interruption ... } - generates an asynchronous computation where, if a cancellation happens any time during - the execution of the asynchronous computation in the scope of holder, then action - interruption is executed on the thread that is performing the cancellation. This can - be used to arrange for a computation to be asynchronously notified that a cancellation - has occurred, e.g. by setting a flag, or deregistering a pending I/O action. - The function that is executed on the thread performing the - cancellation. - An asynchronous computation that triggers the interruption if it is cancelled - before being disposed. - - - Creates an asynchronous computation that runs the given computation and ignores - its result. - The input computation. - A computation that is equivalent to the input computation, but disregards the result. - - - Creates an asynchronous computation that captures the current - success, exception and cancellation continuations. The callback must - eventually call exactly one of the given continuations. - The function that accepts the current success, exception, and cancellation - continuations. - An asynchronous computation that provides the callback with the current continuations. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by three arguments. For example, - Async.FromBeginEnd(arg1,arg2,arg3,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The first argument for the operation. - The second argument for the operation. - The third argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by two arguments. For example, - Async.FromBeginEnd(arg1,arg2,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The first argument for the operation. - The second argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by one argument. For example, - Async.FromBeginEnd(place,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. For example, - Async.FromBeginEnd(ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation that executes computation. - If this computation completes successfully then return Choice1Of2 with the returned - value. If this computation raises an exception before it completes then return Choice2Of2 - with the raised exception. - The input computation that returns the type T. - A computation that returns a choice of type T or exception. - - - Raises the cancellation condition for the most recent set of asynchronous computations started - without any specific CancellationToken. Replaces the global CancellationTokenSource with a new - global token source for any asynchronous computations created after this point without any - specific CancellationToken. - - - Creates an asynchronous computation that will wait on the given WaitHandle. - - The computation returns true if the handle indicated a result within the given timeout. - The WaitHandle that can be signalled. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - An asynchronous computation that waits on the given WaitHandle. - - - - Return an asynchronous computation that will wait for the given task to complete and return - its result. - - - - Creates an asynchronous computation that will wait on the IAsyncResult. - - The computation returns true if the handle indicated a result within the given timeout. - The IAsyncResult to wait on. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - An asynchronous computation that waits on the given IAsyncResult. - - - Creates an asynchronous computation that waits for a single invocation of a CLI - event by adding a handler to the event. Once the computation completes or is - cancelled, the handler is removed from the event. - - The computation will respond to cancellation while waiting for the event. If a - cancellation occurs, and cancelAction is specified, then it is executed, and - the computation continues to wait for the event. - - If cancelAction is not specified, then cancellation causes the computation - to cancel immediately. - The event to handle once. - An optional function to execute instead of cancelling when a - cancellation is issued. - An asynchronous computation that waits for the event to be invoked. - - - Creates three functions that can be used to implement the .NET Asynchronous - Programming Model (APM) for a given asynchronous computation. - - The functions should normally be published as members with prefix Begin, - End and Cancel, and can be used within a type definition as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg -> computation) - member x.BeginSomeOperation(arg,callback,state:obj) = beginAction(arg,callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - If the asynchronous computation takes no arguments, then AsBeginEnd is used as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun () -> computation) - member x.BeginSomeOperation(callback,state:obj) = beginAction((),callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - - If the asynchronous computation takes two arguments, then AsBeginEnd is used as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg1 arg2 -> computation) - member x.BeginSomeOperation(arg1,arg2,callback,state:obj) = beginAction((),callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - In each case, the resulting API will be familiar to programmers in other CLI languages and - is a useful way to publish asynchronous computations in CLI components. - A function generating the asynchronous computation to split into the traditional - .NET Asynchronous Programming Model. - A tuple of the begin, end, and cancel members. - - - This static class holds members for creating and manipulating asynchronous computations. - - - Creates an asynchronous computation that just returns (). - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of empty else branches in the - async { ... } computation expression syntax. - An asynchronous computation that returns (). - - - Creates an asynchronous computation that runs computation repeatedly - until guard() becomes false. - - A cancellation check is performed whenever the computation is executed. - - The existence of this method permits the use of while in the - async { ... } computation expression syntax. - The function to determine when to stop executing computation. - The function to be executed. Equivalent to the body - of a while expression. - An asynchronous computation that behaves similarly to a while loop when run. - - - Creates an asynchronous computation that runs binder(resource). - The action resource.Dispose() is executed as this computation yields its result - or if the asynchronous computation exits by an exception or by cancellation. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of use and use! in the - async { ... } computation expression syntax. - The resource to be used and disposed. - The function that takes the resource and returns an asynchronous - computation. - An asynchronous computation that binds and eventually disposes resource. - - - Creates an asynchronous computation that runs computation and returns its result. - If an exception happens then catchHandler(exn) is called and the resulting computation executed instead. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of try/with in the - async { ... } computation expression syntax. - The input computation. - The function to run when computation throws an exception. - An asynchronous computation that executes computation and calls catchHandler if an - exception is thrown. - - - Creates an asynchronous computation that runs computation. The action compensation is executed - after computation completes, whether computation exits normally or by an exception. If compensation raises an exception itself - the original exception is discarded and the new exception becomes the overall result of the computation. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of try/finally in the - async { ... } computation expression syntax. - The input computation. - The action to be run after computation completes or raises an - exception (including cancellation). - An asynchronous computation that executes computation and compensation aftewards or - when an exception is raised. - - - Delegates to the input computation. - - The existence of this method permits the use of return! in the - async { ... } computation expression syntax. - The input computation. - The input computation. - - - Creates an asynchronous computation that returns the result v. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of return in the - async { ... } computation expression syntax. - The value to return from the computation. - An asynchronous computation that returns value when executed. - - - Creates an asynchronous computation that enumerates the sequence seq - on demand and runs body for each element. - - A cancellation check is performed on each iteration of the loop. - - The existence of this method permits the use of for in the - async { ... } computation expression syntax. - The sequence to enumerate. - A function to take an item from the sequence and create - an asynchronous computation. Can be seen as the body of the for expression. - An asynchronous computation that will enumerate the sequence and run body - for each element. - - - Creates an asynchronous computation that runs generator. - - A cancellation check is performed when the computation is executed. - The function to run. - An asynchronous computation that runs generator. - - - Creates an asynchronous computation that first runs computation1 - and then runs computation2, returning the result of computation2. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of expression sequencing in the - async { ... } computation expression syntax. - The first part of the sequenced computation. - The second part of the sequenced computation. - An asynchronous computation that runs both of the computations sequentially. - - - Creates an asynchronous computation that runs computation, and when - computation generates a result T, runs binder res. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of let! in the - async { ... } computation expression syntax. - The computation to provide an unbound result. - The function to bind the result of computation. - An asynchronous computation that performs a monadic bind on the result - of computation. - - - - Generate an object used to build asynchronous computations using F# computation expressions. The value - 'async' is a pre-defined instance of this type. - - A cancellation check is performed when the computation is executed. - - - - The type of the async operator, used to build workflows for asynchronous computations. - - - Sends a reply to a PostAndReply message. - The value to send. - - - A handle to a capability to reply to a PostAndReply message. - - - A compositional asynchronous computation, which, when run, will eventually produce a value - of type T, or else raises an exception. - - Asynchronous computations are normally specified using an F# computation expression. - - When run, asynchronous computations have two modes: as a work item (executing synchronous - code), or as a wait item (waiting for an event or I/O completion). - - When run, asynchronous computations can be governed by CancellationToken. This can usually - be specified when the async computation is started. The associated CancellationTokenSource - may be used to cancel the asynchronous computation. Asynchronous computations built using - computation expressions can check the cancellation condition regularly. Synchronous - computations within an asynchronous computation do not automatically check this condition. - - - Publishes the event as a first class event value. - - - Triggers the event using the given parameters. - The parameters for the event. - - - Creates an event object suitable for implementing an arbitrary type of delegate. - The event object. - - - Event implementations for an arbitrary type of delegate. - - - Publishes an observation as a first class value. - - - Triggers an observation using the given parameters. - The event parameters. - - - Creates an observable object. - The created event. - - - Event implementations for the IEvent<_> type. - - - Publishes the event as a first class event value. - - - Triggers the event using the given sender object and parameters. The sender object may be null. - The object triggering the event. - The parameters for the event. - - - Creates an event object suitable for delegate types following the standard .NET Framework convention of a first 'sender' argument. - The created event. - - - Event implementations for a delegate types following the standard .NET Framework convention of a first 'sender' argument. - - - - - - A delegate type associated with the F# event type IEvent<_> - The object that fired the event. - The event arguments. - - - Remove a listener delegate from an event listener store. - The delegate to be removed from the event listener store. - - - Connect a handler delegate object to the event. A handler can - be later removed using RemoveHandler. The listener will - be invoked when the event is fired. - A delegate to be invoked when the event is fired. - - - First class event values for arbitrary delegate types. - - F# gives special status to member properties compatible with type IDelegateEvent and - tagged with the CLIEventAttribute. In this case the F# compiler generates approriate - CLI metadata to make the member appear to other CLI languages as a CLI event. - - - First-class listening points (i.e. objects that permit you to register a callback - activated when the event is triggered). - - - First class event values for CLI events conforming to CLI Framework standards. - - - The type of delayed computations. - - Use the values in the Lazy module to manipulate - values of this type, and the notation lazy expr to create values - of type . - - - Raises a timeout exception if a message not received in this amount of time. By default - no timeout is used. - - - Occurs when the execution of the agent results in an exception. - - - Occurs when the execution of the agent results in an exception. - - - Raises a timeout exception if a message not received in this amount of time. By default - no timeout is used. - - - Returns the number of unprocessed messages in the message queue of the agent. - - - Occurs when the execution of the agent results in an exception. - - - Scans for a message by looking through messages in arrival order until scanner - returns a Some value. Other messages remain in the queue. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - The function to return None if the message is to be skipped - or Some if the message is to be processed and removed from the queue. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that scanner built off the read message. - - - Waits for a message. This will consume the first message in arrival order. - - This method is for use within the body of the agent. - - Returns None if a timeout is given and the timeout is exceeded. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - An optional timeout in milliseconds. Defaults to -1 which - corresponds to System.Threading.Timeout.Infinite. - An asynchronous computation that returns the received message or - None if the timeout is exceeded. - - - Like PostAndReply, but returns None if no reply within the timeout period. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - The reply from the agent or None if the timeout expires. - - - Starts the agent. - - - Creates and starts an agent. The body function is used to generate the asynchronous - computation executed by the agent. - The function to produce an asynchronous computation that will be executed - as the read loop for the MailboxProcessor when Start is called. - An optional cancellation token for the body. - Defaults to Async.DefaultCancellationToken. - The created MailboxProcessor. - - - Scans for a message by looking through messages in arrival order until scanner - returns a Some value. Other messages remain in the queue. - - Returns None if a timeout is given and the timeout is exceeded. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - The function to return None if the message is to be skipped - or Some if the message is to be processed and removed from the queue. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that scanner built off the read message. - Thrown when the timeout is exceeded. - - - Waits for a message. This will consume the first message in arrival order. - - This method is for use within the body of the agent. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that returns the received message. - Thrown when the timeout is exceeded. - - - Like AsyncPostAndReply, but returns None if no reply within the timeout period. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - An asynchronous computation that will return the reply or None if the timeout expires. - - - Posts a message to an agent and await a reply on the channel, synchronously. - - The message is generated by applying buildMessage to a new reply channel - to be incorporated into the message. The receiving agent must process this - message and invoke the Reply method on this reply channel precisely once. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - The reply from the agent. - - - Posts a message to an agent and await a reply on the channel, asynchronously. - - The message is generated by applying buildMessage to a new reply channel - to be incorporated into the message. The receiving agent must process this - message and invoke the Reply method on this reply channel precisely once. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - An asychronous computation that will wait for the reply from the agent. - - - Posts a message to the message queue of the MailboxProcessor, asynchronously. - The message to post. - - - Creates an agent. The body function is used to generate the asynchronous - computation executed by the agent. This function is not executed until - Start is called. - The function to produce an asynchronous computation that will be executed - as the read loop for the MailboxProcessor when Start is called. - An optional cancellation token for the body. - Defaults to Async.DefaultCancellationToken. - The created MailboxProcessor. - - - A message-processing agent which executes an asynchronous computation. - - The agent encapsulates a message queue that supports multiple-writers and - a single reader agent. Writers send messages to the agent by using the Post - method and its variations. - - The agent may wait for messages using the Receive or TryReceive methods or - scan through all available messages using the Scan or TryScan method. - - - - - - Connects a listener function to the observable. The listener will - be invoked for each observation. The listener can be removed by - calling Dispose on the returned IDisposable object. - The function to be called for each observation. - An object that will remove the listener if disposed. - - - Permanently connects a listener function to the observable. The listener will - be invoked for each observation. - The function to be called for each observation. - - - Returns an asynchronous computation that will write the given bytes to the stream. - The buffer to write from. - An optional offset as a number of bytes in the stream. - An optional number of bytes to write to the stream. - An asynchronous computation that will write the given bytes to the stream. - Thrown when the sum of offset and count is longer than - the buffer length. - Thrown when offset or count is negative. - - - Returns an asynchronous computation that will read the given number of bytes from the stream. - The number of bytes to read. - An asynchronous computation that returns the read byte[] when run. - - - Returns an asynchronous computation that will read from the stream into the given buffer. - The buffer to read into. - An optional offset as a number of bytes in the stream. - An optional number of bytes to read from the stream. - An asynchronous computation that will read from the stream into the given buffer. - Thrown when the sum of offset and count is longer than - the buffer length. - Thrown when offset or count is negative. - - - A module of extension members providing asynchronous operations for some basic CLI types related to concurrency and I/O. - - - Returns a new event that triggers on the second and subsequent triggerings of the input event. - The Nth triggering of the input event passes the arguments from the N-1th and Nth triggering as - a pair. The argument passed to the N-1th triggering is held in hidden internal state until the - Nth triggering occurs. - The input event. - An event that triggers on pairs of consecutive values passed from the source event. - - - Runs the given function each time the given event is triggered. - The function to call when the event is triggered. - The input event. - - - Returns a new event consisting of the results of applying the given accumulating function - to successive values triggered on the input event. An item of internal state - records the current value of the state parameter. The internal state is not locked during the - execution of the accumulation function, so care should be taken that the - input IEvent not triggered by multiple threads simultaneously. - The function to update the state with each event value. - The initial state. - The input event. - An event that fires on the updated state values. - - - Returns a new event which fires on a selection of messages from the original event. - The selection function takes an original message to an optional new message. - The function to select and transform event values to pass on. - The input event. - An event that fires only when the chooser returns Some. - - - Returns a new event that listens to the original event and triggers the - first resulting event if the application of the function to the event arguments - returned a Choice1Of2, and the second event if it returns a Choice2Of2. - The function to transform event values into one of two types. - The input event. - A tuple of events. The first fires whenever splitter evaluates to Choice1of1 and - the second fires whenever splitter evaluates to Choice2of2. - - - Returns a new event that listens to the original event and triggers the - first resulting event if the application of the predicate to the event arguments - returned true, and the second event if it returned false. - The function to determine which output event to trigger. - The input event. - A tuple of events. The first is triggered when the predicate evaluates to true - and the second when the predicate evaluates to false. - - - Returns a new event that listens to the original event and triggers the resulting - event only when the argument to the event passes the given function. - The function to determine which triggers from the event to propagate. - The input event. - An event that only passes values that pass the predicate. - - - Returns a new event that passes values transformed by the given function. - The function to transform event values. - The input event. - An event that passes the transformed values. - - - Fires the output event when either of the input events fire. - The first input event. - The second input event. - An event that fires when either of the input events fire. - - - - - - Forces the execution of this value and return its result. Same as Value. Mutual exclusion is used to - prevent other threads also computing the value. - The value of the Lazy object. - - - Creates a lazy computation that evaluates to the given value when forced. - The input value. - The created Lazy object. - - - Creates a lazy computation that evaluates to the result of the given function when forced. - The function to provide the value when needed. - The created Lazy object. - - - Extensions related to Lazy values. - - - Returns a new observable that triggers on the second and subsequent triggerings of the input observable. - The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as - a pair. The argument passed to the N-1th triggering is held in hidden internal state until the - Nth triggering occurs. - - For each observer, the registered intermediate observing object is not thread safe. - That is, observations arising from the source must not be triggered concurrently - on different threads. - The input Observable. - An Observable that triggers on successive pairs of observations from the input Observable. - - - Creates an observer which subscribes to the given observable and which calls - the given function for each observation. - The function to be called on each observation. - The input Observable. - An object that will remove the callback if disposed. - - - Creates an observer which permanently subscribes to the given observable and which calls - the given function for each observation. - The function to be called on each observation. - The input Observable. - - - Returns an observable which, for each observer, allocates an item of state - and applies the given accumulating function to successive values arising from - the input. The returned object will trigger observations for each computed - state value, excluding the initial value. The returned object propagates - all errors arising from the source and completes when the source completes. - - For each observer, the registered intermediate observing object is not thread safe. - That is, observations arising from the source must not be triggered concurrently - on different threads. - The function to update the state with each observation. - The initial state. - The input Observable. - An Observable that triggers on the updated state values. - - - Returns an observable which chooses a projection of observations from the source - using the given function. The returned object will trigger observations x - for which the splitter returns Some x. The returned object also propagates - all errors arising from the source and completes when the source completes. - The function that returns Some for observations to be propagated - and None for observations to ignore. - The input Observable. - An Observable that only propagates some of the observations from the source. - - - Returns two observables which split the observations of the source by the - given function. The first will trigger observations x for which the - splitter returns Choice1Of2 x. The second will trigger observations - y for which the splitter returns Choice2Of2 y The splitter is - executed once for each subscribed observer. Both also propagate error - observations arising from the source and each completes when the source - completes. - The function that takes an observation an transforms - it into one of the two output Choice types. - The input Observable. - A tuple of Observables. The first triggers when splitter returns Choice1of2 - and the second triggers when splitter returns Choice2of2. - - - Returns two observables which partition the observations of the source by - the given function. The first will trigger observations for those values - for which the predicate returns true. The second will trigger observations - for those values where the predicate returns false. The predicate is - executed once for each subscribed observer. Both also propagate all error - observations arising from the source and each completes when the source - completes. - The function to determine which output Observable will trigger - a particular observation. - The input Observable. - A tuple of Observables. The first triggers when the predicate returns true, and - the second triggers when the predicate returns false. - - - Returns an observable which filters the observations of the source - by the given function. The observable will see only those observations - for which the predicate returns true. The predicate is executed once for - each subscribed observer. The returned object also propagates error - observations arising from the source and completes when the source completes. - The function to apply to observations to determine if it should - be kept. - The input Observable. - An Observable that filters observations based on filter. - - - Returns an observable which transforms the observations of the source by the - given function. The transformation function is executed once for each - subscribed observer. The returned object also propagates error observations - arising from the source and completes when the source completes. - The function applied to observations from the source. - The input Observable. - An Observable of the type specified by mapping. - - - Returns an observable for the merged observations from the sources. - The returned object propagates success and error values arising - from either source and completes when both the sources have completed. - - For each observer, the registered intermediate observing object is not - thread safe. That is, observations arising from the sources must not - be triggered concurrently on different threads. - The first Observable. - The second Observable. - An Observable that propagates information from both sources. - - - Basic operations on first class event and other observable objects. - - - Returns an asynchronous computation that, when run, will wait for the download of the given URI. - The URI to retrieve. - An asynchronous computation that will wait for the download of the URI. - - - Returns an asynchronous computation that, when run, will wait for a response to the given WebRequest. - An asynchronous computation that waits for response to the WebRequest. - - - A module of extension members providing asynchronous operations for some basic Web operations. - - - Creates an instance of the attribute - AbstractClassAttribute - - - Adding this attribute to class definition makes it abstract, which means it need not - implement all its methods. Instances of abstract classes may not be constructed directly. - - - Creates an instance of the attribute - AllowNullLiteralAttribute - - - Adding this attribute to a type lets the 'null' literal be used for the type - within F# code. This attribute may only be added to F#-defined class or - interface types. - - - Indicates the namespace or module to be automatically opened when an assembly is referenced - or an enclosing module opened. - - - Creates an attribute used to mark a namespace or module path to be 'automatically opened' when an assembly is referenced - The namespace or module to be automatically opened when an assembly is referenced - or an enclosing module opened. - AutoOpenAttribute - - - Creates an attribute used to mark a module as 'automatically opened' when the enclosing namespace is opened - AutoOpenAttribute - - - This attribute is used for two purposes. When applied to an assembly, it must be given a string - argument, and this argument must indicate a valid module or namespace in that assembly. Source - code files compiled with a reference to this assembly are processed in an environment - where the given path is automatically oepned. - - When applied to a module within an assembly, then the attribute must not be given any arguments. - When the enclosing namespace is opened in user source code, the module is also implicitly opened. - - - The value of the attribute, indicating whether the type is automatically marked serializable or not - - - Creates an instance of the attribute - Indicates whether the type should be serializable by default. - AutoSerializableAttribute - - - Adding this attribute to a type with value 'false' disables the behaviour where F# makes the - type Serializable by default. - - - Creates an instance of the attribute - CLIEventAttribute - - - Adding this attribute to a property with event type causes it to be compiled with as a CLI - metadata event, through a syntactic translation to a pair of 'add_EventName' and - 'remove_EventName' methods. - - - Choice 2 of 2 choices - - - Choice 1 of 2 choices - - - Helper types for active patterns with 2 choices. - - - Choice 3 of 3 choices - - - Choice 2 of 3 choices - - - Choice 1 of 3 choices - - - Helper types for active patterns with 3 choices. - - - Choice 4 of 4 choices - - - Choice 3 of 4 choices - - - Choice 2 of 4 choices - - - Choice 1 of 4 choices - - - Helper types for active patterns with 4 choices. - - - Choice 5 of 5 choices - - - Choice 4 of 5 choices - - - Choice 3 of 5 choices - - - Choice 2 of 5 choices - - - Choice 1 of 5 choices - - - Helper types for active patterns with 5 choices. - - - Choice 6 of 6 choices - - - Choice 5 of 6 choices - - - Choice 4 of 6 choices - - - Choice 3 of 6 choices - - - Choice 2 of 6 choices - - - Choice 1 of 6 choices - - - Helper types for active patterns with 6 choices. - - - Choice 7 of 7 choices - - - Choice 6 of 7 choices - - - Choice 5 of 7 choices - - - Choice 4 of 7 choices - - - Choice 3 of 7 choices - - - Choice 2 of 7 choices - - - Choice 1 of 7 choices - - - Helper types for active patterns with 7 choices. - - - Creates an instance of the attribute - ClassAttribute - - - Adding this attribute to a type causes it to be represented using a CLI class. - - - Creates an instance of the attribute - ComparisonConditionalOnAttribute - - - This attribute is used to indicate a generic container type satisfies the F# 'comparison' - constraint only if a generic argument also satisfies this constraint. For example, adding - this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports - comparison if the type X also supports comparison and all other conditions for C<X> to support - comparison are also met. The type C<'T> can still be used with other type arguments, but a type such - as C<(int -> int)> will not support comparison because the type (int -> int) is an F# function type - and does not support comparison. - - This attribute will be ignored if it is used on the generic parameters of functions or methods. - - - Indicates the number of arguments in each argument group - - - Creates an instance of the attribute - Indicates the number of arguments in each argument group. - CompilationArgumentCountsAttribute - - - This attribute is generated automatically by the F# compiler to tag functions and members - that accept a partial application of some of their arguments and return a residual function - - - Indicates the variant number of the entity, if any, in a linear sequence of elements with F# source code - - - Indicates the relationship between the compiled entity and F# source code - - - Indicates the sequence number of the entity, if any, in a linear sequence of elements with F# source code - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - This attribute is inserted automatically by the F# compiler to tag types - and methods in the generated CLI code with flags indicating the correspondence - with original source constructs. It is used by the functions in the - Microsoft.FSharp.Reflection namespace to reverse-map compiled constructs to - their original forms. It is not intended for use from user code. - - - Indicates one or more adjustments to the compiled representation of an F# type or member - - - Creates an instance of the attribute - Indicates adjustments to the compiled representation of the type or member. - CompilationRepresentationAttribute - - - This attribute is used to adjust the runtime representation for a type. - For example, it may be used to note that the null representation - may be used for a type. This affects how some constructs are compiled. - - - Compile a property as a CLI event. - - - Permit the use of null as a representation for nullary discriminators in a discriminated union. - - - append 'Module' to the end of a module whose name clashes with a type name in the same namespace. - - - Compile a member as 'instance' even if null is used as a representation for this type. - - - Compile an instance member as 'static' . - - - No special compilation representation. - - - - - - Indicates one or more adjustments to the compiled representation of an F# type or member. - - - Indicates the name of the entity in F# source code - - - Creates an instance of the attribute - The name of the method in source. - CompilationSourceNameAttribute - - - This attribute is inserted automatically by the F# compiler to tag - methods which are given the 'CompiledName' attribute. It is not intended - for use from user code. - - - The name of the value as it appears in compiled code - - - Creates an instance of the attribute - The name to use in compiled code. - CompiledNameAttribute - - - Adding this attribute to a value or function definition in an F# module changes the name used - for the value in compiled CLI code. - - - Indicates if the construct should always be hidden in an editing environment. - - - Indicates if the message should indicate a compiler error. Error numbers less than - 10000 are considered reserved for use by the F# compiler and libraries. - - - Indicates the number associated with the message. - - - Indicates the warning message to be emitted when F# source code uses this construct - - - Indicates if the construct should always be hidden in an editing environment. - - - Indicates if the message should indicate a compiler error. Error numbers less than - 10000 are considered reserved for use by the F# compiler and libraries. - - - Creates an instance of the attribute. - - - Indicates that a message should be emitted when F# source code uses this construct. - - - Creates an instance of the attribute - CustomComparisonAttribute - - - Adding this attribute to a type indicates it is a type with a user-defined implementation of comparison. - - - Creates an instance of the attribute - CustomEqualityAttribute - - - Adding this attribute to a type indicates it is a type with a user-defined implementation of equality. - - - The value of the attribute, indicating whether the type has a default augmentation or not - - - Creates an instance of the attribute - Indicates whether to generate helper members on the CLI class representing a discriminated - union. - DefaultAugmentationAttribute - - - Adding this attribute to a discriminated union with value false - turns off the generation of standard helper member tester, constructor - and accessor members for the generated CLI class for that type. - - - Indicates if a constraint is asserted that the field type supports 'null' - - - Creates an instance of the attribute - Indicates whether to assert that the field type supports null. - DefaultValueAttribute - - - Creates an instance of the attribute - DefaultValueAttribute - - - Adding this attribute to a field declaration means that the field is - not initialized. During type checking a constraint is asserted that the field type supports 'null'. - If the 'check' value is false then the constraint is not asserted. - - - Creates an instance of the attribute - EntryPointAttribute - - - Adding this attribute to a function indicates it is the entrypoint for an application. - If this absent is not speficied for an EXE then the initialization implicit in the - module bindings in the last file in the compilation sequence are used as the entrypoint. - - - Creates an instance of the attribute - EqualityConditionalOnAttribute - - - This attribute is used to indicate a generic container type satisfies the F# 'equality' - constraint only if a generic argument also satisfies this constraint. For example, adding - this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports - equality if the type X also supports equality and all other conditions for C<X> to support - equality are also met. The type C<'T> can still be used with other type arguments, but a type such - as C<(int -> int)> will not support equality because the type (int -> int) is an F# function type - and does not support equality. - - This attribute will be ignored if it is used on the generic parameters of functions or methods. - - - Indicates the warning message to be emitted when F# source code uses this construct - - - Creates an instance of the attribute - The warning message to be emitted when code uses this construct. - ExperimentalAttribute - - - This attribute is used to tag values that are part of an experimental library - feature. - - - Convert an value of type System.Converter to a F# first class function value - The input System.Converter. - An F# function of the same type. - - - Convert an F# first class function value to a value of type System.Converter - The input function. - A System.Converter of the function type. - - - Convert an F# first class function value to a value of type System.Converter - The input function. - System.Converter<'T,'U> - - - Invoke an F# first class function value with two curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The function result. - - - Invoke an F# first class function value with three curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The function result. - - - Invoke an F# first class function value with four curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The fourth arg. - The function result. - - - Invoke an F# first class function value with five curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The fourth arg. - The fifth arg. - The function result. - - - Invoke an F# first class function value with one argument - - 'U - - - Convert an value of type System.Converter to a F# first class function value - The input System.Converter. - An F# function of the same type. - - - Construct an instance of an F# first class function value - The created F# function. - - - The CLI type used to represent F# function values. This type is not - typically used directly, though may be used from other CLI languages. - - - The release number of the F# version associated with the attribute - - - The minor version number of the F# version associated with the attribute - - - The major version number of the F# version associated with the attribute - - - Creates an instance of the attribute - The major version number. - The minor version number. - The release number. - FSharpInterfaceDataVersionAttribute - - - This attribute is added to generated assemblies to indicate the - version of the data schema used to encode additional F# - specific information in the resource attached to compiled F# libraries. - - - Specialize the type function at a given type - The specialized type. - - - Construct an instance of an F# first class type function value - FSharpTypeFunc - - - The CLI type used to represent F# first-class type function values. This type is for use - by compiled F# code. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - Tuple of values generated by scan or match. - - - Convert the given Converter delegate object to an F# function value - The input Converter. - The F# function. - - - Convert the given Action delegate object to an F# function value - The input action. - The F# function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - Helper functions for converting F# first class function values to and from CLI representaions - of functions using delegates. - - - Creates an instance of the attribute - GeneralizableValueAttribute - - - Adding this attribute to a non-function value with generic parameters indicates that - uses of the construct can give rise to generic code through type inference. - - - Creates an instance of the attribute - InterfaceAttribute - - - Adding this attribute to a type causes it to be represented using a CLI interface. - - - Creates an instance of the attribute - LiteralAttribute - - - Adding this attribute to a value causes it to be compiled as a CLI constant literal. - - - Creates an instance of the attribute - MeasureAnnotatedAbbreviationAttribute - - - Adding this attribute to a type causes it to be interpreted as a refined type, currently limited to measure-parameterized types. - This may only be used under very limited conditions. - - - Creates an instance of the attribute - MeasureAttribute - - - Adding this attribute to a type causes it to be interpreted as a unit of measure. - This may only be used under very limited conditions. - - - Creates an instance of the attribute - NoComparisonAttribute - - - Adding this attribute to a type indicates it is a type where comparison is an abnormal operation. - This means that the type does not satisfy the F# 'comparison' constraint. Within the bounds of the - F# type system, this helps ensure that the F# generic comparison function is not instantiated directly - at this type. The attribute and checking does not constrain the use of comparison with base or child - types of this type. - - - Creates an instance of the attribute - NoDynamicInvocationAttribute - - - This attribute is used to tag values that may not be dynamically invoked at runtime. This is - typically added to inlined functions whose implementations include unverifiable code. It - causes the method body emitted for the inlined function to raise an exception if - dynamically invoked, rather than including the unverifiable code in the generated - assembly. - - - Creates an instance of the attribute - NoEqualityAttribute - - - Adding this attribute to a type indicates it is a type where equality is an abnormal operation. - This means that the type does not satisfy the F# 'equality' constraint. Within the bounds of the - F# type system, this helps ensure that the F# generic equality function is not instantiated directly - at this type. The attribute and checking does not constrain the use of comparison with base or child - types of this type. - - - The representation of "Value of type 'T" - The input value. - An option representing the value. - - - The representation of "No value" - - - Get the value of a 'Some' option. A NullReferenceException is raised if the option is 'None'. - - - Create an option value that is a 'None' value. - - - Return 'true' if the option is a 'Some' value. - - - Return 'true' if the option is a 'None' value. - - - Create an option value that is a 'Some' value. - The input value - An option representing the value. - - - The type of optional values. When used from other CLI languages the - empty option is the null value. - - Use the constructors Some and None to create values of this type. - Use the values in the Option module to manipulate values of this type, - or pattern match against the values directly. - - None values will appear as the value null to other CLI languages. - Instance methods on this type will appear as static methods to other CLI languages - due to the use of null as a value representation. - - - Creates an instance of the attribute - OptionalArgumentAttribute - - - This attribute is added automatically for all optional arguments. - - - The raw text of the format string. - - - Construct a format string - The input string. - The PrintfFormat containing the formatted result. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - - - Construct a format string - The input string. - The created format string. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - Tuple of values generated by scan or match. - - - - The current value of the reference cell - - - - The current value of the reference cell - - - The current value of the reference cell - - - The type of mutable references. Use the functions [:=] and [!] to get and - set values of this type. - - - Creates an instance of the attribute - ReferenceEqualityAttribute - - - Adding this attribute to a record or union type disables the automatic generation - of overrides for 'System.Object.Equals(obj)', 'System.Object.GetHashCode()' - and 'System.IComparable' for the type. The type will by default use reference equality. - - - Creates an instance of the attribute - ReflectedDefinitionAttribute - - - Adding this attribute to the let-binding for the definition of a top-level - value makes the quotation expression that implements the value available - for use at runtime. - - - Creates an instance of the attribute - RequireQualifiedAccessAttribute - - - This attribute is used to indicate that references to a the elements of a module, record or union - type require explicit qualified access. - - - Creates an instance of the attribute - RequiresExplicitTypeArgumentsAttribute - - - Adding this attribute to a type, value or member requires that - uses of the construct must explicitly instantiate any generic type parameters. - - - The value of the attribute, indicating whether the type is sealed or not. - - - Creates an instance of the attribute - Indicates whether the class is sealed. - SealedAttribute - - - Creates an instance of the attribute. - The created attribute. - - - Adding this attribute to class definition makes it sealed, which means it may not - be extended or implemented. - - - Indicates that the compiled entity had private or internal representation in F# source code. - - - The mask of values related to the kind of the compiled entity. - - - Indicates that the compiled entity is part of the representation of an F# value declaration. - - - Indicates that the compiled entity is part of the representation of an F# union case declaration. - - - Indicates that the compiled entity is part of the representation of an F# module declaration. - - - Indicates that the compiled entity is part of the representation of an F# closure. - - - Indicates that the compiled entity is part of the representation of an F# exception declaration. - - - Indicates that the compiled entity is part of the representation of an F# record or union case field declaration. - - - Indicates that the compiled entity is part of the representation of an F# class or other object type declaration. - - - Indicates that the compiled entity is part of the representation of an F# record type declaration. - - - Indicates that the compiled entity is part of the representation of an F# union type declaration. - - - Indicates that the compiled entity has no relationship to an element in F# source code. - - - - - - Indicates the relationship between a compiled entity in a CLI binary and an element in F# source code. - - - Creates an instance of the attribute - StructAttribute - - - Adding this attribute to a type causes it to be represented using a CLI struct. - - - Creates an instance of the attribute - StructuralComparisonAttribute - - - Adding this attribute to a record, union, exception, or struct type confirms the - automatic generation of implementations for 'System.IComparable' for the type. - - - Creates an instance of the attribute - StructuralEqualityAttribute - - - Adding this attribute to a record, union or struct type confirms the automatic - generation of overrides for 'System.Object.Equals(obj)' and - 'System.Object.GetHashCode()' for the type. - - - Indicates the text to display by default when objects of this type are displayed - using '%A' printf formatting patterns and other two-dimensional text-based display - layouts. - - - Creates an instance of the attribute - Indicates the text to display when using the '%A' printf formatting. - StructuredFormatDisplayAttribute - - - This attribute is used to mark how a type is displayed by default when using - '%A' printf formatting patterns and other two-dimensional text-based display layouts. - In this version of F# the only valid values are of the form PreText {PropertyName} PostText. - The property name indicates a property to evaluate and to display instead of the object itself. - - - The type 'unit', which has only one value "()". This value is special and - always uses the representation 'null'. - - - Creates an instance of the attribute - UnverifiableAttribute - - - This attribute is used to tag values whose use will result in the generation - of unverifiable code. These values are inevitably marked 'inline' to ensure that - the unverifiable constructs are not present in the actual code for the F# library, - but are rather copied to the source code of the caller. - - - Creates an instance of the attribute - VolatileFieldAttribute - - - Adding this attribute to an F# mutable binding causes the "volatile" - prefix to be used for all accesses to the field. - - - Four dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - Use the values in the Array4D module - to manipulate values of this type, or the notation arr.[x1,x2,x3,x4] to get and set array - values. - - - Three dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - Use the values in the Array3D module - to manipulate values of this type, or the notation arr.[x1,x2,x3] to get and set array - values. - - - Two dimensional arrays, typically zero-based. - - Use the values in the Array2D module - to manipulate values of this type, or the notation arr.[x,y] to get/set array - values. - - Non-zero-based arrays can also be created using methods on the System.Array type. - - - Single dimensional, zero-based arrays, written int[], string[] etc. - Use the values in the Array module to manipulate values - of this type, or the notation arr.[x] to get/set array - values. - - - Single dimensional, zero-based arrays, written int[], string[] etc. - - Use the values in the Array module to manipulate values - of this type, or the notation arr.[x] to get/set array - values. - - - - - - An abbreviation for the CLI type System.Boolean. - - - Represents a managed pointer in F# code. - - - An abbreviation for the CLI type System.Byte. - - - An abbreviation for the CLI type System.Char. - - - An abbreviation for the CLI type System.Decimal. - - - The type of decimal numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Decimal. - - - An abbreviation for the CLI type System.Double. - - - An abbreviation for the CLI type System.Exception. - - - An abbreviation for the CLI type System.Double. - - - An abbreviation for the CLI type System.Single. - - - The type of floating point numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Single. - - - The type of floating point numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Double. - - - This type is for internal use by the F# code generator. - - - An abbreviation for the CLI type System.Int32. - - - An abbreviation for the CLI type System.Int16. - - - The type of 16-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int16. - - - An abbreviation for the CLI type System.Int32. - - - An abbreviation for the CLI type System.Int64. - - - The type of 64-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int64. - - - An abbreviation for the CLI type System.SByte. - - - The type of 32-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int32. - - - An abbreviation for the CLI type System.IntPtr. - - - Represents an unmanaged pointer in F# code. - - This type should only be used when writing F# code that interoperates - with native code. Use of this type in F# code may result in - unverifiable code being generated. Conversions to and from the - nativeint type may be required. Values of this type can be generated - by the functions in the NativeInterop.NativePtr module. - - - An abbreviation for the CLI type System.Object. - - - The type of optional values. When used from other CLI languages the - empty option is the null value. - - Use the constructors Some and None to create values of this type. - Use the values in the Option module to manipulate values of this type, - or pattern match against the values directly. - - 'None' values will appear as the value null to other CLI languages. - Instance methods on this type will appear as static methods to other CLI languages - due to the use of null as a value representation. - - - The type of mutable references. Use the functions [:=] and [!] to get and - set values of this type. - - - An abbreviation for the CLI type System.SByte. - - - The type of 8-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.SByte. - - - An abbreviation for the CLI type System.Single. - - - An abbreviation for the CLI type System.String. - - - An abbreviation for the CLI type System.UInt16. - - - An abbreviation for the CLI type System.UInt32. - - - An abbreviation for the CLI type System.UInt64. - - - An abbreviation for the CLI type System.Byte. - - - An abbreviation for the CLI type System.UIntPtr. - - - The type 'unit', which has only one value "()". This value is special and - always uses the representation 'null'. - - - - - - - - - - - - Non-exhaustive match failures will raise the MatchFailureException exception - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A new enumerator for the sequence. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A reference to the sequence. - - A 0, 1, and 2 respectively indicate Stop, Yield, and Goto conditions for the sequence generator. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A new sequence generator for the expression. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - - - - - - - - - - - - - Creates an anonymous event with the given handlers. - - A function to handle adding a delegate for the event to trigger. - A function to handle removing a delegate that the event triggers. - A function to produce the delegate type the event can trigger. - - The initialized event. - - - The F# compiler emits calls to this function to implement the use operator for F# sequence - expressions. - - The resource to be used and disposed. - The input sequence. - - The result sequence. - - - The F# compiler emits calls to this function to implement the compiler-intrinsic - conversions from untyped System.Collections.IEnumerable sequences to typed sequences. - - An initializer function. - A function to iterate and test if end of sequence is reached. - A function to retrieve the current element. - - The resulting typed sequence. - - - The F# compiler emits calls to this function to - implement the try/finally operator for F# sequence expressions. - - The input sequence. - A computation to be included in an enumerator's Dispose method. - - The result sequence. - - - The F# compiler emits calls to this function to - implement the while operator for F# sequence expressions. - - A function that indicates whether iteration should continue. - The input sequence. - - The result sequence. - - - A group of functions used as part of the compiled representation of F# sequence expressions. - - - An active pattern to force the execution of values of type Lazy<_>. - - - Special prefix operator for splicing untyped expressions into quotation holes. - - - Special prefix operator for splicing typed expressions into quotation holes. - - - Builds a 2D array from a sequence of sequences of elements. - - - Builds a read-only lookup table from a sequence of key/value pairs. The key objects are indexed using generic hashing and equality. - - - Converts the argument to signed byte. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings. - Otherwise the operation requires and invokes a ToSByte method on the input type. - - - Converts the argument to byte. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type. - - - Converts the argument to 64-bit float. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Double.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToDouble method on the input type. - - - Converts the argument to 32-bit float. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Single.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToSingle method on the input type. - - - Builds an aysnchronous workflow using computation expression syntax. - - - Builds a set from a sequence of objects. The objects are indexed using generic comparison. - The input sequence of elements. - The created set. - - - Print to a file using the given format, and add a newline. - The file TextWriter. - The formatter. - The formatted result. - - - Print to a file using the given format. - The file TextWriter. - The formatter. - The formatted result. - - - Print to a string buffer and raise an exception with the given - result. Helper printers must return strings. - The formatter. - The formatted result. - - - Print to a string using the given format. - The formatter. - The formatted result. - - - Print to stderr using the given format, and add a newline. - The formatter. - The formatted result. - - - Print to stderr using the given format. - The formatter. - The formatted result. - - - Print to stdout using the given format, and add a newline. - The formatter. - The formatted result. - - - Print to stdout using the given format. - The formatter. - The formatted result. - - - - - - Divides a value by an integer. - The input value. - The input int. - The division result. - - - - - - Resolves to the one value for any primitive numeric type or any type with a static member called 'One' - - - Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero' - - - A compiler intrinsic that implements dynamic invocations for the DivideByInt primitive. - - - A compiler intrinsic that implements dynamic invocations to the checked '+' operator. - - - A compiler intrinsic that implements dynamic invocations to the '+' operator. - - - A compiler intrinsic that implements dynamic invocations to the checked '+' operator. - - - A compiler intrinsic that implements dynamic invocations to the '+' operator. - - - Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'. - - - Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'. - - - Parse an uint64 according to the rules used by the overloaded 'uint64' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an int64 according to the rules used by the overloaded 'int64' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an uint32 according to the rules used by the overloaded 'uint32' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an int32 according to the rules used by the overloaded 'int32' conversion operator when applied to strings - The input string. - The parsed value. - - - Creates an sbyte value with units-of-measure - The input sbyte. - The sbyte with units-of-measure. - - - Creates an int16 value with units-of-measure - The input int16. - The int16 with units-of-measure. - - - Creates an int64 value with units-of-measure - The input int64. - The int64 with units of measure. - - - Creates an int32 value with units-of-measure - The input int. - The int with units of measure. - - - Creates a decimal value with units-of-measure - The input decimal. - The decimal with units of measure. - - - Creates a float32 value with units-of-measure - The input float. - The float with units-of-measure. - - - Creates a float value with units-of-measure - The input float. - The float with units-of-measure. - - - Get the underlying value for an enum value - The input enum. - The enumeration as a value. - - - Build an enum value from an underlying value - The input value. - The value as an enumeration. - - - Recursively hash a part of a value according to its structure. - The comparison function. - The input object. - The hashed value. - - - Hash a value according to its structure. Use the given limit to restrict the hash when hashing F# - records, lists and union types. - The limit on the number of nodes. - The input object. - The hashed value. - - - Hash a value according to its structure. This hash is not limited by an overall node count when hashing F# - records, lists and union types. - The input object. - The hashed value. - - - Make an F# hash/equality object for the given type using node-limited hashing when hashing F# - records, lists and union types. - The input limit on the number of nodes. - System.Collections.Generic.IEqualityComparer<'T> - - - Make an F# hash/equality object for the given type - - - Make an F# comparer object for the given type, where it can be null if System.Collections.Generic.Comparer<'T>.Default - - - Make an F# comparer object for the given type - - - A static F# comparer object - - - Return an F# comparer object suitable for hashing and equality. This hashing behaviour - of the returned comparer is not limited by an overall node count when hashing F# - records, lists and union types. This equality comparer has equivalence - relation semantics ([nan] = [nan]). - - - Return an F# comparer object suitable for hashing and equality. This hashing behaviour - of the returned comparer is not limited by an overall node count when hashing F# - records, lists and union types. - - - The physical hash. Hashes on the object identity, except for value types, - where we hash on the contents. - The input object. - The hashed value. - - - Reference/physical equality. - True if boxed versions of the inputs are reference-equal, OR if - both are primitive numeric types and the implementation of Object.Equals for the type - of the first argument returns true on the boxed versions of the inputs. - The first value. - The second value. - The result of the comparison. - - - Take the maximum of two values structurally according to the order given by GenericComparison - The first value. - The second value. - The maximum value. - - - Take the minimum of two values structurally according to the order given by GenericComparison - The first value. - The second value. - The minimum value. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values. May be called as a recursive case from an implementation of System.IComparable to - ensure consistent NaN comparison semantics. - The function to compare the values. - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality - - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality using equivalence relation semantics ([nan] = [nan]) - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality using partial equivalence relation semantics ([nan] <> [nan]) - The first value. - The second value. - The result of the comparison. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - - The standard overloaded associative (4-indexed) mutation operator - - - - The standard overloaded associative (3-indexed) mutation operator - - - The standard overloaded associative (2-indexed) mutation operator - - - The standard overloaded associative (indexed) mutation operator - - - The standard overloaded associative (4-indexed) lookup operator - - - The standard overloaded associative (3-indexed) lookup operator - - - The standard overloaded associative (2-indexed) lookup operator - - - The standard overloaded associative (indexed) lookup operator - - - A compiler intrinsic for checking initialization soundness of recursive bindings - - - A compiler intrinsic for checking initialization soundness of recursive static bindings - - - A compiler intrinsic for checking initialization soundness of recursive bindings - - - A compiler intrinsic for the efficient compilation of sequence expressions - - - This function implements parsing of decimal constants - - - This function implements calls to default constructors - acccessed by 'new' constraints. - - - Primitive used by pattern match compilation - - - A compiler intrinsic that implements the ':?' operator - - - A compiler intrinsic that implements the ':?' operator - - - A compiler intrinsic that implements the ':?>' operator - - - A compiler intrinsic that implements the ':?>' operator - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - Address-of. Uses of this value may result in the generation of unverifiable code. - The input object. - The unmanaged pointer. - - - Address-of. Uses of this value may result in the generation of unverifiable code. - The input object. - The managed pointer. - - - Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand - The first value. - The second value. - The result of the operation. - - - Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand. - - - Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand - The first value. - The second value. - The result of the operation. - - - Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand. - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - - - - - - - - - - - - - - - - For internal use only - - - Language primitives associated with the F# language - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - An active pattern to match values of type System.Collections.Generic.KeyValuePair - The input key/value pair. - A tuple containing the key and value. - - - Converts the argument to character. Numeric inputs are converted according to the UTF-16 - encoding for characters. String inputs must be exactly one character long. For other - input types the operation requires an appropriate static conversion method on the input type. - The input value. - The converted char. - - - Converts the argument to System.Decimal using a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted decimal. - - - Converts the argument to a string using ToString. - - For standard integer and floating point values the ToString conversion - uses CultureInfo.InvariantCulture. - The input value. - The converted string. - - - Converts the argument to unsigned native integer using a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted unativeint - - - Converts the argument to signed native integer. This is a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted nativeint - - - Converts the argument to 64-bit float. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Double.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float - - - Converts the argument to 32-bit float. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Single.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float32 - - - Converts the argument to unsigned 64-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint64 - - - Converts the argument to signed 64-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int64 - - - Converts the argument to unsigned 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint32 - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int32 - - - Converts the argument to a particular enum type. - The input value. - The converted enum type. - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int - - - Converts the argument to unsigned 16-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint16 - - - Converts the argument to signed 16-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int16 - - - Converts the argument to signed byte. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using SByte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to byte. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Byte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - Overloaded power operator. If n > 0 then equivalent to x*...*x for n occurrences of x. - The input base. - The input exponent. - The base raised to the exponent. - - - Overloaded power operator. - The input base. - The input exponent. - The base raised to the exponent. - - - Overloaded truncate operator. - The input value. - The truncated value. - - - Hyperbolic tangent of the given number - The input value. - The hyperbolic tangent of the input. - - - Tangent of the given number - The input value. - The tangent of the input. - - - Hyperbolic sine of the given number - The input value. - The hyperbolic sine of the input. - - - Sine of the given number - The input value. - The sine of the input. - - - Hyperbolic cosine of the given number - The input value. - The hyperbolic cosine of the input. - - - Cosine of the given number - The input value. - The cosine of the input. - - - Square root of the given number - The input value. - The square root of the input. - - - Logarithm to base 10 of the given number - The input value. - The logarithm to base 10 of the input. - - - Natural logarithm of the given number - The input value. - The natural logarithm of the input. - - - Round the given number - The input value. - The nearest integer to the input value. - - - Sign of the given number - The input value. - -1, 0, or 1 depending on the sign of the input. - - - Floor of the given number - The input value. - The floor of the input. - - - Exponential of the given number - The input value. - The exponential of the input. - - - Ceiling of the given number - The input value. - The ceiling of the input. - - - Inverse tangent of x/y where x and y are specified separately - The y input value. - The x input value. - The inverse tangent of the input ratio. - - - Inverse tangent of the given number - The input value. - The inverse tangent of the input. - - - Inverse sine of the given number - The input value. - The inverse sine of the input. - - - Inverse cosine of the given number - The input value. - The inverse cosine of the input. - - - Absolute value of the given number. - The input value. - The absolute value of the input. - - - A generic hash function. This function has the same behaviour as 'hash', - however the default structural hashing for F# union, record and tuple - types stops when the given limit of nodes is reached. The exact behaviour of - the function can be adjusted on a type-by-type basis by implementing - GetHashCode for each type. - The limit of nodes. - The input object. - The computed hash. - - - A generic hash function, designed to return equal hash values for items that are - equal according to the "=" operator. By default it will use structural hashing - for F# union, record and tuple types, hashing the complete contents of the - type. The exact behaviour of the function can be adjusted on a - type-by-type basis by implementing GetHashCode for each type. - The input object. - The computed hash. - - - Returns the internal size of a type in bytes. For example, sizeof<int> returns 4. - - - Generate a System.Type representation for a type definition. If the - input type is a generic type instantiation then return the - generic type definition associated with all such instantiations. - - - Generate a System.Type runtime representation of a static type. - The static type is still maintained on the value returned. - - - Clean up resources associated with the input object after the completion of the given function. - Cleanup occurs even when an exception is raised by the protected - code. - The resource to be disposed after action is called. - The action that accepts the resource. - The resulting value. - - - Execute the function as a mutual-exclusion region using the input value as a lock. - The object to be locked. - The action to perform during the lock. - The resulting value. - - - The standard overloaded skip range operator, e.g. [n..skip..m] for lists, seq {n..skip..m} for sequences - The start value of the range. - The step value of the range. - The end value of the range. - The sequence spanning the range using the specified step size. - - - The standard overloaded range operator, e.g. [n..m] for lists, seq {n..m} for sequences - The start value of the range. - The end value of the range. - The sequence spanning the range. - - - Reads the value of the property System.Console.Out. - - - Reads the value of the property System.Console.Error. - - - Reads the value of the property System.Console.In. - - - Equivalent to System.Single.NaN - - - Equivalent to System.Single.PositiveInfinity - - - Equivalent to System.Double.NaN - - - Equivalent to System.Double.PositiveInfinity - - - Exit the current hardware isolated process, if security settings permit, - otherwise raise an exception. Calls System.Environment.Exit. - The exit code to use. - The result value. - - - Builds a sequence using sequence expression syntax - The input sequence. - The result sequence. - - - Negate a logical value. not true equals false and not false equals true - The value to negate. - The result of the negation. - - - Concatenate two lists. - The first list. - The second list. - The concatenation of the lists. - - - Increment a mutable reference cell containing an integer - The reference cell. - - - Decrement a mutable reference cell containing an integer - The reference cell. - - - Dereference a mutable reference cell - The cell to dereference. - The value contained in the cell. - - - Assign to a mutable reference cell - The cell to mutate. - The value to set inside the cell. - - - Create a mutable reference cell - The value to contain in the cell. - The created reference cell. - - - The identity function - The input value. - The same value. - - - Throw an System.InvalidOperationException exception - The exception message. - The result value. - - - Throw an System.ArgumentNullException exception - The argument name. - The result value. - - - Throw an System.ArgumentException exception - The argument name. - The exception message. - The result value. - - - Throw a System.Exception exception - The exception message. - The result value. - - - Boxes a strongly typed value. - The value to box. - The boxed object. - - - Unboxes a strongly typed value. This is the inverse of box, unbox<t>(box<t> a) equals a. - The boxed value. - The unboxed result. - - - Ignore the passed value. This is often used to throw away results of a computation. - The value to ignore. - - - Minimum based on generic comparison - The first value. - The second value. - The minimum value. - - - Maximum based on generic comparison - The first value. - The second value. - The maximum value. - - - Generic comparison. - The first value. - The second value. - The result of the comparison. - - - Return the second element of a tuple, snd (a,b) = b. - The input tuple. - The second value. - - - Return the first element of a tuple, fst (a,b) = a. - The input tuple. - The first value. - - - Matches System.Exception objects whose runtime type is precisely System.Exception - The input exception. - A string option. - - - Builds a System.Exception object. - The message for the Exception. - A System.Exception. - - - Rethrows an exception. This should only be used when handling an exception - The result value. - - - Rethrows an exception. This should only be used when handling an exception - The result value. - - - Raises an exception - The exception to raise. - The result value. - - - Concatenate two strings. The operator '+' may also be used. - - - Used to specify a default value for an optional argument in the implementation of a function - An option representing the argument. - The default value of the argument. - The argument value. If it is None, the defaultValue is returned. - - - Apply a function to three values, the values being a triple on the right, the function on the left - The function. - The first argument. - The second argument. - The third argument. - The function result. - - - Apply a function to two values, the values being a pair on the right, the function on the left - The function. - The first argument. - The second argument. - The function result. - - - Apply a function to a value, the value being on the right, the function on the left - The function. - The argument. - The function result. - - - Apply a function to three values, the values being a triple on the left, the function on the right - The first argument. - The second argument. - The third argument. - The function. - The function result. - - - Apply a function to two values, the values being a pair on the left, the function on the right - The first argument. - The second argument. - The function. - The function result. - - - Apply a function to a value, the value being on the left, the function on the right - The argument. - The function. - The function result. - - - Compose two functions, the function on the right being applied first - The second function to apply. - The first function to apply. - The composition of the input functions. - - - Compose two functions, the function on the left being applied first - The first function to apply. - The second function to apply. - The composition of the input functions. - - - Structural inequality - The first parameter. - The second parameter. - The result of the comparison. - - - Structural equality - The first parameter. - The second parameter. - The result of the comparison. - - - Structural less-than-or-equal comparison - The first parameter. - The second parameter. - The result of the comparison. - - - Structural greater-than-or-equal - The first parameter. - The second parameter. - The result of the comparison. - - - Structural greater-than - The first parameter. - The second parameter. - The result of the comparison. - - - Structural less-than comparison - The first parameter. - The second parameter. - The result of the comparison. - - - Overloaded prefix=plus operator - The input value. - The result of the operation. - - - Overloaded logical-NOT operator - The input value. - The result of the operation. - - - Overloaded byte-shift right operator by a specified number of bits - The input value. - The amount to shift. - The result of the operation. - - - Overloaded byte-shift left operator by a specified number of bits - The input value. - The amount to shift. - The result of the operation. - - - Overloaded logical-XOR operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded logical-OR operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded logical-AND operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded modulo operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded division operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded multiplication operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded subtraction operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded addition operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded unary negation. - The value to negate. - The result of the operation. - - - Converts the argument to char. Numeric inputs are converted using a checked - conversion according to the UTF-16 encoding for characters. String inputs must - be exactly one character long. For other input types the operation requires an - appropriate static conversion method on the input type. - The input value. - The converted char - - - Converts the argument to unativeint. This is a direct, checked conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted unativeint - - - Converts the argument to nativeint. This is a direct, checked conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted nativeint - - - Converts the argument to uint64. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint64 - - - Converts the argument to int64. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int64 - - - Converts the argument to uint32. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint32 - - - Converts the argument to int32. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int32 - - - Converts the argument to int. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int - - - Converts the argument to uint16. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint16 - - - Converts the argument to int16. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int16 - - - Converts the argument to sbyte. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.SByte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to byte. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Byte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - Overloaded multiplication operator (checks for overflow) - The first value. - The second value. - The product of the two input values. - - - Overloaded addition operator (checks for overflow) - The first value. - The second value. - The sum of the two input values. - - - Overloaded subtraction operator (checks for overflow) - The first value. - The second value. - The first value minus the second value. - - - Overloaded unary negation (checks for overflow) - The input value. - The negated value. - - - This module contains the basic arithmetic operations with overflow checks. - - - Perform generic hashing on a value where the type of the value is not - statically required to satisfy the 'equality' constraint. - The computed hash value. - - - Perform generic equality on two values where the type of the values is not - statically required to satisfy the 'equality' constraint. - The result of the comparison. - - - Perform generic comparison on two values where the type of the values is not - statically required to have the 'comparison' constraint. - The result of the comparison. - - - Generate a default value for any type. This is null for reference types, - For structs, this is struct value where all fields have the default value. - This function is unsafe in the sense that some F# values do not have proper null values. - - - This module contains basic operations which do not apply runtime and/or static checks - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'decimal' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'unativeint' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'nativeint' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint64' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int64' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint16' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int16' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'sbyte' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'byte' - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - Generate a range of values using the given zero, add, start, step and stop values - - - Generate a range of values using the given zero, add, start, step and stop values - - - Generate a range of char values - - - Generate a range of byte values - - - Generate a range of sbyte values - - - Generate a range of uint16 values - - - Generate a range of int16 values - - - Generate a range of unativeint values - - - Generate a range of nativeint values - - - Generate a range of uint32 values - - - Generate a range of uint64 values - - - Generate a range of int64 values - - - Generate a range of float32 values - - - Generate a range of float values - - - Generate a range of integers - - - Gets a slice from a string - The source string. - The index of the first character of the slice. - The index of the last character of the slice. - The substring from the given indices. - - - Sets a slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The start index of the fourth dimension. - The end index of the fourth dimension. - The source array. - - - Gets a slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The start index of the fourth dimension. - The end index of the fourth dimension. - The four dimensional sub array from the given indices. - - - Sets a slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The source array. - - - Gets a slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The three dimensional sub array from the given indices. - - - Sets a slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The source array. - - - Gets a slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The two dimensional sub array from the input indices. - - - Sets a slice of an array - The target array. - The start index. - The end index. - The source array. - - - Gets a slice of an array - The input array. - The start index. - The end index. - The sub array from the input indices. - - - A module of compiler intrinsic functions for efficient implementations of F# integer ranges - and dynamic invocations of other F# operators - - - Basic F# Operators. This module is automatically opened in all F# code. - - - Invoke an F# first class function value that accepts five curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The fourth arg. - The fifth arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept five curried arguments without intervening execution. - The input function. - The optimized function. - - - Construct an optimized function value that can accept five curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept five curried arguments - without intervening execution. This type should not typically used directly from - either F# code or from other CLI languages. - - - Invoke an F# first class function value that accepts four curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The fourth arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept four curried arguments without intervening execution. - The input function. - The optimized function. - - - Construct an optimized function value that can accept four curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept four curried arguments - without intervening execution. This type should not typically used directly from - either F# code or from other CLI languages. - - - Invoke an F# first class function value that accepts three curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept three curried arguments without intervening execution. - The input function. - The adapted function. - - - Construct an optimized function value that can accept three curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept - three iterated (curried) arguments without intervening execution. This type should not - typically used directly from either F# code or from other CLI languages. - - - Invoke the optimized function value with two curried arguments - The first arg. - The second arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept two curried arguments without intervening execution. - The input function. - The adapted function. - - - Construct an optimized function value that can accept two curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept - two iterated (curried) arguments without intervening execution. This type should not - typically used directly from either F# code or from other CLI languages. - - - An implementation module used to hold some private implementations of function - value invocation. - - - Convert the option to a list of length 0 or 1. - The input option. - The result list. - - - Convert the option to an array of length 0 or 1. - The input option. - The result array. - - - bind f inp evaluates to match inp with None -> None | Some x -> f x - A function that takes the value of type T from an option and transforms it into - an option containing a value of type U. - The input option. - An option of the output type of the binder. - - - map f inp evaluates to match inp with None -> None | Some x -> Some (f x). - A function to apply to the option value. - The input option. - An option of the input value after applying the mapping function, or None if the input is None. - - - iter f inp executes match inp with None -> () | Some x -> f x. - A function to apply to the option value. - The input option. - Unit if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - forall p inp" evaluates to "match inp with None -> true | Some x -> p x. - A function that evaluates to a boolean when given a value from the option type. - The input option. - True if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - exists p inp evaluates to match inp with None -> false | Some x -> p x. - A function that evaluates to a boolean when given a value from the option type. - The input option. - False if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - fold f inp s evaluates to match inp with None -> s | Some x -> f x s. - A function to update the state data when given a value from an option. - The input option. - The initial state. - The original state if the option is None, otherwise it returns the updated state with the folder - and the option value. - - - fold f s inp evaluates to match inp with None -> s | Some x -> f s x. - A function to update the state data when given a value from an option. - The initial state. - The input option. - The original state if the option is None, otherwise it returns the updated state with the folder - and the option value. - - - count inp evaluates to match inp with None -> 0 | Some _ -> 1. - The input option. - A zero if the option is None, a one otherwise. - - - Gets the value associated with the option. - The input option. - The value within the option. - Thrown when the option is None. - - - Returns true if the option is None. - The input option. - True if the option is None. - - - Returns true if the option is not None. - The input option. - True if the option is not None. - - - Basic operations on options. - - - Represents a statically-analyzed format associated with writing to a System.IO.TextWriter. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format when formatting builds a string. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format associated with writing to a System.Text.StringBuilder. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format associated with writing to a System.IO.TextWriter. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Represents a statically-analyzed format when formatting builds a string. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Represents a statically-analyzed format associated with writing to a System.Text.StringBuilder. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Print to a string buffer and raise an exception with the given - result. Helper printers must return strings. - The input formatter. - The arguments of the formatter. - - - sprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called to generate a result from the formatted string. - The input formatter. - The arguments of the formatter. - - - printf, but call the given 'final' function to generate the result. - For example, these let the printing force a flush after all output has - been entered onto the channel, but not before. - The function called after formatting to generate the format result. - The input formatter. - The arguments of the formatter. - - - fprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called after formatting to generate the format result. - The input TextWriter. - The input formatter. - The arguments of the formatter. - - - bprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called after formatting to generate the format result. - The input StringBuilder. - The input formatter. - The arguments of the formatter. - - - Print to a string via an internal string buffer and return - the result as a string. Helper printers must return strings. - The input formatter. - The formatted string. - - - Formatted printing to stdout, adding a newline. - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stdout - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stderr, adding a newline - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stderr - The input formatter. - The return type and arguments of the formatter. - - - Print to a text writer, adding a newline - The TextWriter to print to. - The input formatter. - The return type and arguments of the formatter. - - - Print to a text writer. - The TextWriter to print to. - The input formatter. - The return type and arguments of the formatter. - - - Print to a System.Text.StringBuilder - The StringBuilder to print to. - The input formatter. - The return type and arguments of the formatter. - - - Extensible printf-style formatting for numbers and other datatypes - - Format specifications are strings with "%" markers indicating format - placeholders. Format placeholders consist of: - - %[flags][width][.precision][type] - - where the type is interpreted as follows: - - %b: bool, formatted as "true" or "false" - %s: string, formatted as its unescaped contents - %d, %i: any basic integer type formatted as a decimal integer, signed if the basic integer type is signed. - %u: any basic integer type formatted as an unsigned decimal integer - %x, %X, %o: any basic integer type formatted as an unsigned hexadecimal - (a-f)/Hexadecimal (A-F)/Octal integer - - %e, %E, %f, %F, %g, %G: - any basic floating point type (float,float32) formatted - using a C-style floating point format specifications, i.e - - %e, %E: Signed value having the form [-]d.dddde[sign]ddd where - d is a single decimal digit, dddd is one or more decimal - digits, ddd is exactly three decimal digits, and sign - is + or - - - %f: Signed value having the form [-]dddd.dddd, where dddd is one - or more decimal digits. The number of digits before the - decimal point depends on the magnitude of the number, and - the number of digits after the decimal point depends on - the requested precision. - - %g, %G: Signed value printed in f or e format, whichever is - more compact for the given value and precision. - - - %M: System.Decimal value - - %O: Any value, printed by boxing the object and using it's ToString method(s) - - %A: Any value, printed with the default layout settings - - %a: A general format specifier, requires two arguments: - (1) a function which accepts two arguments: - (a) a context parameter of the appropriate type for the - given formatting function (e.g. an #System.IO.TextWriter) - (b) a value to print - and which either outputs or returns appropriate text. - - (2) the particular value to print - - - %t: A general format specifier, requires one argument: - (1) a function which accepts a context parameter of the - appropriate type for the given formatting function (e.g. - an System.IO.TextWriter)and which either outputs or returns - appropriate text. - - Basic integer types are: - byte,sbyte,int16,uint16,int32,uint32,int64,uint64,nativeint,unativeint - Basic floating point types are: - float, float32 - - The optional width is an integer indicating the minimal width of the - result. For instance, %6d prints an integer, prefixing it with spaces - to fill at least 6 characters. If width is '*', then an extra integer - argument is taken to specify the corresponding width. - - any number - '*': - - Valid flags are: - - 0: add zeros instead of spaces to make up the required width - '-': left justify the result within the width specified - '+': add a '+' character if the number is positive (to match a '-' sign - for negatives) - ' ': add an extra space if the number is positive (to match a '-' - sign for negatives) - - The printf '#' flag is invalid and a compile-time error will be reported if it is used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns the length of the string. - The input string. - The number of characters in the string. - Thrown when the input string is null. - - - Returns a string by concatenating count instances of str. - The number of copies of the input string will be copied. - The input string. - The concatenated string. - Thrown when the input string is null. - - - Tests if any character of the string satisfies the given predicate. - The function to test each character of the string. - The input string. - True if any character returns true for the predicate and false otherwise. - Thrown when the input string is null. - - - Tests if all characters in the string satisfy the given predicate. - The function to test each character of the string. - The input string. - True if all characters return true for the predicate and false otherwise. - Thrown when the input string is null. - - - Builds a new string whose characters are the results of applying the function mapping - to each index from 0 to count-1 and concatenating the resulting - strings. - The number of strings to initialize. - The function to take an index and produce a string to - be concatenated with the others. - The constructed string. - Thrown when count is negative. - - - Builds a new string whose characters are the results of applying the function mapping - to each of the characters of the input string and concatenating the resulting - strings. - The function to produce a string from each character of the input string. - The input string. - The concatenated string. - Thrown when the input string is null. - - - Builds a new string whose characters are the results of applying the function mapping - to each character and index of the input string. - The function to apply to each character and index of the string. - The input string. - The resulting string. - Thrown when the input string is null. - - - Builds a new string whose characters are the results of applying the function mapping - to each of the characters of the input string. - The function to apply to the characters of the string. - The input string. - The resulting string. - Thrown when the input string is null. - - - Applies the function action to the index of each character in the string and the - character itself. - The function to apply to each character and index of the string. - The input string. - Thrown when the input string is null. - - - Applies the function action to each character in the string. - The function to be applied to each character of the string. - The input string. - Thrown when the input string is null. - - - Returns a new string made by concatenating the given strings - with separator sep, that is a1 + sep + ... + sep + aN. - The separator string to be inserted between the strings - of the input sequence. - The sequence of strings to be concatenated. - A new string consisting of the concatenated strings separated by - the separation string. - Thrown when strings is null. - - - Functional programming operators for string processing. Further string operations - are available via the member functions on strings and other functionality in - System.String - and System.Text.RegularExpressions types. - - - Allocates a region of memory on the stack. - The number of objects of type T to allocate. - A typed pointer to the allocated memory. - - - Assigns the value into the memory location referenced by the typed native - pointer computed by adding index * sizeof<'T> to the given input pointer. - The input pointer. - The index by which to offset the pointer. - The value to assign. - - - Assigns the value into the memory location referenced by the given typed native pointer. - The input pointer. - The value to assign. - - - Dereferences the given typed native pointer. - The input pointer. - The value at the pointer address. - - - Dereferences the typed native pointer computed by adding index * sizeof<'T> to the - given input pointer. - The input pointer. - The index by which to offset the pointer. - The value at the pointer address. - - - Returns a typed native pointer by adding index * sizeof<'T> to the - given input pointer. - The input pointer. - The index by which to offset the pointer. - A typed pointer. - - - Returns a machine address for a given typed native pointer. - The input pointer. - The machine address. - - - Returns a typed native pointer for a given machine address. - The pointer address. - A typed pointer. - - - Contains operations on native pointers. Use of these operators may - result in the generation of unverifiable code. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gets the raw expression associated with this type-carrying expression - - - Type-carrying quoted expressions. Expressions are generated either - by quotations in source text or programatically - - - Returns type of an expression. - - - Returns the custom attributes of an expression. - - - Builds an expression that represents a while loop - The predicate to control the loop iteration. - The body of the while loop. - The resulting expression. - - - Builds an expression that represents setting a mutable variable - The input variable. - The value to set. - The resulting expression. - - - Builds an expression that represents a variable - The input variable. - The resulting expression. - - - Builds an expression that represents a constant value - The typed value. - The resulting expression. - - - Builds an expression that represents a constant value of a particular type - The untyped object. - The type of the object. - The resulting expression. - - - Builds an expression that represents a test of a value is of a particular union case - The expression to test. - The description of the union case. - The resulting expression. - - - Builds an expression that represents a type test. - The expression to test. - The target type. - The resulting expression. - - - Builds an expression that represents getting a field of a tuple - The input tuple. - The index of the tuple element to get. - The resulting expression. - - - Builds an expression that represents a try/with construct for exception filtering and catching. - The body of the try expression. - - - The variable to bind to a caught exception. - The expression evaluated when an exception is caught. - The resulting expression. - - - Try and find a stored reflection definition for the given method. Stored reflection - definitions are added to an F# assembly through the use of the [<ReflectedDefinition>] attribute. - The description of the method to find. - The reflection definition or None if a match could not be found. - - - Builds an expression that represents a try/finally construct - The body of the try expression. - The final part of the expression to be evaluated. - The resulting expression. - - - Substitutes through the given expression using the given functions - to map variables to new values. The functions must give consistent results - at each application. Variable renaming may occur on the target expression - if variable capture occurs. - The function to map variables into expressions. - The expression with the given substitutions. - - - Builds an expression that represents the sequential execution of one expression followed by another - The first expression. - The second expression. - The resulting expression. - - - Permits interactive environments such as F# Interactive - to explicitly register new pickled resources that represent persisted - top level definitions. The string indicates a unique name for the resources - being added. The format for the bytes is the encoding generated by the F# compiler. - The assembly associated with the resource. - The unique name for the resources being added. - The serialized resource to register with the environment. - - - Builds an expression that represents a nested quotation literal - The expression being quoted. - The resulting expression. - - - Builds an expression that represents writing to a static property - The description of the property. - The value to set. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents writing to a property of an object - The input object. - The description of the property. - The value to set. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents reading a static property - The description of the property. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents reading a property of an object - The input object. - The description of the property. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents the creation of a union case value - The description of the union case. - The list of arguments for the case. - The resulting expression. - - - Builds an expression that represents the creation of an F# tuple value - The list of elements of the tuple. - The resulting expression. - - - Builds record-construction expressions - The type of record. - The list of elements of the record. - The resulting expression. - - - Builds an expression that represents the invocation of an object constructor - The description of the constructor. - The list of arguments to the constructor. - The resulting expression. - - - Builds an expression that represents the creation of a delegate value for the given type - The type of delegate. - The parameters for the delegate. - The body of the function. - The resulting expression. - - - Builds an expression that represents the creation of an array value initialized with the given elements - The type for the elements of the array. - The list of elements of the array. - The resulting expression. - - - Builds recursives expressions associated with 'let rec' constructs - The list of bindings for the let expression. - The sub-expression where the bindings are in scope. - The resulting expression. - - - Builds expressions associated with 'let' constructs - The variable in the let expression. - The expression bound to the variable. - The sub-expression where the binding is in scope. - The resulting expression. - - - Builds an expression that represents the constrution of an F# function value - The parameter to the function. - The body of the function. - The resulting expression. - - - Builds 'if ... then ... else' expressions. - The condition expression. - The then sub-expression. - The else sub-expression. - The resulting expression. - - - Fetches or creates a new variable with the given name and type from a global pool of shared variables - indexed by name and type. The type is given by the expicit or inferred type parameter - The variable name. - The created of fetched typed global variable. - - - Gets the free expression variables of an expression as a list. - A sequence of the free variables in the expression. - - - Builds a 'for i = ... to ... do ...' expression that represent loops over integer ranges - The sub-expression declaring the loop variable. - The sub-expression setting the initial value of the loop variable. - The sub-expression declaring the final value of the loop variable. - The sub-expression representing the body of the loop. - The resulting expression. - - - Builds an expression that represents writing to a field of an object - The input object. - The description of the field to write to. - The value to set to the field. - The resulting expression. - - - Builds an expression that represents writing to a static field - The description of the field to write to. - The value to the set to the field. - The resulting expression. - - - Builds an expression that represents the access of a field of an object - The input object. - The description of the field to access. - The resulting expression. - - - Builds an expression that represents the access of a static field - The description of the field to access. - The resulting expression. - - - - - - This function is called automatically when quotation syntax (<@ @>) and related typed-expression - quotations are used. The bytes are a pickled binary representation of an unlinked form of the quoted expression, - and the System.Type argument is any type in the assembly where the quoted - expression occurs, i.e. it helps scope the interpretation of the cross-assembly - references in the bytes. - A type in the assembly where the quotation occurs. - The list of spliced types. - The list of spliced expressions. - The serialized form of the quoted expression. - The resulting expression. - - - Builds an expression that represents the invocation of a default object constructor - The type on which the constructor is invoked. - The resulting expression. - - - Builds an expression that represents the coercion of an expression to a type - The expression to coerce. - The target type. - The resulting expression. - - - Returns a new typed expression given an underlying runtime-typed expression. - A type annotation is usually required to use this function, and - using an incorrect type annotation may result in a later runtime exception. - The expression to cast. - The resulting typed expression. - - - Builds an expression that represents a call to an instance method associated with an object - The input object. - The description of the method to call. - The list of arguments to the method. - The resulting expression. - - - Builds an expression that represents a call to an static method or module-bound function - The MethodInfo describing the method to call. - The list of arguments to the method. - The resulting expression. - - - Builds an expression that represents the application of a first class function value to multiple arguments - The function to apply. - The list of lists of arguments to the function. - The resulting expression. - - - Builds an expression that represents the application of a first class function value to a single argument. - The function to apply. - The argument to the function. - The resulting expression. - - - Builds an expression that represents setting the value held at a particular address. - The target expression. - The value to set at the address. - The resulting expression. - - - Builds an expression that represents getting the address of a value. - The target expression. - The resulting expression. - - - Quoted expressions annotated with System.Type values. - - - The type associated with the variable - - - The declared name of the variable - - - Indicates if the variable represents a mutable storage location - - - Fetches or create a new variable with the given name and type from a global pool of shared variables - indexed by name and type - The name of the variable. - The type associated with the variable. - The retrieved or created variable. - - - Creates a new variable with the given name, type and mutability - The declared name of the variable. - The type associated with the variable. - Indicates if the variable represents a mutable storage location. Default is false. - The created variable. - - - Information at the binding site of a variable - - - Re-build combination expressions. The first parameter should be an object - returned by the ShapeCombination case of the active pattern in this module. - The input shape. - The list of arguments. - The rebuilt expression. - - - An active pattern that performs a complete decomposition viewing the expression tree as a binding structure - The input expression. - The decomposed Var, Lambda, or ConstApp. - - - Active patterns for traversing, visiting, rebuilding and tranforming expressions in a generic way - - - An active pattern to recognize property setters that have an associated ReflectedDefinition - The description of the property. - The expression of the method definition if found, or None. - - - An active pattern to recognize property getters or values in modules that have an associated ReflectedDefinition - The description of the property. - The expression of the method definition if found, or None. - - - An active pattern to recognize methods that have an associated ReflectedDefinition - The description of the method. - The expression of the method definition if found, or None. - - - A parameterized active pattern to recognize calls to a specified function or method. - The returned elements are the optional target object (present if the target is an - instance method), the generic type instantation (non-empty if the target is a generic - instantiation), and the arguments to the function or method. - The input template expression to specify the method to call. - The optional target object (present if the target is an - instance method), the generic type instantation (non-empty if the target is a generic - instantiation), and the arguments to the function or method. - - - An active pattern to recognize constant unsigned int64 expressions - The input expression to match against. - uint64 option - - - An active pattern to recognize constant int64 expressions - The input expression to match against. - int64 option - - - An active pattern to recognize constant unsigned int32 expressions - The input expression to match against. - uint32 option - - - An active pattern to recognize constant int32 expressions - The input expression to match against. - int32 option - - - An active pattern to recognize constant unsigned int16 expressions - The input expression to match against. - uint16 option - - - An active pattern to recognize constant int16 expressions - The input expression to match against. - int16 option - - - An active pattern to recognize constant byte expressions - The input expression to match against. - byte option - - - An active pattern to recognize constant signed byte expressions - The input expression to match against. - sbyte option - - - An active pattern to recognize constant unicode character expressions - The input expression to match against. - char option - - - An active pattern to recognize constant 64-bit floating point number expressions - The input expression to match against. - float option - - - An active pattern to recognize constant 32-bit floating point number expressions - The input expression to match against. - float32 option - - - An active pattern to recognize constant string expressions - The input expression to match against. - string option - - - An active pattern to recognize constant boolean expressions - The input expression to match against. - bool option - - - An active pattern to recognize () constant expressions - The input expression to match against. - unit option - - - An active pattern to recognize expressions of the form a || b - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions of the form a && b - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent the application of a (possibly curried or tupled) first class function value - The input expression to match against. - (Expr * Expr list list) option - - - An active pattern to recognize expressions that represent a (possibly curried or tupled) first class function value - The input expression to match against. - (Var list list * Expr) option - - - Contains a set of derived F# active patterns to analyze F# expression objects - - - An active pattern to recognize expressions that represent setting a mutable variable - The input expression to match against. - (Var * Expr) option - - - An active pattern to recognize expressions that represent a variable - The input expression to match against. - Var option - - - An active pattern to recognize expressions that represent a constant value - The input expression to match against. - (obj * Type) option - - - An active pattern to recognize expressions that represent a test if a value is of a particular union case - The input expression to match against. - (Expr * UnionCaseInfo) option - - - An active pattern to recognize expressions that represent a dynamic type test - The input expression to match against. - (Expr * Type) option - - - An active pattern to recognize expressions that represent getting a tuple field - The input expression to match against. - (Expr * int) option - - - An active pattern to recognize expressions that represent a try/finally construct - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent a try/with construct for exception filtering and catching - The input expression to match against. - (Expr * Var * Expr * Var * Expr) option - - - An active pattern to recognize expressions that represent sequential exeuction of one expression followed by another - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent a nested quotation literal - The input expression to match against. - Expr option - - - An active pattern to recognize expressions that represent setting a static or instance property, or a non-function value declared in a module - The input expression to match against. - (Expr option * PropertyInfo * Expr list * Expr) option - - - An active pattern to recognize expressions that represent the read of a static or instance property, or a non-function value declared in a module - The input expression to match against. - (Expr option * PropertyInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of tuple values - The input expression to match against. - (Expr list) option - - - An active pattern to recognize expressions that represent construction of particular union case values - The input expression to match against. - (UnionCaseInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of record values - The input expression to match against. - (Type * Expr list) option - - - An active pattern to recognize expressions that represent invocation of object constructors - The input expression to match against. - (ConstructorInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of delegate values - The input expression to match against. - (Type * Var list * Expr) option - - - An active pattern to recognize expressions that represent invocations of a default constructor of a struct - The input expression to match against. - Type option - - - An active pattern to recognize expressions that represent the construction of arrays - The input expression to match against. - (Type * Expr list) option - - - An active pattern to recognize expressions that represent recursive let bindings of one or more variables - The input expression to match against. - ((Var * Expr) list * Expr) option - - - An active pattern to recognize expressions that represent let bindings - The input expression to match against. - (Var * Expr * Expr) option - - - An active pattern to recognize expressions that represent first class function values - The input expression to match against. - (Var * Expr) option - - - An active pattern to recognize expressions that represent conditionals - The input expression to match against. - (Expr * Expr * Expr) option - - - An active pattern to recognize expressions that represent while loops - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent loops over integer ranges - The input expression to match against. - (Var * Expr * Expr * Expr) option - - - An active pattern to recognize expressions that represent setting a static or instance field - The input expression to match against. - (Expr option * FieldInfo * Expr) option - - - An active pattern to recognize expressions that represent getting a static or instance field - The input expression to match against. - (Expr option * FieldInfo) option - - - An active pattern to recognize expressions that represent coercions from one type to another - The input expression to match against. - (Expr * Type) option - - - An active pattern to recognize expressions that represent calls to static and instance methods, and functions defined in modules - The input expression to match against. - (Expr option * MethodInfo * Expr list) option - - - An active pattern to recognize expressions that represent applications of first class function values - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent setting the value held at an address - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent getting the address of a value - The input expression to match against. - Expr option - - - Contains a set of primitive F# active patterns to analyze F# expression objects - - - Returns a System.Type representing an F# tuple type with the given element types - An array of types for the tuple elements. - The type representing the tuple containing the input elements. - - - Returns a System.Type representing the F# function type with the given domain and range - The input type of the function. - The output type of the function. - The function type with the given domain and range. - - - Returns true if the typ is a representation of an F# union type or the runtime type of a value of that type - The type to check. - Optional binding flags. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# tuple type - The type to check. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# record type - The type to check. - Optional binding flags. - True if the type check succeeds. - - - Return true if the typ is a System.Type value corresponding to the compiled form of an F# module - The type to check. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# function type or the runtime type of a closure implementing an F# function type - The type to check. - True if the type check succeeds. - - - Returns true if the typ is a representation of an F# exception declaration - The type to check. - Optional binding flags. - True if the type check is an F# exception. - - - Gets the cases of a union type. - - Assumes the given type is a union type. If not, ArgumentException is raised during pre-computation. - The input union type. - Optional binding flags. - Thrown when the input type is not a union type. - An array of descriptions of the cases of the given union type. - - - Gets the tuple elements from the representation of an F# tuple type. - The input tuple type. - An array of the types contained in the given tuple type. - - - Reads all the fields from a record value, in declaration order - - Assumes the given input is a record value. If not, ArgumentException is raised. - The input record type. - Optional binding flags. - An array of descriptions of the properties of the record type. - - - Gets the domain and range types from an F# function type or from the runtime type of a closure implementing an F# type - The input function type. - A tuple of the domain and range types of the input function. - - - Reads all the fields from an F# exception declaration, in declaration order - - Assumes exceptionType is an exception representation type. If not, ArgumentException is raised. - The exception type to read. - Optional binding flags. - Thrown if the given type is not an exception. - An array containing the PropertyInfo of each field in the exception. - - - Contains operations associated with constructing and analyzing F# types such as records, unions and tuples - - - Assumes the given type is a union type. - If not, ArgumentException is raised during pre-computation. - - Using the computed function is more efficient than calling GetUnionCase - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of union to optimize reading. - Optional binding flags. - An optimized function to read the tags of the given union type. - - - Precompute a property or static method for reading an integer representing the case tag of a union type. - The type of union to read. - Optional binding flags. - The description of the union case reader. - - - Precomputes a function for reading all the fields for a particular discriminator case of a union type - - Using the computed function will typically be faster than executing a corresponding call to GetFields - The description of the union case to read. - Optional binding flags. - A function to for reading the fields of the given union case. - - - A method that constructs objects of the given case - The description of the union case. - Optional binding flags. - The description of the constructor of the given union case. - - - Precomputes a function for constructing a discriminated union value for a particular union case. - The description of the union case. - Optional binding flags. - A function for constructing values of the given union case. - - - Precomputes a function for reading the values of a particular tuple type - - Assumes the given type is a TupleType. - If not, ArgumentException is raised during pre-computation. - The tuple type to read. - Thrown when the given type is not a tuple type. - A function to read values of the given tuple type. - - - Gets information that indicates how to read a field of a tuple - The input tuple type. - The index of the tuple element to describe. - The description of the tuple element and an optional type and index if the tuple is big. - - - Gets a method that constructs objects of the given tuple type. - For small tuples, no additional type will be returned. - - For large tuples, an additional type is returned indicating that - a nested encoding has been used for the tuple type. In this case - the suffix portion of the tuple type has the given type and an - object of this type must be created and passed as the last argument - to the ConstructorInfo. A recursive call to PreComputeTupleConstructorInfo - can be used to determine the constructor for that the suffix type. - The input tuple type. - The description of the tuple type constructor and an optional extra type - for large tuples. - - - Precomputes a function for reading the values of a particular tuple type - - Assumes the given type is a TupleType. - If not, ArgumentException is raised during pre-computation. - The type of tuple to read. - Thrown when the given type is not a tuple type. - A function to read a particular tuple type. - - - Precompute a function for reading all the fields from a record. The fields are returned in the - same order as the fields reported by a call to Microsoft.FSharp.Reflection.Type.GetInfo for - this type. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - - Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of record to read. - Optional binding flags. - Thrown when the input type is not a record type. - An optimized reader for the given record type. - - - Precompute a function for reading a particular field from a record. - Assumes the given type is a RecordType with a field of the given name. - If not, ArgumentException is raised during pre-computation. - - Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The PropertyInfo of the field to read. - Thrown when the input type is not a record type. - A function to read the specified field from the record. - - - Get a ConstructorInfo for a record type - The record type. - Optional binding flags. - A ConstructorInfo for the given record type. - - - Precompute a function for constructing a record value. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - The type of record to construct. - Optional binding flags. - Thrown when the input type is not a record type. - A function to construct records of the given type. - - - Create a union case value. - The description of the union case to create. - The array of arguments to construct the given case. - Optional binding flags. - The constructed union case. - - - Creates an instance of a tuple type - - Assumes at least one element is given. If not, ArgumentException is raised. - The array of tuple fields. - The tuple type to create. - Thrown if no elements are given. - An instance of the tuple type with the given elements. - - - Creates an instance of a record type. - - Assumes the given input is a record type. - The type of record to make. - The array of values to initialize the record. - Optional binding flags for the record. - Thrown when the input type is not a record type. - The created record. - - - Builds a typed function from object from a dynamic function implementation - The function type of the implementation. - The untyped lambda of the function implementation. - A typed function from the given dynamic implementation. - - - Identify the union case and its fields for an object - - Assumes the given input is a union case value. If not, ArgumentException is raised. - - If the type is not given, then the runtime type of the input object is used to identify the - relevant union type. The type should always be given if the input object may be null. For example, - option values may be represented using the 'null'. - The input union case. - The union type containing the value. - Optional binding flags. - Thrown when the input type is not a union case value. - The description of the union case and its fields. - - - Reads all fields from a tuple. - - Assumes the given input is a tuple value. If not, ArgumentException is raised. - The input tuple. - Thrown when the input is not a tuple value. - An array of the fields from the given tuple. - - - Reads a field from a tuple value. - - Assumes the given input is a tuple value. If not, ArgumentException is raised. - The input tuple. - The index of the field to read. - The value of the field. - - - Reads all the fields from a record value. - - Assumes the given input is a record value. If not, ArgumentException is raised. - The record object. - Optional binding flags for the record. - Thrown when the input type is not a record type. - The array of fields from the record. - - - Reads a field from a record value. - - Assumes the given input is a record value. If not, ArgumentException is raised. - The record object. - The PropertyInfo describing the field to read. - Thrown when the input type is not a record type. - The field from the record. - - - Reads all the fields from a value built using an instance of an F# exception declaration - - Assumes the given input is an F# exception value. If not, ArgumentException is raised. - The exception instance. - Optional binding flags. - Thrown when the input type is not an F# exception. - The fields from the given exception. - - - Contains operations associated with constructing and analyzing values associated with F# types - such as records, unions and tuples. - - - The integer tag for the case. - - - The name of the case. - - - The type in which the case occurs. - - - The fields associated with the case, represented by a PropertyInfo. - The fields associated with the case. - - - Returns the custom attributes associated with the case matching the given attribute type. - The type of attributes to return. - An array of custom attributes. - - - Returns the custom attributes associated with the case. - An array of custom attributes. - - - Represents a case of a discriminated union type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A record of options to control structural formatting. - For F# Interactive properties matching those of this value can be accessed via the 'fsi' - value. - - Floating Point format given in the same format accepted by System.Double.ToString, - e.g. f6 or g15. - - If ShowProperties is set the printing process will evaluate properties of the values being - displayed. This may cause additional computation. - - The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects - to a small, finite depth, as determined by the printing parameters. - This may lead to additional computation being performed during printing. - - <example> - From F# Interactive the default settings can be adjusted using, for example, - <pre> - open Microsoft.FSharp.Compiler.Interactive.Settings;; - setPrintWidth 120;; - </pre> - </example> - - - - - Data representing structured layouts of terms. - - - - - Convert any value to a layout using the given formatting options. The - layout can then be processed using formatting display engines such as - those in the LayoutOps module. any_to_string and output_any are - built using any_to_layout with default format options. - - - - - - - - Ouput any value to a channel using the same set of formatting rules - as any_to_string - - - - - Convert any value to a string using a standard formatter - Data is typically formatted in a structured format, e.g. - lists are formatted using the "[1;2]" notation. - The details of the format are not specified and may change - from version to version and according to the flags given - to the F# compiler. The format is intended to be human-readable, - not machine readable. If alternative generic formats are required - you should develop your own formatter, using the code in the - implementation of this file as a starting point. - - Data from other .NET languages is formatted using a virtual - call to Object.ToString() on the boxed version of the input. - - - - - - - - For limitting layout of list-like sequences (lists,arrays,etc). - unfold a list of items using (project and z) making layout list via itemL. - If reach maxLength (before exhausting) then truncate. - - - - - See tagL - - - - - Layout like an F# list. - - - - - Layout like an F# option. - - - - - Layout list vertically. - - - - - Layout two vertically. - - - - - Form tuple of layouts. - - - - - Wrap braces around layout. - - - - - Wrap square brackets around layout. - - - - - Wrap round brackets around Layout. - - - - - Join layouts into a list separated using the given Layout. - - - - - Join layouts into a semi-colon separated list. - - - - - Join layouts into a space separated list. - - - - - Join layouts into a comma separated list. - - - - - Join broken with ident=2 - - - - - Join broken with ident=1 - - - - - Join broken with ident=0 - - - - - Join, possible break with indent=2 - - - - - Join, possible break with indent=1 - - - - - Join, possible break with indent=0 - - - - - Join, unbreakable. - - - - - An string which is left parenthesis (no space on the right). - - - - - An string which is right parenthesis (no space on the left). - - - - - An string which requires no spaces either side. - - - - - An string leaf - - - - - An uninterpreted leaf, to be interpreted into a string - by the layout engine. This allows leaf layouts for numbers, strings and - other atoms to be customized according to culture. - - - - - Is it the empty layout? - - - - - The empty layout - - - - - A layout is a sequence of strings which have been joined together. - The strings are classified as words, separators and left and right parenthesis. - This classification determines where spaces are inserted. - A joint is either unbreakable, breakable or broken. - If a joint is broken the RHS layout occurs on the next line with optional indentation. - A layout can be squashed to for given width which forces breaks as required. - - - - diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/app.config.transform b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/app.config.transform deleted file mode 100644 index 85e5fda3a..000000000 --- a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/app.config.transform +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/web.config.transform b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/web.config.transform deleted file mode 100644 index 85e5fda3a..000000000 --- a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/content/web.config.transform +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.dll b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.dll deleted file mode 100644 index 1cb1ee40b..000000000 Binary files a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.dll and /dev/null differ diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.pdb b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.pdb deleted file mode 100644 index 59dbddcc3..000000000 Binary files a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net40-client/FirebirdSql.Data.FirebirdClient.pdb and /dev/null differ diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.dll b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.dll deleted file mode 100644 index 39ec6e9b2..000000000 Binary files a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.dll and /dev/null differ diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.pdb b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.pdb deleted file mode 100644 index f53b73a3f..000000000 Binary files a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/lib/net45/FirebirdSql.Data.FirebirdClient.pdb and /dev/null differ diff --git a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/readme.txt b/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/readme.txt deleted file mode 100644 index c18eebb08..000000000 --- a/packages/FirebirdSql.Data.FirebirdClient.4.6.1.0/readme.txt +++ /dev/null @@ -1,35 +0,0 @@ -README - FirebirdClient ADO.NET 2.0 Data provider for Firebird -============================================================== - -This project is supported by: ------------------------------ - - Sean Leyne (Broadview Software) - SMS-Timing - - -Developement list ------------------ - -You can subscribe to the developement list at: - - http://lists.sourceforge.net/lists/listinfo/firebird-net-provider - - -You can access to the lastest developement sources through Git, see: - - https://sourceforge.net/p/firebird/NETProvider/ci/master/tree/ - - -Reporting Bugs --------------- - -Yo can report bugs using two ways: - -1. Sending it to the developement list. -2. Thru the Firebird Project tracker (category DNET): - - - http://tracker.firebirdsql.org/DNET - - diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/Content/web.config.transform b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/Content/web.config.transform deleted file mode 100644 index ee1883313..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/Content/web.config.transform +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest deleted file mode 100644 index 47bd4a04a..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest +++ /dev/null @@ -1,6 +0,0 @@ - - - - - Vy8CgQgbu3qH5JHTK0op4kR8114= QTJu3Gttpt8hhCktGelNeXj4Yp8= 1ruqF7/L+m1tqnJVscaOtNRNHIE= - \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/README_ENU.txt b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/README_ENU.txt deleted file mode 100644 index fc38b3684..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/README_ENU.txt and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/msvcr90.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/msvcr90.dll deleted file mode 100644 index c95e1bf21..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/Microsoft.VC90.CRT/msvcr90.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceca40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceca40.dll deleted file mode 100644 index d5d4c2044..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceca40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcecompact40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcecompact40.dll deleted file mode 100644 index ed061adee..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcecompact40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceer40EN.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceer40EN.dll deleted file mode 100644 index e19eed9bd..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceer40EN.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceme40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceme40.dll deleted file mode 100644 index c67fc9e6a..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceme40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceqp40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceqp40.dll deleted file mode 100644 index df4440332..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlceqp40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcese40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcese40.dll deleted file mode 100644 index af2de5ec9..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/amd64/sqlcese40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest deleted file mode 100644 index bbd12ccde..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest +++ /dev/null @@ -1,6 +0,0 @@ - - - - - +CXED+6HzJlSphyMNOn27ujadC0= MyKED+9DyS+1XcMeaC0Zlw2vFZ0= EeyDE7og6WoPd2oBhYbMEnpFHhY= - \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/README_ENU.txt b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/README_ENU.txt deleted file mode 100644 index fc38b3684..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/README_ENU.txt and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/msvcr90.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/msvcr90.dll deleted file mode 100644 index e2e66019c..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/Microsoft.VC90.CRT/msvcr90.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceca40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceca40.dll deleted file mode 100644 index 92596101e..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceca40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcecompact40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcecompact40.dll deleted file mode 100644 index 41c69ecc5..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcecompact40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceer40EN.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceer40EN.dll deleted file mode 100644 index a40154fd3..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceer40EN.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceme40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceme40.dll deleted file mode 100644 index d737119fa..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceme40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceqp40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceqp40.dll deleted file mode 100644 index dedfc9a3c..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlceqp40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcese40.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcese40.dll deleted file mode 100644 index cc37e3b54..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/NativeBinaries/x86/sqlcese40.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/SQLCE_EULA_ENU.rtf b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/SQLCE_EULA_ENU.rtf deleted file mode 100644 index 37da48d1a..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/SQLCE_EULA_ENU.rtf +++ /dev/null @@ -1,774 +0,0 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff38\deff0\stshfdbch11\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe2052\themelangcs1025{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};} -{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New{\*\falt Arial};}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol{\*\falt Bookshelf Symbol 3};} -{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings{\*\falt Symbol};}{\f11\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt ?l?r ??\'81\'66c};} -{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ??????\'a8\'ac???};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} -{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma{\*\falt ?? ??};}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0603020202020204}Trebuchet MS{\*\falt Arial};} -{\f40\fbidi \fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Mincho{\*\falt @MS Gothic};}{\f41\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun;} -{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ??????\'a8\'ac???};} -{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};} -{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ??????\'a8\'ac???};} -{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}{\f42\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};} -{\f43\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f45\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}{\f46\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};} -{\f47\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f48\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\f49\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};} -{\f50\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f62\fbidi \fmodern\fcharset238\fprq1 Courier New CE{\*\falt Arial};}{\f63\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr{\*\falt Arial};} -{\f65\fbidi \fmodern\fcharset161\fprq1 Courier New Greek{\*\falt Arial};}{\f66\fbidi \fmodern\fcharset162\fprq1 Courier New Tur{\*\falt Arial};}{\f67\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew){\*\falt Arial};} -{\f68\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic){\*\falt Arial};}{\f69\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic{\*\falt Arial};}{\f70\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese){\*\falt Arial};} -{\f154\fbidi \fmodern\fcharset0\fprq1 MS Mincho Western{\*\falt ?l?r ??\'81\'66c};}{\f152\fbidi \fmodern\fcharset238\fprq1 MS Mincho CE{\*\falt ?l?r ??\'81\'66c};}{\f153\fbidi \fmodern\fcharset204\fprq1 MS Mincho Cyr{\*\falt ?l?r ??\'81\'66c};} -{\f155\fbidi \fmodern\fcharset161\fprq1 MS Mincho Greek{\*\falt ?l?r ??\'81\'66c};}{\f156\fbidi \fmodern\fcharset162\fprq1 MS Mincho Tur{\*\falt ?l?r ??\'81\'66c};}{\f159\fbidi \fmodern\fcharset186\fprq1 MS Mincho Baltic{\*\falt ?l?r ??\'81\'66c};} -{\f174\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ??????\'a8\'ac???};}{\f382\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f383\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f385\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;} -{\f386\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f389\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f390\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f422\fbidi \fswiss\fcharset238\fprq2 Tahoma CE{\*\falt ?? ??};} -{\f423\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr{\*\falt ?? ??};}{\f425\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek{\*\falt ?? ??};}{\f426\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur{\*\falt ?? ??};} -{\f427\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew){\*\falt ?? ??};}{\f428\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic){\*\falt ?? ??};}{\f429\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic{\*\falt ?? ??};} -{\f430\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese){\*\falt ?? ??};}{\f431\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai){\*\falt ?? ??};}{\f432\fbidi \fswiss\fcharset238\fprq2 Trebuchet MS CE{\*\falt Arial};} -{\f433\fbidi \fswiss\fcharset204\fprq2 Trebuchet MS Cyr{\*\falt Arial};}{\f435\fbidi \fswiss\fcharset161\fprq2 Trebuchet MS Greek{\*\falt Arial};}{\f436\fbidi \fswiss\fcharset162\fprq2 Trebuchet MS Tur{\*\falt Arial};} -{\f439\fbidi \fswiss\fcharset186\fprq2 Trebuchet MS Baltic{\*\falt Arial};}{\f444\fbidi \fmodern\fcharset0\fprq1 @MS Mincho Western{\*\falt @MS Gothic};}{\f442\fbidi \fmodern\fcharset238\fprq1 @MS Mincho CE{\*\falt @MS Gothic};} -{\f443\fbidi \fmodern\fcharset204\fprq1 @MS Mincho Cyr{\*\falt @MS Gothic};}{\f445\fbidi \fmodern\fcharset161\fprq1 @MS Mincho Greek{\*\falt @MS Gothic};}{\f446\fbidi \fmodern\fcharset162\fprq1 @MS Mincho Tur{\*\falt @MS Gothic};} -{\f449\fbidi \fmodern\fcharset186\fprq1 @MS Mincho Baltic{\*\falt @MS Gothic};}{\f454\fbidi \fnil\fcharset0\fprq2 @SimSun Western;}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};} -{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};} -{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ??????\'a8\'ac???};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;} -{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;} -{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};} -{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};} -{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};} -{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};} -{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};} -{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\fdbminor\f31560\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt ??????\'a8\'ac???};}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \fswiss\fcharset238\fprq2 Arial CE;} -{\fbiminor\f31579\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\fbiminor\f31581\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\fbiminor\f31582\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\fbiminor\f31583\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} -{\fbiminor\f31584\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\fbiminor\f31585\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\fbiminor\f31586\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255; -\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0; -\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red31\green73\blue125;\ctextone\ctint255\cshade255\red0\green0\blue0;}{\*\defchp \fs22\dbch\af11 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \sautoupd \sqformat \spriority0 \styrsid1456345 Normal;}{\s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext1 \slink15 \sqformat \styrsid1456345 heading 1;}{\s2\ql \fi-363\li720\ri0\sb120\sa120\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 -\ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext2 \slink16 \sqformat \styrsid1456345 heading 2;}{\s3\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar -\tx1077\jclisttab\tx1440\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext3 \slink17 \sqformat \styrsid1456345 heading 3;}{\s4\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl3\outlinelevel3\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 -\af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext4 \slink18 \sqformat \styrsid1456345 heading 4;}{\s5\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar -\tx1792\jclisttab\tx2155\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl4\outlinelevel4\adjustright\rin0\lin1792\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext5 \slink19 \sqformat \styrsid1456345 heading 5;}{\s6\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar\jclisttab\tx2152\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl5\outlinelevel5\adjustright\rin0\lin2149\itap0 \rtlch\fcs1 -\af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext6 \slink20 \sqformat \styrsid1456345 heading 6;}{\s7\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar -\jclisttab\tx2509\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl6\outlinelevel6\adjustright\rin0\lin2506\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext7 \slink21 \sqformat \styrsid1456345 heading 7;}{\s8\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar\jclisttab\tx2866\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl7\outlinelevel7\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 -\af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext8 \slink22 \sqformat \styrsid1456345 heading 8;}{\s9\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar -\jclisttab\tx3223\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl8\outlinelevel8\adjustright\rin0\lin3221\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext9 \slink23 \sqformat \styrsid1456345 heading 9;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{\* -\cs15 \additive \rtlch\fcs1 \ab\af38\afs19 \ltrch\fcs0 \b\f38\fs19 \sbasedon10 \slink1 \slocked \styrsid1456345 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af38\afs19 \ltrch\fcs0 \b\f38\fs19 \sbasedon10 \slink2 \slocked \styrsid1456345 -Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink3 \slocked \styrsid1456345 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink4 \slocked \styrsid1456345 -Heading 4 Char;}{\*\cs19 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink5 \slocked \styrsid1456345 Heading 5 Char;}{\*\cs20 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink6 \slocked \styrsid1456345 -Heading 6 Char;}{\*\cs21 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink7 \slocked \styrsid1456345 Heading 7 Char;}{\*\cs22 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink8 \slocked \styrsid1456345 -Heading 8 Char;}{\*\cs23 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink9 \slocked \styrsid1456345 Heading 9 Char;}{\s24\ql \li357\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin357\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 \styrsid1456345 Body 1;}{ -\s25\ql \li720\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext25 \styrsid1456345 Body 2;}{\s26\ql \li1077\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext26 \styrsid1456345 Body 3;}{\s27\ql \li1435\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 -\af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext27 \styrsid1456345 Body 4;}{ -\s28\ql \li1803\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1803\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext28 \styrsid1456345 Body 5;}{\s29\ql \li2160\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext29 \styrsid1456345 Body 6;}{\s30\ql \li2506\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2506\itap0 \rtlch\fcs1 -\af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext30 \styrsid1456345 Body 7;}{ -\s31\ql \li2863\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext31 \styrsid1456345 Body 8;}{\s32\ql \li3221\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin3221\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext32 \styrsid1456345 Body 9;}{\s33\ql \fi-357\li357\ri0\sb120\sa120\widctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin357\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext33 \styrsid1456345 -Bullet 1;}{\s34\ql \fi-363\li720\ri0\sb120\sa120\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext34 \styrsid1456345 Bullet 2;}{\s35\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar -\jclisttab\tx1080\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext35 \slink87 \styrsid1456345 Bullet 3;}{\s36\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext36 \styrsid1456345 Bullet 4;}{\s37\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar -\jclisttab\tx1795\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin1792\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext37 \styrsid1456345 -Bullet 5;}{\s38\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar\jclisttab\tx2152\wrapdefault\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin2149\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext38 \styrsid1456345 Bullet 6;}{\s39\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar -\jclisttab\tx2509\wrapdefault\aspalpha\aspnum\faauto\ls7\adjustright\rin0\lin2506\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext39 \styrsid1456345 -Bullet 7;}{\s40\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar\jclisttab\tx2866\wrapdefault\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext40 \styrsid1456345 Bullet 8;}{\s41\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar -\jclisttab\tx3223\wrapdefault\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin3221\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon32 \snext41 \styrsid1456345 Bullet 9;}{\s42\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 -\b\fs28\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid1456345 Heading EULA;}{\s43\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20 -\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 \b\fs28\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid1456345 -Heading Software Title;}{\s44\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext44 \styrsid1456345 Preamble;}{\s45\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20 -\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext1 \styrsid1456345 Preamble Border;}{ -\s46\qc \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext46 \styrsid1456345 Heading Warranty;}{\s47\ql \fi-360\li360\ri0\sb120\sa120\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls11\outlinelevel0\adjustright\rin0\lin360\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid1456345 Heading 1 Warranty;}{\s48\ql \fi-360\li720\ri0\sb120\sa120\widctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls11\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext0 \styrsid1456345 Heading 2 Warranty;}{\s49\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\tx1077\jclisttab\tx1440\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 -\ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon3 \snext49 \styrsid1456345 Heading 3 Bold;}{\s50\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar -\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon36 \snext50 \styrsid1456345 Bullet 4 Underline;}{\s51\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon35 \snext51 \styrsid1456345 Bullet 3 Underline;}{\s52\ql \li720\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon25 \snext52 \styrsid1456345 Body 2 Underline;}{ -\s53\ql \li1077\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon26 \snext53 \styrsid1456345 Body 3 Underline;}{\s54\ql \li0\ri0\sb120\sa120\sl480\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext54 \slink55 \styrsid1456345 Body Text Indent;}{\*\cs55 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 -\sbasedon10 \slink54 \slocked \ssemihidden \styrsid1456345 Body Text Indent Char;}{\s56\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 -\ai\af38\afs19\alang1025 \ltrch\fcs0 \i\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon36 \snext56 \styrsid1456345 Bullet 4 Italics;}{\*\cs57 \additive \rtlch\fcs1 \af38 \ltrch\fcs0 -\f38\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 Body 2 Char;}{\*\cs58 \additive \rtlch\fcs1 \af38 \ltrch\fcs0 \f38\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 Body 3 Char;}{\*\cs59 \additive -\rtlch\fcs1 \af38 \ltrch\fcs0 \f38\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 Body 4 Char;}{\*\cs60 \additive \rtlch\fcs1 \af38 \ltrch\fcs0 \f38\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 -Body 1 Char;}{\s61\ql \li0\ri0\sb120\sa120\widctlpar\brdrt\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon44 \snext61 \styrsid1456345 Preamble Border Above;}{\s62\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext62 \slink63 \ssemihidden \styrsid1456345 footnote text;}{\*\cs63 \additive \rtlch\fcs1 \af38\afs20 -\ltrch\fcs0 \f38\fs20 \sbasedon10 \slink62 \slocked \ssemihidden \styrsid1456345 Footnote Text Char;}{\*\cs64 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \super \sbasedon10 \ssemihidden \styrsid1456345 footnote reference;}{ -\s65\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext65 \slink66 \ssemihidden \styrsid1456345 endnote text;}{\*\cs66 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20 \sbasedon10 \slink65 \slocked \ssemihidden \styrsid1456345 Endnote Text Char;}{\*\cs67 \additive \rtlch\fcs1 \af0 -\ltrch\fcs0 \super \sbasedon10 \ssemihidden \styrsid1456345 endnote reference;}{\s68\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext68 \slink69 \ssemihidden \styrsid1456345 annotation text;}{\*\cs69 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20 -\sbasedon10 \slink68 \slocked \ssemihidden \styrsid1456345 Comment Text Char;}{\*\cs70 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \styrsid1456345 annotation reference;}{\s71\ql \li0\ri0\sa160\sl-240\slmult0 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext71 \styrsid1456345 Char;}{ -\s72\ql \li0\ri0\sa160\sl-240\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext72 \styrsid1456345 Char Char Char Char;}{\*\cs73 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \styrsid1456345 Hyperlink;}{\s74\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 -\rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0 \fs16\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext74 \slink75 \ssemihidden \styrsid1456345 Balloon Text;}{\*\cs75 \additive \rtlch\fcs1 \af38\afs16 -\ltrch\fcs0 \f38\fs16 \sbasedon10 \slink74 \slocked \ssemihidden \styrsid1456345 Balloon Text Char;}{\*\cs76 \additive \rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 Heading 2 Char1;}{\* -\cs77 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \styrsid1456345 page number;}{\s78\ql \li0\ri0\sa160\sl-240\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext78 \styrsid1456345 Char Char Char Char1;}{\s79\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 -\ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \styrsid1456345 Body 0 Bold;}{\s80\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \styrsid1456345 Body 0;}{\s81\ql \li0\ri0\sb120\sa120\widctlpar -\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext81 \slink82 \styrsid1456345 header;}{\*\cs82 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink81 \slocked \styrsid1456345 Header Char;}{\s83\ql \li0\ri0\sb120\sa120\widctlpar -\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext83 \slink84 \styrsid1456345 footer;}{\*\cs84 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink83 \slocked \ssemihidden \styrsid1456345 Footer Char;}{ -\s85\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon68 \snext68 \slink86 \ssemihidden \sunhideused \styrsid1456345 annotation subject;}{\*\cs86 \additive \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\f38\fs20 \sbasedon69 \slink85 \slocked \ssemihidden \styrsid1456345 Comment Subject Char;}{\*\cs87 -\additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 \f38\fs19 \sbasedon10 \slink35 \slocked \styrsid1456345 Bullet 3 Char1;}{\s88\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\jclisttab\tx1080\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin1077\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon35 \snext88 \styrsid1456345 Bullet 3 Underlined;}{\*\cs89 \additive \rtlch\fcs1 \af38\afs19 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\langnp1033\langfenp1033 \sbasedon10 \styrsid1456345 Char Char;}{\s90\ql \li0\ri0\sl-240\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 -\af38\afs20\alang1025 \ltrch\fcs0 \fs18\lang1033\langfe1033\loch\f39\hich\af39\dbch\af11\cgrid\langnp1033\langfenp1033 \snext90 \spriority0 \styrsid1456345 AdditionalSoftware;}{\*\cs91 \additive \rtlch\fcs1 \af38\afs24\alang1025 \ltrch\fcs0 -\b\f39\fs24\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \spriority0 \styrsid1456345 Char Char1;}{\s92\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 -\rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon36 \snext92 \spriority0 \styrsid1456345 Bullet 4 Underlined;}{\s93\ql \fi-360\li360\ri0\sb120\sa120\widctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls31\adjustright\rin0\lin360\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 -\sbasedon0 \snext93 \spriority0 \styrsid1456345 Heading French Warranty;}{\s94\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 -\fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext94 \sqformat \spriority34 \styrsid921734 List Paragraph;}}{\*\listtable{\list\listtemplateid1821544400\listhybrid{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1380\jclisttab\tx1380\lin1380 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2100\jclisttab\tx2100\lin2100 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2820\jclisttab\tx2820\lin2820 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3540\jclisttab\tx3540\lin3540 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 -\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4260\jclisttab\tx4260\lin4260 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 -\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li4980\jclisttab\tx4980\lin4980 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5700\jclisttab\tx5700\lin5700 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 -\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6420\jclisttab\tx6420\lin6420 }{\listname ;}\listid189493747}{\list\listtemplateid176468498\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 -\levelindent0{\leveltext\leveltemplateid692200086\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s41\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 -\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;} -\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600 -\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23 -\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid196815738}{\list\listtemplateid-1793664660{\listlevel\levelnfc3 -\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af0 \ltrch\fcs0 \b\i0\fbias0 \s47\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc0\levelnfcn0 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af0 \ltrch\fcs0 \b\i0\fbias0 \s48\fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\levelspace0\levelindent0{\leveltext\'03(\'03);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'03(\'04);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li1800\jclisttab\tx1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'03(\'05);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;} -\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li2520\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 -\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li3240 -\jclisttab\tx3240\lin3240 }{\listname ;}\listid394402059}{\list\listtemplateid1928476992{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 -\ab\ai0\af39\afs20 \ltrch\fcs0 \b\i0\f39\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 -\ab\ai0\af39\afs20 \ltrch\fcs0 \b\i0\f39\fs20\fbias0 \fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 -\ab\ai0\af38\afs20 \ltrch\fcs0 \b\i0\f38\fs20\fbias0 \s49\fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 -\ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\strike0\f39\fs20\ulnone\fbias0 \fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers -\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\strike0\f39\fs20\ulnone\fbias0 \fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'02i.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'02A.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid398796681}{\list\listtemplateid789093748\listhybrid{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-317712510\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s34\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 -\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;} -\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040 -\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid477573462} -{\list\listtemplateid-53848358{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af38\afs20 \ltrch\fcs0 \b\i0\f38\fs20\fbias0 \s1 -\fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af38\afs20 \ltrch\fcs0 \b\i0\f38\fs20\fbias0 \s2 -\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af38\afs20 \ltrch\fcs0 \b\i0\f38\fs20\fbias0 \s3 -\fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 -\b0\i0\strike0\f39\fs20\ulnone\fbias0 \s4\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 -\ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\strike0\f39\fs20\ulnone\fbias0 \s5\fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers -\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \s6\fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \s7\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'02i.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \s8\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'02A.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af39\afs20 \ltrch\fcs0 \b0\i0\f39\fs20\fbias0 \s9\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid752163927}{\list\listtemplateid-296591990\listhybrid{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s40\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 -\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23 -\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480 -\jclisttab\tx6480\lin6480 }{\listname ;}\listid810947713}{\list\listtemplateid-1813845996\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;} -\f3\fbias0 \s39\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 -\fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1219436735}{\list\listtemplateid280937824\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0 -\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1124\lin1124 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1844\lin1844 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2564\lin2564 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 -\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3284\lin3284 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 -\fi-360\li4004\lin4004 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4724\lin4724 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5444\lin5444 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 -\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6164\lin6164 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6884\lin6884 }{\listname ;}\listid1422722544}{\list\listtemplateid303218272\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0 -\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid612407812\'01\u-3913 ?;}{\levelnumbers;}\f3\cf18\fbias0 \s36\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 -\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23 -\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480 -\jclisttab\tx6480\lin6480 }{\listname ;}\listid1559511898}{\list\listtemplateid-743794326\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid2033377338 -\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s35\fi-357\li1077\jclisttab\tx1080\lin1077 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;} -\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160 -\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 } -{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1567649130}{\list\listtemplateid-154908222\listhybrid{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-596080174\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af0 \ltrch\fcs0 \b\i0\fbias0 \s93\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 -\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1795057320}{\list\listtemplateid-961874242\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-1175557160\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s37\fi-357\li1792\jclisttab\tx1795\lin1792 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;} -\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040 -\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1848404271} -{\list\listtemplateid-1802592190\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid1229593488\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s38\fi-357\li2149 -\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;} -\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1877695764}{\list\listtemplateid1186249844\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext -\leveltemplateid1637229796\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s33\fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 -\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;} -\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880 -\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 -\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid2054619191}{\list\listtemplateid758572558\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 -\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 -\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext -\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 -\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 -\fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\lin4320 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 -\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\lin6480 }{\listname ;}\listid2085955335}{\list\listtemplateid-235387302\listhybrid{\listlevel\levelnfc23\levelnfcn23 -\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-1242156798\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\lin360 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1080\lin1080 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 -{\leveltext\leveltemplateid67698715\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698703 -\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'01o;}{\levelnumbers;}\f2\fbias0 -\fi-360\li3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698715\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li3960\lin3960 }{\listlevel -\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698703\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 -\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698713\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5400\lin5400 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 -\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698715\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6120\lin6120 }{\listname ;}\listid2106606675}}{\*\listoverridetable{\listoverride\listid2054619191\listoverridecount0\ls1} -{\listoverride\listid477573462\listoverridecount0\ls2}{\listoverride\listid1567649130\listoverridecount0\ls3}{\listoverride\listid1559511898\listoverridecount0\ls4}{\listoverride\listid1848404271\listoverridecount0\ls5}{\listoverride\listid1877695764 -\listoverridecount0\ls6}{\listoverride\listid1219436735\listoverridecount0\ls7}{\listoverride\listid810947713\listoverridecount0\ls8}{\listoverride\listid196815738\listoverridecount0\ls9}{\listoverride\listid398796681\listoverridecount0\ls10} -{\listoverride\listid394402059\listoverridecount0\ls11}{\listoverride\listid752163927\listoverridecount0\ls12}{\listoverride\listid189493747\listoverridecount0\ls13}{\listoverride\listid2106606675\listoverridecount0\ls14}{\listoverride\listid1559511898 -\listoverridecount0\ls15}{\listoverride\listid1848404271\listoverridecount0\ls16}{\listoverride\listid1848404271\listoverridecount0\ls17}{\listoverride\listid1848404271\listoverridecount0\ls18}{\listoverride\listid1848404271\listoverridecount0\ls19} -{\listoverride\listid1848404271\listoverridecount0\ls20}{\listoverride\listid1848404271\listoverridecount0\ls21}{\listoverride\listid1848404271\listoverridecount0\ls22}{\listoverride\listid1848404271\listoverridecount0\ls23}{\listoverride\listid1848404271 -\listoverridecount0\ls24}{\listoverride\listid1422722544\listoverridecount0\ls25}{\listoverride\listid1848404271\listoverridecount0\ls26}{\listoverride\listid1848404271\listoverridecount0\ls27}{\listoverride\listid1848404271\listoverridecount0\ls28} -{\listoverride\listid1559511898\listoverridecount0\ls29}{\listoverride\listid1559511898\listoverridecount0\ls30}{\listoverride\listid1795057320\listoverridecount0\ls31}{\listoverride\listid1559511898\listoverridecount0\ls32}{\listoverride\listid2085955335 -\listoverridecount0\ls33}}{\*\rsidtbl \rsid864014\rsid921734\rsid1456345\rsid1516446\rsid2370159\rsid3171405\rsid3283580\rsid4090875\rsid4281994\rsid5123618\rsid6695507\rsid6971592\rsid7940540\rsid8259195\rsid8404268\rsid10029334\rsid14110967\rsid16150152 -}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\title English}{\creatim\yr2012\mo5\dy29\hr9\min54}{\revtim\yr2012\mo5\dy29\hr9\min55}{\version1}{\edmins0}{\nofpages3} -{\nofwords1117}{\nofchars6373}{\nofcharsws7476}{\vern49273}}{\*\userprops {\propname db_document_id}\proptype30{\staticval 8666}{\propname ContentTypeId}\proptype30{\staticval 0x010100BDA1A6A220A40A419EFB9E5917ACC6AD}{\propname _CopySource}\proptype30 -{\staticval }}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl720\margr720\margt720\margb720\gutter0\ltrsect -\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen -\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace95\dgvspace180\dghorigin720\dgvorigin720\dghshow2\dgvshow1 -\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\rempersonalinfo\allowfieldendsel -\wrppunct\asianbrkrule\rsidroot1456345\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 -{\*\wgrffmtfilter 013f}\nofeaturethrottle1\ilfomacatclnup12{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4281994 \chftnsep -\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4281994 \chftnsepc -\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4281994 \chftnsep -\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4281994 \chftnsepc -\par }}\ltrpar \sectd \ltrsect\psz1\linex0\headery0\footery0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid1456345\sftnbj {\headerl \ltrpar \pard\plain \ltrpar\s81\ql \li0\ri0\sb120\sa120\widctlpar -\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 -\insrsid1456345 -\par }}{\headerr \ltrpar \pard\plain \ltrpar\s81\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid1456345 -\par }}{\footerl \ltrpar \pard\plain \ltrpar\s83\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid1456345 -\par }}{\footerr \ltrpar \pard\plain \ltrpar\s83\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid1456345 -\par }}{\headerf \ltrpar \pard\plain \ltrpar\s81\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid1456345 -\par }}{\footerf \ltrpar \pard\plain \ltrpar\s83\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid1456345 -\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}} -{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8 -\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar -\s42\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 -\b\fs28\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 {\*\bkmkstart _GoBack}{\*\bkmkend _GoBack}\hich\af38\dbch\af13\loch\f38 -MICROSOFT SOFTWARE LICENSE TERMS}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par }\pard\plain \ltrpar\s43\ql \li0\ri0\sb120\sa120\nowidctlpar\brdrb\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 -\b\fs28\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid5123618\charrsid5123618 \hich\af38\dbch\af13\loch\f38 MICROSOFT SQL SERVER COMPACT 4.0 SERVICE PACK 1 (SP1) -}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par }\pard\plain \ltrpar\s44\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named abo\hich\af38\dbch\af13\loch\f38 -ve, which includes the media on which you received it, if any. The terms also apply to any Microsoft}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s34\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin360\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 updates,}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -supplements,}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -Internet-based services, and}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -support services}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par }\pard\plain \ltrpar\s44\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -for this software, unless other terms accompany those items. If so, those terms apply.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\fs20\dbch\af13\insrsid1456345 -\par }\pard\plain \ltrpar\s61\ql \li0\ri0\sb120\sa120\nowidctlpar\brdrt\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 If you comply with these license terms, you have the rights below.}{ -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 1.\tab}}\pard\plain \ltrpar\s1\ql \fi-357\li357\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 INSTALLATION AND USE RIGHTS. }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s2 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 a.\tab}}\pard\plain \ltrpar\s2\ql \fi-363\li720\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 Installation and Use.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\cs57\b0\fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 You may install and use any number of copies of the software on your devices to design, develop and test your programs for use with the software. -\par {\listtext\pard\plain\ltrpar \s2 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 b.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 Included Microsoft Programs. }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 -The software contains the Microsoft Visual C++ 2008 Express}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid10029334 -\hich\af38\dbch\af13\loch\f38 Edition }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 components listed below}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\b0\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 . You may only use these components with the software.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8259195 \hich\af38\dbch\af13\loch\f38 }{\rtlch\fcs1 -\ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 The Microsoft Visual C++ 2008 Express license terms located at }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf17\insrsid921734\charrsid3283580 -\hich\af38\dbch\af11\loch\f38 %Program Files%\\Microsoft SQL Server Compact Ed\hich\af38\dbch\af11\loch\f38 ition\\v4.0 }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 -apply to your use of them, except that the components listed below may be used for commercial hosting services when used in conjunction with the}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 - software.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734\charrsid3283580 \hich\af38\dbch\af13\loch\f38 }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid921734 -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s94\ql \fi-360\li1080\ri0\sb120\sa120\sl276\slmult1 -\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\ls33\adjustright\rin0\lin1080\itap0\pararsid8259195\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20\insrsid921734\charrsid3283580 \hich\af38\dbch\af11\loch\f38 Microsoft_VC90_CRT_x86.msm -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af38\dbch\af11\loch\f38 policy_9_0_Microsoft_VC90_CRT_x86.msm -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af38\dbch\af11\loch\f38 Microsoft_VC90_CRT\hich\af38\dbch\af11\loch\f38 _x86_x64.msm -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af38\dbch\af11\loch\f38 policy_9_0_Microsoft_VC90_CRT_x86_x64.msm -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af38\dbch\af11\loch\f38 VC90.CRT_X86_msvcr90.dll -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\lang1046\langfe1033\langnp1046\insrsid921734\charrsid864014 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\f38\fs20\lang1046\langfe1033\langnp1046\insrsid921734\charrsid864014 \hich\af38\dbch\af11\loch\f38 VC90.CRT_X86_Microsoft.VC90.CRT.manifest -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\insrsid921734\charrsid3283580 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20\insrsid921734\charrsid3283580 \hich\af38\dbch\af11\loch\f38 -VC90.CRT_AMD64_msvcr90.dll -\par {\listtext\pard\plain\ltrpar \s94 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f3\fs20\lang1046\langfe1033\langnp1046\insrsid921734\charrsid864014 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\f38\fs20\lang1046\langfe1033\langnp1046\insrsid921734\charrsid864014 \hich\af38\dbch\af11\loch\f38 VC90.CRT_AMD64_Microsoft.VC90.CRT.manifest -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 2.\tab}}\pard\plain \ltrpar\s1\ql \fi-357\li357\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s2 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 a.\tab}}\pard\plain \ltrpar\s2\ql \fi-363\li720\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 Distributable Code.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\cs57\b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 The software contains code that you are permitted to distribute in programs you develop if you comply with the terms below.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s49 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 i.\tab}}\pard\plain \ltrpar\s49\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1080\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 Right to Use and Distribute.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\cs58\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 \hich\f38 The code and text files listed below are \'93\loch\f38 \hich\f38 Distributable Code.\'94}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s50 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s50\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\ul\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 REDIST.TXT Files}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\ulnone\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -. You may copy and distribute the object code form of code listed in REDIST.TXT files.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\ulnone\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s50 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 Third Party Distribution}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\ulnone\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\ulnone\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s49 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 ii.\tab}}\pard\plain \ltrpar\s49\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1077\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 Dis\hich\af38\dbch\af13\loch\f38 tribution Requirements.}{ -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \cs58\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 For any Distributable Code you distribute, you must}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s36\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 add significant primary functionality to it in your programs;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 for any Distributable Code having a filename extension of .lib, distribute only the results of running such Di\hich\af38\dbch\af13\loch\f38 stributable Code through a linker with your program;}{\rtlch\fcs1 \af38\afs20 -\ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 distribute Distributable Code included in a setup program only as part of that setup program without modification;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 require distributors and external end users to agree to terms that protect it at lea\hich\af38\dbch\af13\loch\f38 st as much as this agreement; }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 display your valid copyright notice on your programs; and}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 indemnify, defend, and hold harmless Microsoft from any claims, including attorneys\hich\f38 \rquote \loch\f38 fees, related to the distribution or use of your programs.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s49 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 iii.\tab}}\pard\plain \ltrpar\s49\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1077\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 Distribution R\hich\af38\dbch\af13\loch\f38 estrictions.}{ -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \cs58\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 You may not}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s36\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 alter any copyright, trademark or patent notice in the Distributable Code;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 use Microsoft\hich\f38 \rquote \loch\f38 s trademarks in your programs\hich\f38 \rquote \loch\f38 names or in a way that suggests your programs come from or are endorsed by Microsoft;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 distribute Distributable Code to run on a platform other than the Windows platform;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 include Distributable Code in malicious, deceptive or unlawful programs; or}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s36 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\cf18\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 modify or distribute the source code of any Distributable Code so that any part of it become\hich\af38\dbch\af13\loch\f38 -s subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s37 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s37\ql \fi-357\li1792\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx1795\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin1792\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 the code be disclosed or distributed in source code form; or}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s37 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -others have the right to modify it.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 3.\tab}}\pard\plain \ltrpar\s1\ql \fi-357\li357\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 SCOPE OF LICENSE.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 \hich\af38\dbch\af13\loch\f38 -The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitt -\hich\af38\dbch\af13\loch\f38 e\hich\af38\dbch\af13\loch\f38 d in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not}{\rtlch\fcs1 \ab0\af38\afs20 -\ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s34\ql \fi-363\li720\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 work around any technical limitations in the software;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -reverse engineer, decompile or disassembl\hich\af38\dbch\af13\loch\f38 e the software, except and only to the extent that applicable law expressly permits, despite this limitation;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 - -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -publish the software \hich\af38\dbch\af13\loch\f38 for others to copy;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -rent, lease or lend the software;}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 or}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -transfer the software or th}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid921734 \hich\af38\dbch\af13\loch\f38 is agreement to any third party. }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345\charrsid921734 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 4.\tab}}\pard\plain \ltrpar\s1\ql \fi-357\li357\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 BACKUP COPY.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 - You may make one backup copy of the software. You may use it only to reinstall the software.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 5.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 DOCUMENTATION.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 - Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 6.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 EXPORT RESTRICTIONS.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 The software is subject to United States export laws and regulations. You must comply w -\hich\af38\dbch\af13\loch\f38 ith all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see }{\rtlch\fcs1 \ab0\af38\afs20 -\ltrch\fcs0 \cs73\b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 www.microsoft.com/exporting}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 .}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\cs73\b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 7.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 SUPPORT SERVICES. }{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 Because thi\hich\af38\dbch\af13\loch\f38 \hich\f38 s software is \'93\loch\f38 \hich\f38 as is,\'94 -\loch\f38 we may not provide support services for it.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 8.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 ENTIRE AGREEMENT.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 - This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 - -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 9.\tab}}\pard \ltrpar\s1\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin360\itap0\pararsid8259195 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 APPLICABLE LAW.}{\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s2 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 a.\tab}}\pard\plain \ltrpar\s2\ql \fi-363\li720\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls12\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 -\b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 United States.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 -\b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 If you acquired the software in the Uni\hich\af38\dbch\af13\loch\f38 -ted States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state con -\hich\af38\dbch\af13\loch\f38 s\hich\af38\dbch\af13\loch\f38 umer protection laws, unfair competition laws, and in tort.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s2 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 b.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 Outside the United States.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 If you acquired the software in any other country, the laws of that country apply.}{ -\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 10.\tab}}\pard\plain \ltrpar\s1\ql \fi-357\li357\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls12\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \ab\af38\afs19\alang1025 \ltrch\fcs0 \b\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 { -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 LEGAL EFFECT.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 - This agreement describes certain legal rights. You may have other\hich\af38\dbch\af13\loch\f38 - rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so -.}{\rtlch\fcs1 \ab0\af38\afs20 \ltrch\fcs0 \b0\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 11.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 \hich\f38 DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED \'93\loch\f38 \hich\f38 AS-IS.\'94\loch\f38 - YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE.\hich\af38\dbch\af13\loch\f38 - TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\fs20\loch\af38\hich\af38\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 12.\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 -\hich\af38\dbch\af13\loch\f38 LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\insrsid8404268 \hich\af38\dbch\af11\loch\f38 . YOU CAN RECOVER FROM MICROSOFT AND\hich\af38\dbch\af11\loch\f38 - ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\insrsid1456345 -\par }\pard\plain \ltrpar\s24\ql \li357\ri0\sb120\sa120\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin357\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 This limitation applies to}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 -\fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s34\ql \fi-363\li720\ri0\sb120\sa120\nowidctlpar -\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 \fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 -\af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 anything related to the software, services, content (inc\hich\af38\dbch\af13\loch\f38 luding code) on third party Internet sites, or third party programs; and}{ -\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par {\listtext\pard\plain\ltrpar \s34 \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\loch\af3\hich\af3\dbch\af13\insrsid8404268 \loch\af3\dbch\af13\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par }\pard\plain \ltrpar\ql \li360\ri0\sb120\sa120\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid8259195 \rtlch\fcs1 \af38\afs19\alang1025 \ltrch\fcs0 -\fs19\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid8404268 \hich\af38\dbch\af13\loch\f38 -It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other d -\hich\af38\dbch\af13\loch\f38 a\hich\af38\dbch\af13\loch\f38 mages.}{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid1456345 -\par }{\rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \fs20\dbch\af13\insrsid864014 -\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a -9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad -5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 -b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 -0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 -a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f -c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 -0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 -a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b -4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b -4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f -7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87 -615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad -79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b -5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab -999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9 -699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586 -8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6 -0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f -9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be -15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979 -3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d -32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a -f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86 -e877f0034e16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb -44f95d843b5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a -6409fb44d08741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c -3d9058edf2c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db0256 -5e85f3b9660d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276 -b9f7dec44b7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8 -c33585b5fb9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e -51440ca2e0088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95 -b21be5ceaf8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff -6dce591a26ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec6 -9ffb9e65d028d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239 -b75a5bb1e6345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a449 -59d366ad93b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e8 -2db8df9f30254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468 -656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4 -350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d2624 -52282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe5141 -73d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000 -0000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000 -000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019 -0200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b00001600000000 -000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027 -00000000000000000000000000a00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d0100009b0a00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; -\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; -\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 -4d73786d6c322e534158584d4c5265616465722e362e30000000000000000000004a0000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdffffff04000000feffffff050000000e000000060000000700000008000000090000000a0000000b0000000c0000000d0000000f000000110000001000000022000000feffffff130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e00 -00001f0000002000000021000000feffffff23000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e5000000000000000000000000d0ec -13dabb3dcd0103000000c01a0000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff050000000000000000000000000000000000000000000000d0ec13dabb3dcd01 -d0ec13dabb3dcd01000000000000000000000000c70053005a00db00c300dd004e00c300c800d40053003100c800420044005500d80059004600ca00430051003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000d0ec13dabb3d -cd01d0ec13dabb3dcd010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000 -00000000000000000000000000000000c100000000000000010000000200000003000000feffffff0500000006000000070000000800000009000000feffffff0b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a00 -00001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f00000030000000310000003200000033000000340000003500000036000000370000003800000039000000 -3a0000003b0000003c0000003d0000003e0000003f00000040000000410000004200000043000000440000004500000046000000470000004800000049000000feffffff4b0000004c0000004d0000004e0000004f000000feffffff510000005200000053000000feffffff550000005600000057000000580000005900 -0000feffffff5b0000005c0000005d0000005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d227574662d3822207374616e64616c6f6e653d22796573223f3e3c44696374696f6e617279205361766564427956657273696f6e3d22332e362e31382e3022204d -696e696d756d56657273696f6e3d22332e362e342e302220786d6c6e733d22687474703a2f2f736368656d61732e627573696e6573732d696e746567726974792e636f6d2f6465616c6275696c6465722f323030362f64696374696f6e617279222f3e000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b38463742 -323639442d363344332d343441332d394241302d3130443445313831364130397d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c -64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e62757369500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000 -000000000000000000000000000000000000000000000000000000000000040000005401000000000000ce00c90032004a0031005500d600cd004a00c4003400d500db00d8005900d3005800450045004100440041003d003d00000000000000000000000000000000003200010102000000080000000600000000000000 -00000000000000000000000000000000d0ec13dabb3dcd01d0ec13dabb3dcd010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff07000000ffffffff0000 -000000000000000000000000000000000000000000000000000000000000000000000a000000f50f000000000000500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff -0000000000000000000000000000000000000000000000000000000000000000000000004a00000051010000000000006e6573732d696e746567726974792e636f6d2f6465616c6275696c6465722f323030362f64696374696f6e617279222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72 -654974656d3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d227574662d3822207374616e64616c6f6e653d22796573223f3e3c53657373696f6e20786d6c6e733d22687474703a -2f2f736368656d61732e627573696e6573732d696e746567726974792e636f6d2f6465616c6275696c6465722f323030362f616e7377657273223e3c5661726961626c65204e616d653d22636f6e74726163747265666572656e6365222052656c6576616e743d2266616c7365223e3c56616c75653e323031302d4d4149 -4e422d3030313031333c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226d73636f6d223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2266696c6574797065223e3c56616c75653e2e7274663c2f56616c7565 -3e3c2f5661726961626c653e3c5661726961626c65204e616d653d226c616e6775616765616c6c223e3c56616c75653e456e676c6973683c2f56616c75653e3c56616c75653e4368696e657365202853696d706c6966696564293c2f56616c75653e3c56616c75653e4368696e6573652028547261646974696f6e616c29 -3c2f56616c75653e3c56616c75653e437a6563683c2f56616c75653e3c56616c75653e4672656e63683c2f56616c75653e3c56616c75653e4765726d616e3c2f56616c75653e3c56616c75653e4974616c69616e3c2f56616c75653e3c56616c75653e4a6170616e6573653c2f56616c75653e3c56616c75653e4b6f7265 -616e3c2f56616c75653e3c56616c75653e506f6c6973683c2f56616c75653e3c56616c75653e506f727475677565736520284272617a696c293c2f56616c75653e3c56616c75653e5275737369616e3c2f56616c75653e3c56616c75653e5370616e6973683c2f56616c75653e3c56616c75653e5475726b6973683c2f56 -616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d225f5f72657175657374646967657374222052656c6576616e743d2266616c7365223e3c56616c75653e3078464532363934364137393337363741383635383139334236383646353743433745453838394237353842444536304337444435 -39313644303831354244424344374335363534444137353735353430323832393342384331414345463833393630344143344634383342454533313330394235394442384434393734454335322c30392044656320323031302032323a32323a3430202d303030303c2f56616c75653e3c2f5661726961626c653e3c5661 -726961626c65204e616d653d225f5f6576656e7476616c69646174696f6e222052656c6576616e743d2266616c7365223e3c56616c75653e2f77455741674b4f3239697043414c623449756d444c2b75437032397970624e71637a6d5230493767414e52424e67333c2f56616c75653e3c2f5661726961626c653e3c5661 -726961626c65204e616d653d2263746c303024706c616365686f6c6465726d61696e24686663657370636f6e74726163747265666572656e6365222052656c6576616e743d2266616c7365223e3c56616c75653e323031302d4d41494e422d3030313031333c2f56616c75653e3c2f5661726961626c653e3c5661726961 -626c65204e616d653d2263616e616461617661696c223e3c56616c75653e747275653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2263616e6164616672656e6368223e3c56616c75653e747275653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d -653d2266696c65666f726d6174223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d22736f66747761726574797065223e3c56616c75653e467265652c205374616e64616c6f6e6520536f6674776172653c2f56616c75653e3c2f5661726961626c65 -3e3c5661726961626c65204e616d653d2270726f647563746e616d65223e3c56616c75653e53514c2053657276657220436f6d7061637420342e303c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226e756d6265726f66636f70696573223e3c56616c75653e416e79206e756d6265 -72206f6620636f706965733c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2270726f6475637476657273696f6e223e3c56616c75653e4e6f6e653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2276657273696f6e76697369626c65223e3c56 -616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226368616e6e656c223e3c56616c75653e52657461696c3c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d227374616e64616c6f6e657573657269676874223e3c56616c -75653e4f6e6c7920746f2064657369676e2c20646576656c6f7020616e64207465737420746865207573657227732070726f6772616d733c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226d65646961656c656d656e747374656d706c61746573223e3c56616c75653e66616c7365 -3c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2264697374726962757461626c65636f6465223e3c56616c75653e747275653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d2264697374726962757461626c65636f646574797065223e3c5661 -6c75653e5265646973742e7478743c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d227265646973747478746f6e6c696e65223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d22696e7465726e616c7265617373 -69676e6d656e74223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226c6963656e73657472616e73666572223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226f746865726d -6963726f736f667470726f6772616d73223e3c56616c75653e747275653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226e65746672616d65776f726b223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226f -746865726d6963726f736f667470726f6772616d737465726d73223e3c56616c75653e546865207365706172617465206c6963656e7365207465726d73206173736f636961746564207769746820746865206f74686572204d6963726f736f66742070726f6772616d733c2f56616c75653e3c2f5661726961626c653e3c -5661726961626c65204e616d653d2270726572656c65617365636f6465223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d227468697264706172747970726f6772616d73223e3c56616c75653e66616c73653c2f56616c75653e3c2f566172696162 -6c653e3c5661726961626c65204e616d653d2262656e63686d61726b696e67223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d226d706567223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65 -204e616d653d22696e7465726e657462617365647365727669636573223e3c56616c75653e66616c73653c2f56616c75653e3c2f5661726961626c653e3c5661726961626c65204e616d653d225f5f6576656e7474617267657422204b6e6f776e3d2266616c7365222052656c6576616e743d2266616c7365222f3e3c56 -61726961626c65204e616d653d225f5f6576656e74617267756d656e7422204b6e6f776e3d2266616c7365222052656c6576616e743d2266616c7365222f3e3c5661726961626c65204e616d653d226c61756e6368646976616374696f6e22204b6e6f776e3d2266616c7365222052656c6576616e743d2266616c736522 -2f3e3c5661726961626c65204e616d653d225f5f737064756d6d79746578743122204b6e6f776e3d2266616c7365222052656c6576616e743d2266616c7365222f3e3c5661726961626c65204e616d653d225f5f737064756d6d79746578743222204b6e6f776e3d2266616c7365222052656c6576616e743d2266616c73 -65222f3e3c5661726961626c65204e616d653d226f726967696e61746f72223e3c56616c75653e5245444d4f4e445c64636f7265793c2f56616c75653e3c2f5661726961626c653e3c506172616d65746572204e616d653d2264625f646973706c61795f616c6c5f636f6d6d656e7473223e3c56616c75653e66616c7365 -3c2f56616c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f73686f775f73756d6d617279223e3c56616c75653e64697361626c65643c2f56616c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f74656d706c6174655f666f726d223e3c56 -616c75653e35323032636439312d396439322d343338612d386637642d3630613864313464336162303c2f56616c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f74656d706c6174655f7265666572656e6365223e3c56616c75653e5553455445524d535f4d41494e423c2f5661 -6c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f74656d706c6174655f76657273696f6e223e3c56616c75653e32303130313130393c2f56616c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f7472616e73616374696f6e5f6578746572 -6e616c5f6c6162656c223e3c56616c75653e323031302d4d41494e422d3030313031333c2f56616c75653e3c2f506172616d657465723e3c506172616d65746572204e616d653d2264625f7472616e73616374696f6e5f6964223e3c56616c75653e333432323c2f56616c75653e3c2f506172616d657465723e3c506172 -616d65746572204e616d653d2264625f766973697465645f7061676573223e3c56616c75653e313c2f56616c75653e3c56616c75653e323c2f56616c75653e3c56616c75653e333c2f56616c75653e3c56616c75653e343c2f56616c75653e3c56616c75653e363c2f56616c75653e3c56616c75653e373c2f56616c7565 -3e3c56616c75653e313c2f56616c75653e3c56616c75653e323c2f56616c75653e3c56616c75653e333c2f56616c75653e3c56616c75653e313c2f56616c75653e3c56616c75653e313c2f56616c75653e3c2f506172616d657465723e3c2f53657373696f6e3e00000000000000000000003c3f786d6c2076657273696f -6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b36443039393742412d414434442d343732362d423545462d3836333335433431303030437d2220786d6c6e733a64733d22687474 -703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e627573696e6573732d696e74 -6567726974792e636f6d2f6465616c6275696c6465722f323030362f616e7377657273222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d100c7003500 -c3004700c200c400d50056005500ca00dc00c600d30051004a004a003200dd00c600320041003d003d000000000000000000000000000000000032000101ffffffff0b000000090000000000000000000000000000000000000000000000d0ec13dabb3dcd01d0ec13dabb3dcd0100000000000000000000000049007400 -65006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff0a000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000050000000db000000000000005000 -72006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000540000004f01000000000000 -d300c300d4004f005600d400c000440034005500ce00df004400ce005a005100c100df0034005400550051003d003d000000000000000000000000000000000032000100ffffffffffffffff0c0000000000000000000000000000000000000000000000d0ec13dabb3dcd01d0ec13dabb3dcd0100000000000000000000 -00003c3f6d736f2d636f6e74656e74547970653f3e3c466f726d54656d706c6174657320786d6c6e733d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f7368617265706f696e742f76332f636f6e74656e74747970652f666f726d73223e3c446973706c61793e446f63756d656e744c696272 -617279466f726d3c2f446973706c61793e3c456469743e446f63756d656e744c696272617279466f726d3c2f456469743e3c4e65773e446f63756d656e744c696272617279466f726d3c2f4e65773e3c2f466f726d54656d706c617465733e00000000000000000000000000000000000000000000000000000000000000 -0000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b31414533373743362d333532392d344135352d424339422d33343039323543463636 -37307d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f7363 -68656d61732e6d6963726f736f66742e636f6d2f7368617265706f696e742f76332f636f6e74656e74747970652f666f726d73222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e00000000000000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b35373045334443452d303334382d344237392d424630452d45363530 -38374637393335317d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474 -703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f6d657461646174612f636f6e74656e7454797065222f3e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f6d65 -7461646174612f70726f706572746965732f4900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff0d000000ffffffff00000000000000000000000000000000000000000000000000000000 -000000000000000012000000761f000000000000500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000005a00000004040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d227574662d38223f3e3c63743a636f6e74656e7454797065536368656d612063743a5f3d2222206d613a5f3d2222206d613a636f6e74656e74547970654e616d653d22446f6375 -6d656e7422206d613a636f6e74656e745479706549443d223078303130313030424441314136413232304134304134313945464239453539313741434336414422206d613a636f6e74656e745479706556657273696f6e3d22313722206d613a636f6e74656e74547970654465736372697074696f6e3d22437265617465 -2061206e657720646f63756d656e742e22206d613a636f6e74656e745479706553636f70653d2222206d613a76657273696f6e49443d2266343736346339666166646632336436653035343862333630623130346130332220786d6c6e733a63743d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f -6d2f6f66666963652f323030362f6d657461646174612f636f6e74656e74547970652220786d6c6e733a6d613d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f6d657461646174612f70726f706572746965732f6d65746141747472696275746573223e0d0a3c -7873643a736368656d61207461726765744e616d6573706163653d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f6d657461646174612f70726f7065727469657322206d613a726f6f743d227472756522206d613a6669656c647349443d223732326565636431 -63363230323961373830386363653964376530623264396522206e73323a5f3d222220786d6c6e733a7873643d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612220786d6c6e733a703d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f32 -3030362f6d657461646174612f70726f706572746965732220786d6c6e733a6e73323d2235616265626439612d376264662d343438322d393437632d633333353535323462663833223e0d0a3c7873643a696d706f7274206e616d6573706163653d2235616265626439612d376264662d343438322d393437632d633333 -353535323462663833222f3e0d0a3c7873643a656c656d656e74206e616d653d2270726f70657274696573223e0d0a3c7873643a636f6d706c6578547970653e0d0a3c7873643a73657175656e63653e0d0a3c7873643a656c656d656e74206e616d653d22646f63756d656e744d616e6167656d656e74223e0d0a3c7873 -643a636f6d706c6578547970653e0d0a3c7873643a616c6c3e0d0a3c7873643a656c656d656e74207265663d226e73323a4368616e6e656c222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a4f726967696e61746f72222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a50726f647563 -744e616d6522206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a50726f6475637456657273696f6e22206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a5075626c6973684461746522206d696e4f63637572733d2230 -222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a5265746972656d656e744461746522206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a536f6674776172655479706522206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e7420 -7265663d226e73323a4d53636f6d22206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a53746174757322206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a4c6963656e73654d6f64656c22206d696e4f63637572733d -2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a50726f64756374494422206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a4f776e657222206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a4c -616e677561676522206d696e4f63637572733d2230222f3e0d0a3c7873643a656c656d656e74207265663d226e73323a46696c6554797065222f3e0d0a3c2f7873643a616c6c3e0d0a3c2f7873643a636f6d706c6578547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c2f7873643a73657175656e63653e0d0a -3c2f7873643a636f6d706c6578547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c2f7873643a736368656d613e0d0a3c7873643a736368656d61207461726765744e616d6573706163653d2235616265626439612d376264662d343438322d393437632d6333333535353234626638332220656c656d656e7446 -6f726d44656661756c743d227175616c69666965642220786d6c6e733a7873643d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612220786d6c6e733a646d733d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f646f63756d65 -6e744d616e6167656d656e742f7479706573223e0d0a3c7873643a696d706f7274206e616d6573706163653d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f646f63756d656e744d616e6167656d656e742f7479706573222f3e0d0a3c7873643a656c656d656e -74206e616d653d224368616e6e656c22206d613a696e6465783d223822206d613a646973706c61794e616d653d224368616e6e656c22206d613a696e7465726e616c4e616d653d224368616e6e656c223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d -733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d224f726967696e61746f722220 -6d613a696e6465783d223922206d613a646973706c61794e616d653d224f726967696e61746f7222206d613a696e7465726e616c4e616d653d224f726967696e61746f72223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c -7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d2250726f647563744e616d6522206d613a696e6465783d22 -313022206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d2250726f647563744e616d6522206d613a64656661756c743d2222206d613a696e7465726e616c4e616d653d2250726f647563744e616d65223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374 -696f6e20626173653d22646d733a4e6f7465222f3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d2250726f6475637456657273696f6e22206d613a696e6465783d22313122206e696c6c61626c653d227472756522206d613a -646973706c61794e616d653d2250726f6475637456657273696f6e22206d613a696e7465726e616c4e616d653d2250726f6475637456657273696f6e223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c -656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d225075626c6973684461746522206d613a696e6465783d22313222206e696c6c -61626c653d227472756522206d613a646973706c61794e616d653d225075626c6973684461746522206d613a666f726d61743d22446174654f6e6c7922206d613a696e7465726e616c4e616d653d225075626c69736844617465223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a726573747269637469 -6f6e20626173653d22646d733a4461746554696d65222f3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d225265746972656d656e744461746522206d613a696e6465783d22313322206e696c6c61626c653d22747275652220 -6d613a646973706c61794e616d653d225265746972656d656e744461746522206d613a666f726d61743d22446174654f6e6c7922206d613a696e7465726e616c4e616d653d225265746972656d656e7444617465223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173 -653d22646d733a4461746554696d65222f3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d22536f6674776172655479706522206d613a696e6465783d22313422206e696c6c61626c653d227472756522206d613a646973706c -61794e616d653d22536f6674776172655479706522206d613a696e7465726e616c4e616d653d22536f66747761726554797065223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c -75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d224d53636f6d22206d613a696e6465783d22313522206e696c6c61626c653d227472756522206d613a -646973706c61794e616d653d224d53636f6d22206d613a64656661756c743d223122206d613a696e7465726e616c4e616d653d224d53636f6d223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a426f6f6c65616e222f3e0d0a3c2f7873643a7369 -6d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d2253746174757322206d613a696e6465783d22313622206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d2253746174757322206d613a696e7465726e616c4e616d653d2253 -7461747573223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c655479 -70653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d224c6963656e73654d6f64656c22206d613a696e6465783d22313722206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d224c6963656e73654d6f64656c22206d613a696e7465726e616c4e -616d653d224c6963656e73654d6f64656c223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f -7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d2250726f64756374494422206d613a696e6465783d22313822206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d2250726f64756374494422206d613a696e74 -65726e616c4e616d653d2250726f647563744944223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d -0a3c2f7873643a73696d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d224f776e657222206d613a696e6465783d22313922206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d224f776e657222206d613a696e7465726e616c -4e616d653d224f776e6572223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a7369 -6d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d224c616e677561676522206d613a696e6465783d22323022206e696c6c61626c653d227472756522206d613a646973706c61794e616d653d224c616e677561676522206d613a696e7465726e616c4e616d -653d224c616e6775616765223e0d0a3c7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a7369 -6d706c65547970653e0d0a3c2f7873643a656c656d656e743e0d0a3c7873643a656c656d656e74206e616d653d2246696c655479706522206d613a696e6465783d22323122206d613a646973706c61794e616d653d2246696c655479706522206d613a696e7465726e616c4e616d653d2246696c6554797065223e0d0a3c -7873643a73696d706c65547970653e0d0a3c7873643a7265737472696374696f6e20626173653d22646d733a54657874223e0d0a3c7873643a6d61784c656e6774682076616c75653d22323535222f3e0d0a3c2f7873643a7265737472696374696f6e3e0d0a3c2f7873643a73696d706c65547970653e0d0a3c2f787364 -3a656c656d656e743e0d0a3c2f7873643a736368656d613e0d0a3c7873643a736368656d61207461726765744e616d6573706163653d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f7061636b6167652f323030362f6d657461646174612f636f72652d70726f70657274696573 -2220656c656d656e74466f726d44656661756c743d227175616c69666965642220617474726962757465466f726d44656661756c743d22756e7175616c69666965642220626c6f636b44656661756c743d2223616c6c2220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f -72672f7061636b6167652f323030362f6d657461646174612f636f72652d70726f706572746965732220786d6c6e733a7873643d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612220786d6c6e733a7873693d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c5363 -68656d612d696e7374616e63652220786d6c6e733a64633d22687474703a2f2f7075726c2e6f72672f64632f656c656d656e74732f312e312f2220786d6c6e733a64637465726d733d22687474703a2f2f7075726c2e6f72672f64632f7465726d732f2220786d6c6e733a6f646f633d22687474703a2f2f736368656d61 -732e6d6963726f736f66742e636f6d2f6f66666963652f696e7465726e616c2f323030352f696e7465726e616c446f63756d656e746174696f6e223e0d0a3c7873643a696d706f7274206e616d6573706163653d22687474703a2f2f7075726c2e6f72672f64632f656c656d656e74732f312e312f2220736368656d614c -6f636174696f6e3d22687474703a2f2f6475626c696e636f72652e6f72672f736368656d61732f786d6c732f7164632f323030332f30342f30322f64632e787364222f3e0d0a3c7873643a696d706f7274206e616d6573706163653d22687474703a2f2f7075726c2e6f72672f64632f7465726d732f2220736368656d61 -4c6f636174696f6e3d22687474703a2f2f6475626c696e636f72652e6f72672f736368656d61732f786d6c732f7164632f323030332f30342f30322f64637465726d732e787364222f3e0d0a3c7873643a656c656d656e74206e616d653d22636f726550726f706572746965732220747970653d2243545f636f72655072 -6f70657274696573222f3e0d0a3c7873643a636f6d706c657854797065206e616d653d2243545f636f726550726f70657274696573223e0d0a3c7873643a616c6c3e0d0a3c7873643a656c656d656e74207265663d2264633a63726561746f7222206d696e4f63637572733d223022206d61784f63637572733d2231222f -3e0d0a3c7873643a656c656d656e74207265663d2264637465726d733a6372656174656422206d696e4f63637572733d223022206d61784f63637572733d2231222f3e0d0a3c7873643a656c656d656e74207265663d2264633a6964656e74696669657222206d696e4f63637572733d223022206d61784f63637572733d -2231222f3e0d0a3c7873643a656c656d656e74206e616d653d22636f6e74656e745479706522206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e6722206d613a696e6465783d223022206d613a646973706c61794e616d653d22436f6e74656e742054797065 -22206d613a726561644f6e6c793d2274727565222f3e0d0a3c7873643a656c656d656e74207265663d2264633a7469746c6522206d696e4f63637572733d223022206d61784f63637572733d223122206d613a696e6465783d223422206d613a646973706c61794e616d653d225469746c65222f3e0d0a3c7873643a656c -656d656e74207265663d2264633a7375626a65637422206d696e4f63637572733d223022206d61784f63637572733d2231222f3e0d0a3c7873643a656c656d656e74207265663d2264633a6465736372697074696f6e22206d696e4f63637572733d223022206d61784f63637572733d2231222f3e0d0a3c7873643a656c -656d656e74206e616d653d226b6579776f72647322206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e67222f3e0d0a3c7873643a656c656d656e74207265663d2264633a6c616e677561676522206d696e4f63637572733d223022206d61784f63637572733d -2231222f3e0d0a3c7873643a656c656d656e74206e616d653d2263617465676f727922206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e67222f3e0d0a3c7873643a656c656d656e74206e616d653d2276657273696f6e22206d696e4f63637572733d223022 -206d61784f63637572733d22312220747970653d227873643a737472696e67222f3e0d0a3c7873643a656c656d656e74206e616d653d227265766973696f6e22206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e67223e0d0a3c7873643a616e6e6f74617469 -6f6e3e0d0a3c7873643a646f63756d656e746174696f6e3e0d0a202020202020202020202020202020202020202020202020546869732076616c756520696e6469636174657320746865206e756d626572206f66207361766573206f72207265766973696f6e732e20546865206170706c69636174696f6e206973207265 -73706f6e7369626c6520666f72207570646174696e6720746869732076616c75652061667465722065616368207265766973696f6e2e0d0a20202020202020202020202020202020202020203c2f7873643a646f63756d656e746174696f6e3e0d0a3c2f7873643a616e6e6f746174696f6e3e0d0a3c2f7873643a656c65 -6d656e743e0d0a3c7873643a656c656d656e74206e616d653d226c6173744d6f646966696564427922206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e67222f3e0d0a3c7873643a656c656d656e74207265663d2264637465726d733a6d6f64696669656422 -206d696e4f63637572733d223022206d61784f63637572733d2231222f3e0d0a3c7873643a656c656d656e74206e616d653d226c6173745072696e74656422206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a6461746554696d65222f3e0d0a3c7873643a656c656d656e -74206e616d653d22636f6e74656e7453746174757322206d696e4f63637572733d223022206d61784f63637572733d22312220747970653d227873643a737472696e67222f3e0d0a3c2f7873643a616c6c3e0d0a3c2f7873643a636f6d706c6578547970653e0d0a3c2f7873643a736368656d613e0d0a3c2f63743a636f -6e74656e7454797065536368656d613e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000006d65746141747472696275746573222f3e3c64733a736368656d615265662064733a7572693d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d61222f3e3c64733a736368656d615265662064733a7572693d226874 -74703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f6d657461646174612f70726f70657274696573222f3e3c64733a736368656d615265662064733a7572693d2235616265626439612d376264662d343438322d393437632d633333353535323462663833222f3e3c64733a -736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f323030362f646f63756d656e744d616e6167656d656e742f7479706573222f3e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f7065 -6e786d6c666f726d6174732e6f72672f7061636b6167652f323030362f6d657461646174612f636f72652d70726f70657274696573222f3e3c64733a736368656d615265662064733a7572693d22687474703a2f2f7075726c2e6f72672f64632f656c656d656e74732f312e312f222f3e3c64733a736368656d61526566 -2064733a7572693d22687474703a2f2f7075726c2e6f72672f64632f7465726d732f222f3e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6d6963726f736f66742e636f6d2f6f66666963652f696e7465726e616c2f323030352f696e7465726e616c446f63756d656e7461 -74696f6e222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/lib/net40/System.Data.SqlServerCe.dll b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/lib/net40/System.Data.SqlServerCe.dll deleted file mode 100644 index 8d16c2a6d..000000000 Binary files a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/lib/net40/System.Data.SqlServerCe.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Install.ps1 b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Install.ps1 deleted file mode 100644 index 75b659212..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Install.ps1 +++ /dev/null @@ -1,201 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -Import-Module (Join-Path $toolsPath VS.psd1) -$nativeBinDirectory = Join-Path $installPath "NativeBinaries" -if ($project.Type -eq 'Web Site') { - $projectRoot = Get-ProjectRoot $project - if (!$projectRoot) { - return; - } - - $binDirectory = Join-Path $projectRoot "bin" - $libDirectory = Join-Path $installPath "lib\net40" - Add-FilesToDirectory $libDirectory $binDirectory - Add-FilesToDirectory $nativeBinDirectory $binDirectory -} -elseif($project.ExtenderNames -contains "WebApplication") { - $depAsm = Ensure-Folder $Project "_bin_deployableAssemblies"; - if($depAsm) { - $amd64 = Ensure-Folder $depAsm "amd64"; - if($amd64) { - $amd64dir = (Join-Path $nativeBinDirectory "amd64") - $crt64 = Ensure-Folder $amd64 "Microsoft.VC90.CRT"; - if($crt64) { - $crt64dir = (Join-Path $amd64dir "Microsoft.VC90.CRT") - Add-ProjectItem $crt64 (Join-Path $crt64dir "Microsoft.VC90.CRT.manifest"); - Add-ProjectItem $crt64 (Join-Path $crt64dir "msvcr90.dll"); - Add-ProjectItem $crt64 (Join-Path $crt64dir "README_ENU.txt"); - } - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlceca40.dll"); - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlcecompact40.dll"); - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlceer40EN.dll"); - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlceme40.dll"); - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlceqp40.dll"); - Add-ProjectItem $amd64 (Join-Path $amd64dir "sqlcese40.dll"); - } - $x86 = Ensure-Folder $depAsm "x86"; - if($x86) { - $x86dir = (Join-Path $nativeBinDirectory "x86") - $crt32 = Ensure-Folder $x86 "Microsoft.VC90.CRT"; - if($crt32) { - $crt32dir = (Join-Path $x86dir "Microsoft.VC90.CRT") - Add-ProjectItem $crt32 (Join-Path $crt32dir "Microsoft.VC90.CRT.manifest"); - Add-ProjectItem $crt32 (Join-Path $crt32dir "msvcr90.dll"); - Add-ProjectItem $crt32 (Join-Path $crt32dir "README_ENU.txt"); - } - Add-ProjectItem $x86 (Join-Path $x86dir "sqlceca40.dll"); - Add-ProjectItem $x86 (Join-Path $x86dir "sqlcecompact40.dll"); - Add-ProjectItem $x86 (Join-Path $x86dir "sqlceer40EN.dll"); - Add-ProjectItem $x86 (Join-Path $x86dir "sqlceme40.dll"); - Add-ProjectItem $x86 (Join-Path $x86dir "sqlceqp40.dll"); - Add-ProjectItem $x86 (Join-Path $x86dir "sqlcese40.dll"); - } - } -} -else { - Add-PostBuildEvent $project $installPath -} -Remove-Module VS -# SIG # Begin signature block -# MIIaYAYJKoZIhvcNAQcCoIIaUTCCGk0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUzLn0cynrkzzelhBdEEQRMs86 -# Sk+gghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx -# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w -# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 -# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O -# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o -# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT -# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n -# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD -# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO -# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR -# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z -# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw -# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI -# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv -# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL -# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy -# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ -# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC -# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q -# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD -# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B -# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93 -# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x -# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb -# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW -# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR -# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw -# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS -# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj -# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD -# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw -# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr -# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r -# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa -# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A -# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA -# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN -# 1igAclCFvOUwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA -# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv -# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl -# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ -# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA -# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc -# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ -# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc -# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX -# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV -# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB -# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt -# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX -# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z -# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU -# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB -# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM -# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j -# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO -# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY -# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K -# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO -# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC -# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH -# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB -# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc -# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv -# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk -# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj -# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw -# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN -# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj -# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY -# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co -# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt -# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 -# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB -# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 -# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME -# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB -# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy -# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT -# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB -# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j -# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw -# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO -# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K -# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d -# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK -# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY -# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP -# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo -# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh -# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v -# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E -# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ -# E6P9MYIEnTCCBJkCAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ -# zJMAAQAAAGYwCQYFKw4DAhoFAKCByjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB -# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU -# 5Ewl2ZN1e5UHOreMhz8xU6LOSbswagYKKwYBBAGCNwIBDDFcMFqgOIA2AE0AaQBj -# AHIAbwBzAG8AZgB0ACAAQQBTAFAALgBOAEUAVAAgAFcAZQBiACAAUABhAGcAZQBz -# oR6AHGh0dHA6Ly93d3cuYXNwLm5ldC93ZWJtYXRyaXgwDQYJKoZIhvcNAQEBBQAE -# ggEAhGWggVuM7zD4p+Uip1VsBS49+s1IZ6YdlDdohyxU8F/V97heQzNjPSXwmktS -# egYKWR9js1z1wjCCNTf6+bDG1gwKny/7bXWg9+PAxK3ekQN7iQeYrrTn/bZIj4cF -# jCU+5OnoHsIy1vVy3BPf69pen0FRl8vf/bAr7nGWFqw6B839JHg0eLl+CwwvFXDb -# SxP64YYbCCiuMJ5Qqv7WK980eiHTLiTOH+FxYBwCtx88ECdkgdYz81E4VJeMsEyp -# Ir+LwcEtBJIIEfw0ywqsUHYaZv7cum2Y0IHnvIGsPrTVrkvYBDPz0L8iIFqKLJPr -# ANPWp1sxv8eLLvClA+Rgt70m2aGCAh0wggIZBgkqhkiG9w0BCQYxggIKMIICBgIB -# ATCBhTB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD -# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0ECCmEFEzYAAAAAABowBwYFKw4D -# AhqgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x -# MjA1MDIyMzMzMjFaMCMGCSqGSIb3DQEJBDEWBBRL3gxndfgt72b57C1ZqLai9S1v -# 0zANBgkqhkiG9w0BAQUFAASCAQA/7eK3ks0kQ7JIqJ/WpaBDssEBMQEzOz7zqeJD -# /aHV4QMFnTr9Ml4x8Eko1EmmtUPcuJkAlBEakraJPi4GJwnp2VZ6WKR178GBGnPi -# MP2CkzfC2dFshWSYqpSPv3/JXIhXEjid3LyM2MuYx0DtCJi1AcAMDnEJXnRiDCns -# WH+CPIZlx16/1txCfzWbWgETqoq7BFMf3uipMrKt5BWjP9yzBz6BNo2O6EbravfV -# /l6o46cKhfS4WL4tB3sB8JyegFUYZeivBkcVVeu8irDuaqqFmnt2l52SdZOAeXbT -# TUv1oPuaARhsiGplNGX2a7XHoSjcwiGS1suTw6gSUP7ygxyc -# SIG # End signature block diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Uninstall.ps1 b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Uninstall.ps1 deleted file mode 100644 index 0e408668d..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/Uninstall.ps1 +++ /dev/null @@ -1,203 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -Import-Module (Join-Path $toolsPath VS.psd1) -if ($project.Type -eq 'Web Site') { - $projectRoot = Get-ProjectRoot $project - if (!$projectRoot) { - return; - } - - $binDirectory = Join-Path $projectRoot "bin" - $libDirectory = Join-Path $installPath "lib\net40" - $nativeBinDirectory = Join-Path $installPath "NativeBinaries" - - Remove-FilesFromDirectory $libDirectory $binDirectory - Remove-FilesFromDirectory $nativeBinDirectory $binDirectory -} -elseif($project.ExtenderNames -contains "WebApplication") { - $depAsm = Get-ChildProjectItem $Project "_bin_deployableAssemblies"; - if($depAsm) { - $amd64 = Get-ChildProjectItem $depAsm "amd64"; - if($amd64) { - $crt64 = Get-ChildProjectItem $amd64 "Microsoft.VC90.CRT"; - if($crt64) { - Remove-Child $crt64 "Microsoft.VC90.CRT.manifest"; - Remove-Child $crt64 "msvcr90.dll"; - Remove-Child $crt64 "README_ENU.txt"; - Remove-EmptyFolder $crt64; - } - Remove-Child $amd64 "sqlceca40.dll"; - Remove-Child $amd64 "sqlcecompact40.dll"; - Remove-Child $amd64 "sqlceer40EN.dll"; - Remove-Child $amd64 "sqlceme40.dll"; - Remove-Child $amd64 "sqlceqp40.dll"; - Remove-Child $amd64 "sqlcese40.dll"; - Remove-EmptyFolder $amd64; - } - $x86 = Get-ChildProjectItem $depAsm "x86"; - if($x86) { - $crt32 = Get-ChildProjectItem $x86 "Microsoft.VC90.CRT"; - if($crt32) { - Remove-Child $crt32 "Microsoft.VC90.CRT.manifest"; - Remove-Child $crt32 "msvcr90.dll"; - Remove-Child $crt32 "README_ENU.txt"; - Remove-EmptyFolder $crt32; - } - Remove-Child $x86 "sqlceca40.dll"; - Remove-Child $x86 "sqlcecompact40.dll"; - Remove-Child $x86 "sqlceer40EN.dll"; - Remove-Child $x86 "sqlceme40.dll"; - Remove-Child $x86 "sqlceqp40.dll"; - Remove-Child $x86 "sqlcese40.dll"; - Remove-EmptyFolder $x86; - } - } - Remove-EmptyFolder $depAsm -} -else { - Remove-PostBuildEvent $project $installPath -} -Remove-Module VS -# SIG # Begin signature block -# MIIaYAYJKoZIhvcNAQcCoIIaUTCCGk0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUxFz3kvDi5XL8NvzuvlFGgHdi -# C2KgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx -# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w -# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 -# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O -# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o -# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT -# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n -# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD -# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO -# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR -# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z -# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw -# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI -# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv -# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL -# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy -# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ -# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC -# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q -# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD -# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B -# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93 -# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x -# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb -# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW -# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR -# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw -# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS -# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj -# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD -# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw -# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr -# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r -# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa -# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A -# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA -# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN -# 1igAclCFvOUwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA -# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv -# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl -# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ -# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA -# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc -# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ -# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc -# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX -# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV -# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB -# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt -# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX -# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z -# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU -# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB -# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM -# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j -# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO -# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY -# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K -# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO -# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC -# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH -# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB -# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc -# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv -# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk -# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj -# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw -# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN -# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj -# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY -# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co -# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt -# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 -# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB -# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 -# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME -# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB -# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy -# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT -# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB -# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j -# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw -# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO -# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K -# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d -# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK -# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY -# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP -# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo -# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh -# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v -# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E -# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ -# E6P9MYIEnTCCBJkCAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ -# zJMAAQAAAGYwCQYFKw4DAhoFAKCByjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB -# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU -# UKkz3i9W+8AubhICw1WW6ANVRt0wagYKKwYBBAGCNwIBDDFcMFqgOIA2AE0AaQBj -# AHIAbwBzAG8AZgB0ACAAQQBTAFAALgBOAEUAVAAgAFcAZQBiACAAUABhAGcAZQBz -# oR6AHGh0dHA6Ly93d3cuYXNwLm5ldC93ZWJtYXRyaXgwDQYJKoZIhvcNAQEBBQAE -# ggEAV8H99PNfnyDdg08ADZuLzs8RUlGWmg6P+Lu8QDRY+74H3ePH+i9zvSGky+yD -# nuOc8zAKeA+PFi0grh2mvsx+Ut39LLwrWBV3B7/AuXGFKhGz48JLl2ey+9Y7A5wL -# ttPc7K7T14h3B4Fkc712XCsXLjbnGDR9jjrUE2a8DzhcCm4EggNZHrQH585Xp3XK -# 4Pou4SW3icJQcp7FCahcR/kJek+6JoZ7BjbBej+fyN2DGq3EQyrxp/doGjk0vrm5 -# OTZEoMLDR+e18mJD4HrI/3y2esElCz9dAMiphxOXvEdADmxy/nwaYtXGbJ6csMsg -# mAbxq/vHpKQFGRMYDnXGso++daGCAh0wggIZBgkqhkiG9w0BCQYxggIKMIICBgIB -# ATCBhTB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD -# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0ECCmEFEzYAAAAAABowBwYFKw4D -# AhqgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x -# MjA1MDIyMzMzMjFaMCMGCSqGSIb3DQEJBDEWBBTOw+FH02QcdgQkavJlNMFAccmG -# uTANBgkqhkiG9w0BAQUFAASCAQAixk541g+2gi+7DYmtZwDBrcCiaiAsQYwwoQYB -# vRR4Ngrgk5BHE35HUHmxDZ43p4PB2czDMm7xE5wNS5RDK0us/ab9kXEGZsXlxmCi -# C162Ujzr/V/WhkBpmqs49Ml2U6+PSTAG0wcp33PjHtuiZ5MK8sz3IHIAeSdMadl+ -# SfNFOFRxTEluPHTc2HGsYkM5y43GMxRLxb+TYbQAOfes/omTUC0A0fyW59XXLB+o -# 1E6HQzG3uPVj/mmATXxfx6Lsxok9cEoWb7Cw63ZC1uR9VKtVGn5C1GvhkBKUmuV+ -# Dvp+tfoKzZiw4PZCo7o7lu5hr+BxqxieFt43lLlyABBtyQ9a -# SIG # End signature block diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psd1 b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psd1 deleted file mode 100644 index 7356fdb6e..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psd1 +++ /dev/null @@ -1,221 +0,0 @@ -@{ - -# Script module or binary module file associated with this manifest -ModuleToProcess = 'VS.psm1' - -# Version number of this module. -ModuleVersion = '0.1' - -# ID used to uniquely identify this module -GUID = 'b1ab5d7d-d317-4c6d-97b8-4620f93082d3' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = '(c) 2011 Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Powershell wrapper for NuGet.VisualStudio' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '2.0' - -# Name of the Windows PowerShell host required by this module -PowerShellHostName = 'Package Manager Host' - -# Minimum version of the Windows PowerShell host required by this module -PowerShellHostVersion = '1.2' - -# Minimum version of the .NET Framework required by this module -DotNetFrameworkVersion = '4.0' - -# Minimum version of the common language runtime (CLR) required by this module -CLRVersion = '' - -# Processor architecture (None, X86, Amd64, IA64) required by this module -ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module -ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in ModuleToProcess -NestedModules = @('VS.psm1') - -# Functions to export from this module -FunctionsToExport = '*' - -# Cmdlets to export from this module -CmdletsToExport = '' - -# Variables to export from this module -VariablesToExport = '' - -# Aliases to export from this module -AliasesToExport = '' - -# List of all files packaged with this module -FileList = @() - -# Private data to pass to the module specified in ModuleToProcess -PrivateData = '' - -} -# SIG # Begin signature block -# MIIaYAYJKoZIhvcNAQcCoIIaUTCCGk0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUOXoWcS17lm8Ab8sGlFmVs528 -# M5ygghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx -# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w -# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 -# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O -# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o -# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT -# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n -# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD -# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO -# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR -# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z -# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw -# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI -# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv -# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL -# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy -# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ -# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC -# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q -# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD -# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B -# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R -# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS -# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK -# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ -# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl -# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw -# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS -# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj -# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD -# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw -# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v -# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 -# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 -# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi -# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG -# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR -# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA -# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv -# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl -# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ -# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA -# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc -# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ -# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc -# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX -# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV -# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB -# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt -# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX -# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z -# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU -# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB -# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM -# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j -# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO -# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY -# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K -# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO -# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC -# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH -# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB -# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc -# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv -# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk -# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj -# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw -# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN -# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj -# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY -# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co -# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt -# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 -# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB -# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 -# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME -# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB -# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy -# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT -# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB -# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j -# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw -# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO -# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K -# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d -# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK -# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY -# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP -# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo -# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh -# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v -# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E -# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ -# E6P9MYIEnTCCBJkCAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ -# zJMAAQAAAGYwCQYFKw4DAhoFAKCByjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB -# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU -# /7FoUja90/kLXKiZGhy99cCrjSYwagYKKwYBBAGCNwIBDDFcMFqgOIA2AE0AaQBj -# AHIAbwBzAG8AZgB0ACAAQQBTAFAALgBOAEUAVAAgAFcAZQBiACAAUABhAGcAZQBz -# oR6AHGh0dHA6Ly93d3cuYXNwLm5ldC93ZWJtYXRyaXgwDQYJKoZIhvcNAQEBBQAE -# ggEATa60pB7MDesagfdU6YnHh8b8FPhF8hxZaLgyvzgBwF2P30+61wtpAnT3Xpef -# BmEZl0QjOVUeVHggv6sKP4oVpSkejPO8fpreKDCdzEAIQH+ur9eGzD9MDuecrCZH -# Z304Kp3paR1tBc1sgjHOf9NnmAxqJtA4AUBdg+d2tArgKU7yQ57Sl1D32IrG45nq -# oOcOEHqA42SfbGo+2W9YO+/Tkx8sCd6KbIvPI4rvUWEpvcd+JwOduVFki7VIHZ3N -# FF4HBez8XqUDO/h/gzEZChIcdl7mEsDwOIviMK9KgDA51dWlysYotgaUB516kj9j -# 6LgusKEsDThqj4UJOUHlUnuMm6GCAh0wggIZBgkqhkiG9w0BCQYxggIKMIICBgIB -# ATCBhTB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD -# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0ECCmEFGZYAAAAAABswBwYFKw4D -# AhqgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x -# MjA1MDIyMzMzMjFaMCMGCSqGSIb3DQEJBDEWBBQjUNgsmRtonZ33wAxooKgbhaTZ -# 9DANBgkqhkiG9w0BAQUFAASCAQCDYtEawketme7+m6aEpN7Zg5WaJkN/ms0RijUD -# YzXTc5gIUDtxzi4tLZMoX5koEMJmV9CO5mvh8ugF08ZgPNTgjw4VLe5vt5bteZ7L -# lnxMJLmSntvMadmdllsDeHXS+zWeG1mqL5YoUb70JcKPlCzFXJ80HtddYXw0+IXU -# I5mQqatFvrNR24dLMifN51+2geihs990DYjv1t5JrrfJf2vbT8RPwP2QAhGVYQ/r -# z9d+k5PoidNCuWwa8Gy38SsIhBoQlSr7B/812I7VkJ1LxgDVW5YwdmaCZulhNOIv -# XgrQSPBouSZsY62Ru9SbrWmOuh5XzXJUAB1mMf7PTQNXmhcu -# SIG # End signature block diff --git a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psm1 b/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psm1 deleted file mode 100644 index 3c7eea68a..000000000 --- a/packages/Microsoft.SqlServer.Compact.4.0.8876.1/tools/VS.psm1 +++ /dev/null @@ -1,276 +0,0 @@ -function Get-VsFileSystem { - $componentModel = Get-VSComponentModel - $fileSystemProvider = $componentModel.GetService([NuGet.VisualStudio.IFileSystemProvider]) - $solutionManager = $componentModel.GetService([NuGet.VisualStudio.ISolutionManager]) - - $fileSystem = $fileSystemProvider.GetFileSystem($solutionManager.SolutionDirectory) - - return $fileSystem -} - -function Add-PostBuildEvent ($project, $installPath) { - $currentPostBuildCmd = $project.Properties.Item("PostBuildEvent").Value - $sqlCEPostBuildCmd = Get-PostBuildCommand $installPath - # Append our post build command if it's not already there - if (!$currentPostBuildCmd.Contains($sqlCEPostBuildCmd)) { - $project.Properties.Item("PostBuildEvent").Value += $SqlCEPostBuildCmd - } -} - -function Add-FilesToDirectory ($srcDirectory, $destDirectory) { - ls $srcDirectory -Recurse -Filter *.dll | %{ - $srcPath = $_.FullName - - $relativePath = $srcPath.Substring($srcDirectory.Length + 1) - $destPath = Join-Path $destDirectory $relativePath - - $fileSystem = Get-VsFileSystem - if (!(Test-Path $destPath)) { - $fileStream = $null - try { - $fileStream = [System.IO.File]::OpenRead($_.FullName) - $fileSystem.AddFile($destPath, $fileStream) - } catch { - # We don't want an exception to surface if we can't add the file for some reason - } finally { - if ($fileStream -ne $null) { - $fileStream.Dispose() - } - } - } - } -} - -function Remove-FilesFromDirectory ($srcDirectory, $destDirectory) { - $fileSystem = Get-VsFileSystem - - ls $srcDirectory -Recurse -Filter *.dll | %{ - $relativePath = $_.FullName.Substring($srcDirectory.Length + 1) - $fileInBin = Join-Path $destDirectory $relativePath - if ($fileSystem.FileExists($fileInBin) -and ((Get-Item $fileInBin).Length -eq $_.Length)) { - # If a corresponding file exists in bin and has the exact file size as the one inside the package, it's most likely the same file. - try { - $fileSystem.DeleteFile($fileInBin) - } catch { - # We don't want an exception to surface if we can't delete the file - } - } - } -} - -function Remove-PostBuildEvent ($project, $installPath) { - $sqlCEPostBuildCmd = Get-PostBuildCommand $installPath - - try { - # Get the current Post Build Event cmd - $currentPostBuildCmd = $project.Properties.Item("PostBuildEvent").Value - - # Remove our post build command from it (if it's there) - $project.Properties.Item("PostBuildEvent").Value = $currentPostBuildCmd.Replace($SqlCEPostBuildCmd, '') - } catch { - # Accessing $project.Properties might throw - } -} - -function Get-PostBuildCommand ($installPath) { - Write-Host $dte.Solution.FullName $installPath - $solutionDir = [IO.Path]::GetDirectoryName($dte.Solution.FullName) + "\" - $path = $installPath.Replace($solutionDir, "`$(SolutionDir)") - - $NativeAssembliesDir = Join-Path $path "NativeBinaries" - $x86 = $(Join-Path $NativeAssembliesDir "x86\*.*") - $x64 = $(Join-Path $NativeAssembliesDir "amd64\*.*") - - return " - if not exist `"`$(TargetDir)x86`" md `"`$(TargetDir)x86`" - xcopy /s /y `"$x86`" `"`$(TargetDir)x86`" - if not exist `"`$(TargetDir)amd64`" md `"`$(TargetDir)amd64`" - xcopy /s /y `"$x64`" `"`$(TargetDir)amd64`"" -} - -function Get-ProjectRoot($project) { - try { - $project.Properties.Item("FullPath").Value - } catch { - - } -} - -function Get-ChildProjectItem($parent, $name) { - try { - return $parent.ProjectItems.Item($name); - } catch { - - } -} - -function Ensure-Folder($parent, $name) { - $item = Get-ChildProjectItem $parent $name - if(!$item) { - $item = (Get-Interface $parent.ProjectItems "EnvDTE.ProjectItems").AddFolder($name) - } - return $item; -} - -function Remove-Child($parent, $name) { - $item = Get-ChildProjectItem $parent $name - if($item) { - (Get-Interface $item "EnvDTE.ProjectItem").Delete() - } -} - -function Remove-EmptyFolder($item) { - if($item.ProjectItems.Count -eq 0) { - (Get-Interface $item "EnvDTE.ProjectItem").Delete() - } -} - -function Add-ProjectItem($item, $src, $itemtype = "None") { - $newitem = (Get-Interface $item.ProjectItems "EnvDTE.ProjectItems").AddFromFileCopy($src) - $newitem.Properties.Item("ItemType").Value = $itemtype -} - -Export-ModuleMember -function Add-PostBuildEvent, Add-FilesToDirectory, Remove-PostBuildEvent, Remove-FilesFromDirectory, Get-ProjectRoot, Get-ChildProjectItem, Ensure-Folder, Remove-Child, Remove-EmptyFolder, Add-ProjectItem -# SIG # Begin signature block -# MIIaYAYJKoZIhvcNAQcCoIIaUTCCGk0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU1qR1FcWhpAaK0NBKT/GqMhu8 -# rkWgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN -# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx -# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w -# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 -# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O -# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o -# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT -# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n -# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD -# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO -# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR -# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z -# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw -# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI -# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv -# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL -# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy -# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ -# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC -# A6KgAwIBAgIKYQUTNgAAAAAAGjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE3WhcNMTIxMDI1MjA0MjE3WjCBszEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q -# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjE1OUMtQTNGNy0yNTcwMSUwIwYD -# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B -# AQEFAAOCAQ8AMIIBCgKCAQEAnDSYGckJKWOZAhZ1qIhXfaG7qUES/GSRpdYFeL93 -# 3OzmrrhQTsDjGr3tt/34IIpxOapyknKfignlE++RQe1hJWtRre6oQ7VhQiyd8h2x -# 0vy39Xujc3YTsyuj25RhgFWhD23d2OwW/4V/lp6IfwAujnokumidj8bK9JB5euGb -# 7wZdfvguw2oVnDwUL+fVlMgiG1HLqVWGIbda80ESOZ/wValOqiUrY/uRcjwPfMCW -# ctzBo8EIyt7FybXACl+lnAuqcgpdCkB9LpjQq7KIj4aA6H3RvlVr4FgsyDY/+eYR -# w/BDBYV4AxflLKcpfNPilRcAbNvcrTwZOgLgfWLUzvYdPQIDAQABo4IBCTCCAQUw -# HQYDVR0OBBYEFPaDiyCHEe6Dy9vehaLSaIY3YXSQMB8GA1UdIwQYMBaAFCM0+NlS -# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj -# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD -# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw -# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAGL0BQ1P5xtr -# gudSDN95jKhVgTOX06TKyf6vSNt72m96KE/H0LeJ2NGmmcyRVgA7OOi3Mi/u+c9r -# 2Zje1gL1QlhSa47aQNwWoLPUvyYVy0hCzNP9tPrkRIlmD0IOXvcEnyNIW7SJQcTa -# bPg29D/CHhXfmEwAxLLs3l8BAUOcuELWIsiTmp7JpRhn/EeEHpFdm/J297GOch2A -# djw2EUbKfjpI86/jSfYXM427AGOCnFejVqfDbpCjPpW3/GTRXRjCCwFQY6f889GA -# noTjMjTdV5VAo21+2usuWgi0EAZeMskJ6TKCcRan+savZpiJ+dmetV8QI6N3gPJN -# 1igAclCFvOUwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA -# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv -# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl -# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ -# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA -# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc -# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ -# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc -# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX -# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV -# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB -# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt -# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX -# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z -# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU -# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB -# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM -# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j -# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO -# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY -# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K -# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO -# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC -# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH -# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB -# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc -# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv -# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk -# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj -# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw -# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN -# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj -# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY -# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co -# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt -# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 -# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB -# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 -# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME -# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB -# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy -# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT -# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB -# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j -# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw -# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO -# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K -# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d -# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK -# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY -# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP -# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo -# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh -# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v -# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E -# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ -# E6P9MYIEnTCCBJkCAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ -# zJMAAQAAAGYwCQYFKw4DAhoFAKCByjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB -# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU -# 3wFC+NxHvXnIrl0/2K+O4SXKXKQwagYKKwYBBAGCNwIBDDFcMFqgOIA2AE0AaQBj -# AHIAbwBzAG8AZgB0ACAAQQBTAFAALgBOAEUAVAAgAFcAZQBiACAAUABhAGcAZQBz -# oR6AHGh0dHA6Ly93d3cuYXNwLm5ldC93ZWJtYXRyaXgwDQYJKoZIhvcNAQEBBQAE -# ggEAz8PRGRssNn9wrGQuIlxPVC5+NIxBSDJTVuT8z+ZUh166s7D8qU0DEuByCw7S -# Z+TKZYAM8mnCG1RGPGo4WPD4R3PWBFTObdPpwP25pkqhLxBy6zTVU8q+iPSo/xNg -# KFMdY41yPnwSff3k+Os7Vl1GZVOcrORrw+iVpIB4b14PY5+e4esGFd8yoHf+bJ9T -# iG+Z4/6llYMLNClpA26HDpA0XJqPKZrZSmAgiRRdkSLIGRKg8UqD2Fi2QpOvYM+C -# pQCUoC5X2wOjIDnq5Q/Mf9P+tPFawDAbLlALL9xssamedRugt5Em34Py3bJeYXuW -# JqZX+rL+NoRBJEMXo7ppnJA5YKGCAh0wggIZBgkqhkiG9w0BCQYxggIKMIICBgIB -# ATCBhTB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD -# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0ECCmEFEzYAAAAAABowBwYFKw4D -# AhqgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x -# MjA1MDIyMzMzMjFaMCMGCSqGSIb3DQEJBDEWBBT/f8GnHFPOgw+3JqpQkl902xGy -# gzANBgkqhkiG9w0BAQUFAASCAQBTzF+Oxk9EWWKUtrw/zfFhpB7N5E84ugrd1+Pi -# nP8Hn8TkmwHMBIZIys9ckO2fYkcY/CkMrSGoC4WpyplVm5siPH28c2Ty8OyI4VM7 -# OTxxAGs0ll9jpAPfL/y/P+N+DgGxU3rcUAL20XA+XPz8uY2lm0LW0sqxDn8B00oA -# 8/6YAsIVx2QwCECDGnNw5E33gTvbHKZQSge2g7gN97PvO5gCq0cGbKn4YJYkinJj -# T3daIhuAW7ik2IRlHwaKd6P+B8Frq8wqT61OiUx4DWBQ0W964c6J5CKcBEbR5H/+ -# UPSB6RPSVSmZa4M4+qK4ot/uasmsmsMFuzqSqUlhZtzfCosg -# SIG # End signature block diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/Loader.cs b/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/Loader.cs deleted file mode 100644 index 891102912..000000000 --- a/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/Loader.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace SqlServerTypes -{ - /// - /// Utility methods related to CLR Types for SQL Server - /// - internal class Utilities - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern IntPtr LoadLibrary(string libname); - - /// - /// Loads the required native assemblies for the current architecture (x86 or x64) - /// - /// - /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications - /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. - /// - public static void LoadNativeAssemblies(string rootApplicationPath) - { - var nativeBinaryPath = IntPtr.Size > 4 - ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") - : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); - - LoadNativeAssembly(nativeBinaryPath, "msvcr100.dll"); - LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial110.dll"); - } - - private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) - { - var path = Path.Combine(nativeBinaryPath, assemblyName); - var ptr = LoadLibrary(path); - if (ptr == IntPtr.Zero) - { - throw new Exception(string.Format( - "Error loading {0} (ErrorCode: {1})", - assemblyName, - Marshal.GetLastWin32Error())); - } - } - } -} \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/readme.htm b/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/readme.htm deleted file mode 100644 index 1f4b22477..000000000 --- a/packages/Microsoft.SqlServer.Types.11.0.2/content/SqlServerTypes/readme.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - - Microsoft.SqlServer.Types - - - -
-

Action required to load native assemblies

-

- To deploy an application that uses spatial data types to a machine that does not have 'System CLR Types for SQL Server' installed you also need to deploy the native assembly SqlServerSpatial110.dll. Both x86 (32 bit) and x64 (64 bit) versions of this assembly have been added to your project under the SqlServerTypes\x86 and SqlServerTypes\x64 subdirectories. The native assembly msvcr100.dll is also included in case the C++ runtime is not installed. -

-

- You need to add code to load the correct one of these assemblies at runtime (depending on the current architecture). -

-

ASP.NET applications

-

- For ASP.NET applications, add the following line of code to the Application_Start method in Global.asax.cs: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
-

-

Desktop applications

-

- For desktop applications, add the following line of code to run before any spatial operations are performed: -

    SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
-

-
- - \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/lib/net20/Microsoft.SqlServer.Types.dll b/packages/Microsoft.SqlServer.Types.11.0.2/lib/net20/Microsoft.SqlServer.Types.dll deleted file mode 100644 index 7843044fe..000000000 Binary files a/packages/Microsoft.SqlServer.Types.11.0.2/lib/net20/Microsoft.SqlServer.Types.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/SqlServerSpatial110.dll b/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/SqlServerSpatial110.dll deleted file mode 100644 index 8bb3895c5..000000000 Binary files a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/SqlServerSpatial110.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/msvcr100.dll b/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/msvcr100.dll deleted file mode 100644 index 0318fb096..000000000 Binary files a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x64/msvcr100.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/SqlServerSpatial110.dll b/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/SqlServerSpatial110.dll deleted file mode 100644 index 42034fe78..000000000 Binary files a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/SqlServerSpatial110.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/msvcr100.dll b/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/msvcr100.dll deleted file mode 100644 index fd91c89d8..000000000 Binary files a/packages/Microsoft.SqlServer.Types.11.0.2/nativeBinaries/x86/msvcr100.dll and /dev/null differ diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/tools/install.ps1 b/packages/Microsoft.SqlServer.Types.11.0.2/tools/install.ps1 deleted file mode 100644 index 50b78a7b5..000000000 --- a/packages/Microsoft.SqlServer.Types.11.0.2/tools/install.ps1 +++ /dev/null @@ -1,52 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -$packagePath = (New-Object system.IO.DirectoryInfo $toolsPath).Parent.FullName -$cppBinaryPathx86 = Join-Path $packagePath "nativeBinaries\x86\msvcr100.dll" -$cppBinaryPathx64 = Join-Path $packagePath "nativeBinaries\x64\msvcr100.dll" -$sqlBinaryPathx86 = Join-Path $packagePath "nativeBinaries\x86\SqlServerSpatial110.dll" -$sqlBinaryPathx64 = Join-Path $packagePath "nativeBinaries\x64\SqlServerSpatial110.dll" - -$sqlServerTypes = $project.ProjectItems.Item("SqlServerTypes") - -$folderx86 = $sqlServerTypes.ProjectItems | where Name -eq "x86" -if (!$folderx86) -{ - $folderx86 = $sqlServerTypes.ProjectItems.AddFolder("x86") -} - -$folderx64 = $sqlServerTypes.ProjectItems | where Name -eq "x64" -if (!$folderx64) -{ - $folderx64 = $sqlServerTypes.ProjectItems.AddFolder("x64") -} - -$cppLinkx86 = $folderx86.ProjectItems | where Name -eq "msvcr100.dll" -if (!$cppLinkx86) -{ - $cppLinkx86 = $folderx86.ProjectItems.AddFromFile($cppBinaryPathx86) - $cppLinkx86.Properties.Item("CopyToOutputDirectory").Value = 2 -} - -$sqlLinkx86 = $folderx86.ProjectItems | where Name -eq "SqlServerSpatial110.dll" -if (!$sqlLinkx86) -{ - $sqlLinkx86 = $folderx86.ProjectItems.AddFromFile($sqlBinaryPathx86) - $sqlLinkx86.Properties.Item("CopyToOutputDirectory").Value = 2 -} - -$cppLinkx64 = $folderx64.ProjectItems | where Name -eq "msvcr100.dll" -if (!$cppLinkx64) -{ - $cppLinkx64 = $folderx64.ProjectItems.AddFromFile($cppBinaryPathx64) - $cppLinkx64.Properties.Item("CopyToOutputDirectory").Value = 2 -} - -$sqlLinkx64 = $folderx64.ProjectItems | where Name -eq "SqlServerSpatial110.dll" -if (!$sqlLinkx64) -{ - $sqlLinkx64 = $folderx64.ProjectItems.AddFromFile($sqlBinaryPathx64) - $sqlLinkx64.Properties.Item("CopyToOutputDirectory").Value = 2 -} - -$readmefile = Join-Path (Split-Path $project.FileName) "SqlServerTypes\readme.htm" -$dte.ItemOperations.Navigate($readmefile) \ No newline at end of file diff --git a/packages/Microsoft.SqlServer.Types.11.0.2/tools/uninstall.ps1 b/packages/Microsoft.SqlServer.Types.11.0.2/tools/uninstall.ps1 deleted file mode 100644 index 45c6e259b..000000000 --- a/packages/Microsoft.SqlServer.Types.11.0.2/tools/uninstall.ps1 +++ /dev/null @@ -1,52 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -$sqlServerTypes = $project.ProjectItems | where Name -eq "SqlServerTypes" -if($sqlServerTypes) -{ - $folderx86 = $sqlServerTypes.ProjectItems | where Name -eq "x86" - if ($folderx86) - { - $cppFilex86 = $folderx86.ProjectItems | where Name -eq "msvcr100.dll" - if($cppFilex86) - { - $cppFilex86.Delete(); - } - - $sqlFilex86 = $folderx86.ProjectItems | where Name -eq "SqlServerSpatial110.dll" - if($sqlFilex86) - { - $sqlFilex86.Delete(); - } - - if($folderx86.ProjectItems.Count -eq 0) - { - $folderx86.Delete() - } - } - - $folderx64 = $sqlServerTypes.ProjectItems | where Name -eq "x64" - if ($folderx64) - { - $cppFilex64 = $folderx64.ProjectItems | where Name -eq "msvcr100.dll" - if($cppFilex64) - { - $cppFilex64.Delete(); - } - - $sqlFilex64 = $folderx64.ProjectItems | where Name -eq "SqlServerSpatial110.dll" - if($sqlFilex64) - { - $sqlFilex64.Delete(); - } - - if($folderx64.ProjectItems.Count -eq 0) - { - $folderx64.Delete() - } - } - - if($sqlServerTypes.ProjectItems.Count -eq 0) - { - $sqlServerTypes.Delete() - } -} \ No newline at end of file diff --git a/packages/Npgsql.2.1.3/lib/net20/Mono.Security.dll b/packages/Npgsql.2.1.3/lib/net20/Mono.Security.dll deleted file mode 100644 index 6accde791..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/Npgsql.dll b/packages/Npgsql.2.1.3/lib/net20/Npgsql.dll deleted file mode 100644 index 796c82213..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/Npgsql.xml b/packages/Npgsql.2.1.3/lib/net20/Npgsql.xml deleted file mode 100644 index 16738d481..000000000 --- a/packages/Npgsql.2.1.3/lib/net20/Npgsql.xml +++ /dev/null @@ -1,6692 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Summary description for LargeObjectManager. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - Implements for version 2 of the protocol. - - - - - Encapsulates the null mapping bytes sent at the start of a version 2 - datarow message, and the process of identifying the nullity of the data - at a particular index - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - For classes representing messages sent from the client to the server. - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Slightly optimised version of ExecuteNonQuery() for internal use in cases where the number - of affected rows is of no interest. - This function must not be called with a query that returns result rows, after calling Prepare(), or. - with a query that requires parameter substitution of any kind. - - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - - UTF8 encoded command ready to be sent to the backend. - - - - Find the beginning and end of each distinct SQL command and produce - a list of descriptors, one for each command. Commands described are trimmed of - leading and trailing white space and their terminating semi-colons. - - Raw command text. - List of chunk descriptors. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - Starting index within src. - Length of region to be processed. - - - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - Protocol version in use. - This can only be called when there is an active connection. - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - This is a pretty horrible hack to fix https://github.com/npgsql/Npgsql/issues/133 - In a nutshell, starting with .NET 4.5 WindowsIdentity inherits from ClaimsIdentity - which doesn't exist in mono, and calling UserName getter above bombs. - The workaround is that the function that actually deals with WindowsIdentity never - gets called on mono, so never gets JITted and the problem goes away. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Backend protocol version in use by this connector. - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Report whether the current connection can support prepare functionality. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. Not implemented. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the level of information to log to the logfile. - - The current LogLevel - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, and the size. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - and the source column m_Name. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - the source column m_Name, a ParameterDirection, - the precision of the parameter, the scale of the parameter, a - DataRowVersion to use, and the - value of the parameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - Summary description for NpgsqlQuery - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - - - - Provides a set of static (Shared in Visual Basic) methods for - querying objects that implement . - - - - - Returns the input typed as . - - - - - Returns an empty that has the - specified type argument. - - - - - Converts the elements of an to the - specified type. - - - - - Filters the elements of an based on a specified type. - - - - - Generates a sequence of integral numbers within a specified range. - - The value of the first integer in the sequence. - The number of sequential integers to generate. - - - - Generates a sequence that contains one repeated value. - - - - - Filters a sequence of values based on a predicate. - - - - - Filters a sequence of values based on a predicate. - Each element's index is used in the logic of the predicate function. - - - - - Projects each element of a sequence into a new form. - - - - - Projects each element of a sequence into a new form by - incorporating the element's index. - - - - - Projects each element of a sequence to an - and flattens the resulting sequences into one sequence. - - - - - Projects each element of a sequence to an , - and flattens the resulting sequences into one sequence. The - index of each source element is used in the projected form of - that element. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. The index of - each source element is used in the intermediate projected form - of that element. - - - - - Returns elements from a sequence as long as a specified condition is true. - - - - - Returns elements from a sequence as long as a specified condition is true. - The element's index is used in the logic of the predicate function. - - - - - Returns a specified number of contiguous elements from the start - of a sequence. - - - - - Base implementation of First operator. - - - - - Returns the first element of a sequence. - - - - - Returns the first element in a sequence that satisfies a specified condition. - - - - - Returns the first element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the first element of the sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Last operator. - - - - - Returns the last element of a sequence. - - - - - Returns the last element of a sequence that satisfies a - specified condition. - - - - - Returns the last element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the last element of a sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Single operator. - - - - - Returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition, and throws an exception if more than one - such element exists. - - - - - Returns the only element of a sequence, or a default value if - the sequence is empty; this method throws an exception if there - is more than one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition or a default value if no such element - exists; this method throws an exception if more than one element - satisfies the condition. - - - - - Returns the element at a specified index in a sequence. - - - - - Returns the element at a specified index in a sequence or a - default value if the index is out of range. - - - - - Inverts the order of the elements in a sequence. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. The element's - index is used in the logic of the predicate function. - - - - - Bypasses a specified number of elements in a sequence and then - returns the remaining elements. - - - - - Returns the number of elements in a sequence. - - - - - Returns a number that represents how many elements in the - specified sequence satisfy a condition. - - - - - Returns an that represents the total number - of elements in a sequence. - - - - - Returns an that represents how many elements - in a sequence satisfy a condition. - - - - - Concatenates two sequences. - - - - - Creates a from an . - - - - - Creates an array from an . - - - - - Returns distinct elements from a sequence by using the default - equality comparer to compare values. - - - - - Returns distinct elements from a sequence by using a specified - to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and a key comparer. - - - - - Creates a from an - according to specified key - and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer and an element selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function and compares the keys by using a specified - comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and projects the elements for each group by - using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. - - - - - Groups the elements of a sequence according to a key selector - function. The keys are compared by using a comparer and each - group's elements are projected by using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The elements of each group are projected by using a - specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The keys are compared by using a specified comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. Key values are compared by using a specified comparer, - and the elements of each group are projected by using a - specified function. - - - - - Applies an accumulator function over a sequence. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value, and the - specified function is used to select the result value. - - - - - Produces the set union of two sequences by using the default - equality comparer. - - - - - Produces the set union of two sequences by using a specified - . - - - - - Returns the elements of the specified sequence or the type - parameter's default value in a singleton collection if the - sequence is empty. - - - - - Returns the elements of the specified sequence or the specified - value in a singleton collection if the sequence is empty. - - - - - Determines whether all elements of a sequence satisfy a condition. - - - - - Determines whether a sequence contains any elements. - - - - - Determines whether any element of a sequence satisfies a - condition. - - - - - Determines whether a sequence contains a specified element by - using the default equality comparer. - - - - - Determines whether a sequence contains a specified element by - using a specified . - - - - - Determines whether two sequences are equal by comparing the - elements by using the default equality comparer for their type. - - - - - Determines whether two sequences are equal by comparing their - elements by using a specified . - - - - - Base implementation for Min/Max operator. - - - - - Base implementation for Min/Max operator for nullable types. - - - - - Returns the minimum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the minimum resulting value. - - - - - Returns the maximum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the maximum resulting value. - - - - - Makes an enumerator seen as enumerable once more. - - - The supplied enumerator must have been started. The first element - returned is the element the enumerator was on when passed in. - DO NOT use this method if the caller must be a generator. It is - mostly safe among aggregate operations. - - - - - Sorts the elements of a sequence in ascending order according to a key. - - - - - Sorts the elements of a sequence in ascending order by using a - specified comparer. - - - - - Sorts the elements of a sequence in descending order according to a key. - - - - - Sorts the elements of a sequence in descending order by using a - specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order by using a specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order, according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order by using a specified comparer. - - - - - Base implementation for Intersect and Except operators. - - - - - Produces the set intersection of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set intersection of two sequences by using the - specified to compare values. - - - - - Produces the set difference of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set difference of two sequences by using the - specified to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and key comparer. - - - - - Creates a from an - according to specified key - selector and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer, and an element selector function. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. A - specified is used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. A specified - is used to compare keys. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Represents a collection of objects that have a common key. - - - - - Gets the key of the . - - - - - This attribute allows us to define extension methods without - requiring .NET Framework 3.5. For more information, see the section, - Extension Methods in .NET Framework 2.0 Apps, - of Basic Instincts: Extension Methods - column in MSDN Magazine, - issue Nov 2007. - - - - - Defines an indexer, size property, and Boolean search method for - data structures that map keys to - sequences of values. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - Represents a sorted sequence. - - - - - Performs a subsequent ordering on the elements of an - according to a key. - - - - - Represents a collection of keys each mapped to one or more values. - - - - - Determines whether a specified key is in the . - - - - - Applies a transform function to each key and its associated - values and returns the results. - - - - - Returns a generic enumerator that iterates through the . - - - - - Gets the number of key/value collection pairs in the . - - - - - Gets the collection of values indexed by the specified key. - - -
-
diff --git a/packages/Npgsql.2.1.3/lib/net20/de/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/de/Npgsql.resources.dll deleted file mode 100644 index d38e44999..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/es/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/es/Npgsql.resources.dll deleted file mode 100644 index 980c36bbf..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/fi/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/fi/Npgsql.resources.dll deleted file mode 100644 index 04ac36d7c..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/fr/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/fr/Npgsql.resources.dll deleted file mode 100644 index 65524c4b8..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/ja/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/ja/Npgsql.resources.dll deleted file mode 100644 index a83c1b9ee..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net20/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net20/zh-CN/Npgsql.resources.dll deleted file mode 100644 index c4f70dcee..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net20/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/Mono.Security.dll b/packages/Npgsql.2.1.3/lib/net35/Mono.Security.dll deleted file mode 100644 index 6accde791..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/Npgsql.dll b/packages/Npgsql.2.1.3/lib/net35/Npgsql.dll deleted file mode 100644 index a6aca0ba5..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/Npgsql.xml b/packages/Npgsql.2.1.3/lib/net35/Npgsql.xml deleted file mode 100644 index 81334301d..000000000 --- a/packages/Npgsql.2.1.3/lib/net35/Npgsql.xml +++ /dev/null @@ -1,5620 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Summary description for LargeObjectManager. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - Implements for version 2 of the protocol. - - - - - Encapsulates the null mapping bytes sent at the start of a version 2 - datarow message, and the process of identifying the nullity of the data - at a particular index - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - For classes representing messages sent from the client to the server. - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Slightly optimised version of ExecuteNonQuery() for internal use in cases where the number - of affected rows is of no interest. - This function must not be called with a query that returns result rows, after calling Prepare(), or. - with a query that requires parameter substitution of any kind. - - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - - UTF8 encoded command ready to be sent to the backend. - - - - Find the beginning and end of each distinct SQL command and produce - a list of descriptors, one for each command. Commands described are trimmed of - leading and trailing white space and their terminating semi-colons. - - Raw command text. - List of chunk descriptors. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - Starting index within src. - Length of region to be processed. - - - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - Protocol version in use. - This can only be called when there is an active connection. - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - This is a pretty horrible hack to fix https://github.com/npgsql/Npgsql/issues/133 - In a nutshell, starting with .NET 4.5 WindowsIdentity inherits from ClaimsIdentity - which doesn't exist in mono, and calling UserName getter above bombs. - The workaround is that the function that actually deals with WindowsIdentity never - gets called on mono, so never gets JITted and the problem goes away. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Backend protocol version in use by this connector. - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Report whether the current connection can support prepare functionality. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. Not implemented. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the level of information to log to the logfile. - - The current LogLevel - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, and the size. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - and the source column m_Name. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - the source column m_Name, a ParameterDirection, - the precision of the parameter, the scale of the parameter, a - DataRowVersion to use, and the - value of the parameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - Summary description for NpgsqlQuery - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.1.3/lib/net35/de/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/de/Npgsql.resources.dll deleted file mode 100644 index 8d6e369a5..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/es/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/es/Npgsql.resources.dll deleted file mode 100644 index 00dba59ab..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/fi/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/fi/Npgsql.resources.dll deleted file mode 100644 index 3a25de9a8..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/fr/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/fr/Npgsql.resources.dll deleted file mode 100644 index 3a39a831f..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/ja/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/ja/Npgsql.resources.dll deleted file mode 100644 index d3f1e271c..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net35/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net35/zh-CN/Npgsql.resources.dll deleted file mode 100644 index 9844ff1fa..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net35/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/Mono.Security.dll b/packages/Npgsql.2.1.3/lib/net40/Mono.Security.dll deleted file mode 100644 index 1371f5cb6..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/Npgsql.dll b/packages/Npgsql.2.1.3/lib/net40/Npgsql.dll deleted file mode 100644 index e37a2f30b..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/Npgsql.xml b/packages/Npgsql.2.1.3/lib/net40/Npgsql.xml deleted file mode 100644 index 81334301d..000000000 --- a/packages/Npgsql.2.1.3/lib/net40/Npgsql.xml +++ /dev/null @@ -1,5620 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Summary description for LargeObjectManager. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - Implements for version 2 of the protocol. - - - - - Encapsulates the null mapping bytes sent at the start of a version 2 - datarow message, and the process of identifying the nullity of the data - at a particular index - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - For classes representing messages sent from the client to the server. - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Slightly optimised version of ExecuteNonQuery() for internal use in cases where the number - of affected rows is of no interest. - This function must not be called with a query that returns result rows, after calling Prepare(), or. - with a query that requires parameter substitution of any kind. - - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - - UTF8 encoded command ready to be sent to the backend. - - - - Find the beginning and end of each distinct SQL command and produce - a list of descriptors, one for each command. Commands described are trimmed of - leading and trailing white space and their terminating semi-colons. - - Raw command text. - List of chunk descriptors. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - Starting index within src. - Length of region to be processed. - - - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - Protocol version in use. - This can only be called when there is an active connection. - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - This is a pretty horrible hack to fix https://github.com/npgsql/Npgsql/issues/133 - In a nutshell, starting with .NET 4.5 WindowsIdentity inherits from ClaimsIdentity - which doesn't exist in mono, and calling UserName getter above bombs. - The workaround is that the function that actually deals with WindowsIdentity never - gets called on mono, so never gets JITted and the problem goes away. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Backend protocol version in use by this connector. - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Report whether the current connection can support prepare functionality. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. Not implemented. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the level of information to log to the logfile. - - The current LogLevel - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, and the size. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - and the source column m_Name. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - the source column m_Name, a ParameterDirection, - the precision of the parameter, the scale of the parameter, a - DataRowVersion to use, and the - value of the parameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - Summary description for NpgsqlQuery - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.1.3/lib/net40/de/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/de/Npgsql.resources.dll deleted file mode 100644 index 5a9601f81..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/es/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/es/Npgsql.resources.dll deleted file mode 100644 index e75068938..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/fi/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/fi/Npgsql.resources.dll deleted file mode 100644 index 42d7e2344..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/fr/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/fr/Npgsql.resources.dll deleted file mode 100644 index 1afe22bcd..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/ja/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/ja/Npgsql.resources.dll deleted file mode 100644 index cd201882d..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net40/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net40/zh-CN/Npgsql.resources.dll deleted file mode 100644 index aa528f4de..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net40/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/Mono.Security.dll b/packages/Npgsql.2.1.3/lib/net45/Mono.Security.dll deleted file mode 100644 index 1371f5cb6..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/Npgsql.dll b/packages/Npgsql.2.1.3/lib/net45/Npgsql.dll deleted file mode 100644 index f1ab48df7..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/Npgsql.xml b/packages/Npgsql.2.1.3/lib/net45/Npgsql.xml deleted file mode 100644 index 81334301d..000000000 --- a/packages/Npgsql.2.1.3/lib/net45/Npgsql.xml +++ /dev/null @@ -1,5620 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Summary description for LargeObjectManager. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - Implements for version 2 of the protocol. - - - - - Encapsulates the null mapping bytes sent at the start of a version 2 - datarow message, and the process of identifying the nullity of the data - at a particular index - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - For classes representing messages sent from the client to the server. - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Slightly optimised version of ExecuteNonQuery() for internal use in cases where the number - of affected rows is of no interest. - This function must not be called with a query that returns result rows, after calling Prepare(), or. - with a query that requires parameter substitution of any kind. - - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - - UTF8 encoded command ready to be sent to the backend. - - - - Find the beginning and end of each distinct SQL command and produce - a list of descriptors, one for each command. Commands described are trimmed of - leading and trailing white space and their terminating semi-colons. - - Raw command text. - List of chunk descriptors. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - Starting index within src. - Length of region to be processed. - - - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - Protocol version in use. - This can only be called when there is an active connection. - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - This is a pretty horrible hack to fix https://github.com/npgsql/Npgsql/issues/133 - In a nutshell, starting with .NET 4.5 WindowsIdentity inherits from ClaimsIdentity - which doesn't exist in mono, and calling UserName getter above bombs. - The workaround is that the function that actually deals with WindowsIdentity never - gets called on mono, so never gets JITted and the problem goes away. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Backend protocol version in use by this connector. - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Report whether the current connection can support prepare functionality. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. Not implemented. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the level of information to log to the logfile. - - The current LogLevel - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, and the size. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - and the source column m_Name. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name, the DbType, the size, - the source column m_Name, a ParameterDirection, - the precision of the parameter, the scale of the parameter, a - DataRowVersion to use, and the - value of the parameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - Summary description for NpgsqlQuery - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.1.3/lib/net45/de/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/de/Npgsql.resources.dll deleted file mode 100644 index 904ec38ae..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/es/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/es/Npgsql.resources.dll deleted file mode 100644 index ee1d25657..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/fi/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/fi/Npgsql.resources.dll deleted file mode 100644 index 7243aeb53..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/fr/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/fr/Npgsql.resources.dll deleted file mode 100644 index 971f85a7f..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/ja/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/ja/Npgsql.resources.dll deleted file mode 100644 index ceaeaa259..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.1.3/lib/net45/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.1.3/lib/net45/zh-CN/Npgsql.resources.dll deleted file mode 100644 index dc26375a7..000000000 Binary files a/packages/Npgsql.2.1.3/lib/net45/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/Mono.Security.dll b/packages/Npgsql.2.2.5/lib/net20/Mono.Security.dll deleted file mode 100644 index 5173f0dc4..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/Npgsql.dll b/packages/Npgsql.2.2.5/lib/net20/Npgsql.dll deleted file mode 100644 index aebaf0340..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/Npgsql.xml b/packages/Npgsql.2.2.5/lib/net20/Npgsql.xml deleted file mode 100644 index 7b8ac7f23..000000000 --- a/packages/Npgsql.2.2.5/lib/net20/Npgsql.xml +++ /dev/null @@ -1,7598 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - This class implements the Fastpath api. - - - - - This maps the functions names to their id's (possible unique just - to a connection). - - - - - Our connection. - - - - - The network stream. - - - - - Initialises the fastpath system. - - BaseConnection to attach to. - The network stream to the backend. - - - - Initialises the fastpath system. - - BaseConnection to attach to. - - - - Send a function call to the PostgreSQL backend. - - Function id. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - Send a function call to the PostgreSQL backend by name. - Note: the mapping for the procedure name to function id needs to exist, - usually to an earlier call to addfunction(). - This is the prefered method to call, as function id's can/may change - between versions of the backend. - For an example of how this works, refer to NpgsqlTypes.LargeObject - - Function name. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Integer result. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Array containing result - - - - This adds a function to our lookup table. - User code should use the addFunctions method, which is based upon a - query, rather than hard coding the oid. The oid for a function is not - guaranteed to remain static, even on different servers of the same - version. - - Function name. - Function id. - - - - This takes a ResultSet containing two columns. Column 1 contains the - function name, Column 2 the oid. - It reads the entire ResultSet, loading the values into the function - table. - REMEMBER to close() the resultset after calling this!! - Implementation note about function name lookups: - PostgreSQL stores the function id's and their corresponding names in - the pg_proc table. To speed things up locally, instead of querying each - function from that table when required, a Dictionary is used. Also, only - the function's required are entered into this table, keeping connection - times as fast as possible. - The org.postgresql.largeobject.LargeObject class performs a query upon it's startup, - and passes the returned ResultSet to the addFunctions() method here. - Once this has been done, the LargeObject api refers to the functions by - name. - Dont think that manually converting them to the oid's will work. Ok, - they will for now, but they can change during development (there was some - discussion about this for V7.0), so this is implemented to prevent any - unwarranted headaches in the future. - - ResultSet - - - - This returns the function id associated by its name - If addFunction() or addFunctions() have not been called for this name, - then an NpgsqlException is thrown. - - Function name to lookup. - Function ID for fastpath call. - - - - Fast Path Arg. - - - - - Type of argument, true=integer, false=byte[]. - - - - - Integer value if type=true. - - - - - Byte value if type=false; - - - - - Constructs an argument that consists of an integer value. - - Int value to set. - - - - Constructs an argument that consists of an array of bytes. - - Array to store. - - - - Constructs an argument that consists of part of a byte array. - - Source array. - offset within array. - length of data to include. - - - - Constructs an argument that consists of a String. - - String to store. - - - - This sends this argument down the network stream. - The stream sent consists of the length.int4 then the contents. - Note: This is called from Fastpath, and cannot be called from - client code. - - - - - - Report send size. - - Send size. - - - - Large Object. - - - - - Indicates a seek from the begining of a file. - - - - - Indicates a seek from the current position. - - - - - Indicates a seek from the end of a file. - - - - - This opens a large object. - If the object does not exist, then an NpgsqlException is thrown. - - FastPath API for the connection to use. - OID of the Large Object to open. - Mode of opening the large object - - - - OID getter. - - The OID of this LargeObject. - - - - This method closes the object. You must not call methods in this - object after this is called. - - - - - Reads some data from the object, and return as a byte[] array. - - Number of bytes to read. - Array containing data read. - - - - Reads some data from the object into an existing array. - - Destination array. - Offset within array. - Maximum number of bytes to read. - The number of bytes actually read. - - - - Writes an array to the object. - - Array to write. - - - - Writes some data from an array to the object. - - Destination array. - Offset within array. - Number of bytes to write. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object. - Either SEEK_SET, SEEK_CUR or SEEK_END. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object from begining. - - - - Report the current position within the object. - - The current position within the object. - - - - This method is inefficient, as the only way to find out the size of - the object is to seek to the end, record the current position, then - return to the original position. - A better method will be found in the future. - - The size of the large object. - - - - OID. - - - - - Large Object Manager. - - - - - This mode indicates we want to write to an object - - - - - This mode indicates we want to read an object - - - - - This mode is the default. It indicates we want read and write access to - - - - - Constructs the LargeObject API. - There should only be one LargeObjectManager per Connection. The - org.postgresql.Connection class keeps track of the various extension API's - and it's advised you use those to gain access, and not going direct. - - - - - - This opens an existing large object, based on its OID. This method - assumes that READ and WRITE access is required (the default). - - OID of large object. - LargeObject instance providing access to the object - - - - This opens an existing large object, based on its OID. - - OID of large object. - Mode of open. - - - - - This creates a large object, returning its OID. - - OID of new object. - - - - This creates a large object, returning its OID. - - Bitmask describing different attributes of the new object. - OID of new object. - - - - This deletes a large object. - - OID describing object to delete. - - - - This deletes a large object. - It is identical to the Delete() method, and is supplied as the C API uses unlink. - - OID describing object to delete. - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Summary description for NpgsqlQuery - - - - - For classes representing messages sent from the client to the server. - - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - For prepared commands, captures the connection's - at the time the command was prepared. This allows us to know whether the connection was - closed since the command was prepared. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Internal query shortcut for use in cases where the number - of affected rows is of no interest. - - - - - Special adaptation of ExecuteBlind() that sets statement_timeout. - This exists to prevent Connector.SetBackendCommandTimeout() from calling Command.ExecuteBlind(), - which will cause an endless recursive loop. - - - Timeout in seconds. - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - UTF8 encoded command ready to be sent to the backend. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - - - false if the query has multiple statements which are not allowed - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - DB connection. - - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - DB parameter collection. - - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - DB transaction. - - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - Returns whether this query will execute as a prepared (compiled) query. - - - - - Design time visible. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Clear connection pool. - - - - - Clear all connection pools. - - - - - Enlist transation. - - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - A counter that gets incremented every time the connection is (re-)opened. - This allows us to identify an "instance" of connection, which is useful since - some resources are released when a connection is closed (e.g. prepared statements). - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Compatibility version. - - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - PostgreSQL server version. - - - - - Protocol version in use. - This can only be called when there is an active connection. - Always retuna Version3 - - - - - Whether the backend is an AWS Redshift instance - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Use extended types. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Whether the backend is an AWS Redshift instance - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Modify the backend statement_timeout value if needed. - - New timeout - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Whether the backend is an AWS Redshift instance - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Default delimiter. - - - - - Default separator. - - - - - Default null. - - - - - Default escape. - - - - - Default quote. - - - - - Default buffer size. - - - - - Constructor. - - - - - - Flush buffers. - - - - - Flush rows. - - - - - Flush fields. - - - - - Close the serializer. - - - - - Escape sequence for the given character. - - - - - - - Make room for bytes. - - - - - - Add bytes. - - - - - - End row. - - - - - Prefix field. - - - - - Field added. - - - - - Add null. - - - - - Add string. - - - - - - add Int32. - - - - - - Add Int64. - - - - - - Add number. - - - - - - Add bool - - - - - - Add DateTime. - - - - - - Report whether the serializer is active. - - - - - To Stream. - - - - - Delimiter. - - - - - Separator. - - - - - Escape. - - - - - Null. - - - - - Buffer size. - - - - - Report whether space remains in the buffer. - - - - - Strings to escape. - - - - - Escape sequence bytes. - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Default constructor. - - - - - Constructor. - - - - - - Constructor. - - - - - - - Constructor. - - - - - - - Create row updated event. - - - - - - - - - - Create row updating event. - - - - - - - - - - Raise the RowUpdated event. - - - - - - Raise the RowUpdating event. - - - - - - Row updated event. - - - - - Row updating event. - - - - - Delete command. - - - - - Select command. - - - - - Update command. - - - - - Insert command. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Has ordinal. - - - - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get specified field value. - /// - - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Send closed event. - - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Get enumerator. - - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Get object data. - - - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - The current command timeout on the backend. This is set via "SET statement_timeout = (milliseconds)". - A value of -1 means the backend's timeout value is unknown because it has not yet been set. - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Reset DBType. - - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Whether to use an explicit cast when included in a query. - - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Source column mapping. - - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - Add an Array of parameters to the collection. - - Parameters to add. - - - - Get parameter. - - - - - - - Get parameter. - - - - - - - Set parameter. - - - - - - - Set parameter. - - - - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Report the offset within the collection of the given parameter. - - Parameter to find. - Index of the parameter, or -1 if the parameter is not present. - - - - Insert the specified parameter into the collection. - - Index of the existing parameter before which to insert the new one. - Parameter to insert. - - - - Report whether the specified parameter is present in the collection. - - Parameter to find. - True if the parameter was found, otherwise false. - - - - Remove the specified parameter from the collection. - - Parameter to remove. - True if the parameter was found and removed, otherwise false. - - - - Convert collection to a System.Array. - - Destination array. - Starting index in destination array. - - - - Convert collection to a System.Array. - - NpgsqlParameter[] - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Report whether the collection is read only. Always false. - - - - - Report whether the collection is fixed size. Always false. - - - - - Report whether the collection is synchronized. - - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - Sync root. - - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - The index of the current field in the stream, i.e. the one that hasn't - been read yet - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Dispose. - - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - DB connection. - - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - - - - Provides a set of static (Shared in Visual Basic) methods for - querying objects that implement . - - - - - Returns the input typed as . - - - - - Returns an empty that has the - specified type argument. - - - - - Converts the elements of an to the - specified type. - - - - - Filters the elements of an based on a specified type. - - - - - Generates a sequence of integral numbers within a specified range. - - The value of the first integer in the sequence. - The number of sequential integers to generate. - - - - Generates a sequence that contains one repeated value. - - - - - Filters a sequence of values based on a predicate. - - - - - Filters a sequence of values based on a predicate. - Each element's index is used in the logic of the predicate function. - - - - - Projects each element of a sequence into a new form. - - - - - Projects each element of a sequence into a new form by - incorporating the element's index. - - - - - Projects each element of a sequence to an - and flattens the resulting sequences into one sequence. - - - - - Projects each element of a sequence to an , - and flattens the resulting sequences into one sequence. The - index of each source element is used in the projected form of - that element. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. The index of - each source element is used in the intermediate projected form - of that element. - - - - - Returns elements from a sequence as long as a specified condition is true. - - - - - Returns elements from a sequence as long as a specified condition is true. - The element's index is used in the logic of the predicate function. - - - - - Returns a specified number of contiguous elements from the start - of a sequence. - - - - - Base implementation of First operator. - - - - - Returns the first element of a sequence. - - - - - Returns the first element in a sequence that satisfies a specified condition. - - - - - Returns the first element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the first element of the sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Last operator. - - - - - Returns the last element of a sequence. - - - - - Returns the last element of a sequence that satisfies a - specified condition. - - - - - Returns the last element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the last element of a sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Single operator. - - - - - Returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition, and throws an exception if more than one - such element exists. - - - - - Returns the only element of a sequence, or a default value if - the sequence is empty; this method throws an exception if there - is more than one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition or a default value if no such element - exists; this method throws an exception if more than one element - satisfies the condition. - - - - - Returns the element at a specified index in a sequence. - - - - - Returns the element at a specified index in a sequence or a - default value if the index is out of range. - - - - - Inverts the order of the elements in a sequence. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. The element's - index is used in the logic of the predicate function. - - - - - Bypasses a specified number of elements in a sequence and then - returns the remaining elements. - - - - - Returns the number of elements in a sequence. - - - - - Returns a number that represents how many elements in the - specified sequence satisfy a condition. - - - - - Returns an that represents the total number - of elements in a sequence. - - - - - Returns an that represents how many elements - in a sequence satisfy a condition. - - - - - Concatenates two sequences. - - - - - Creates a from an . - - - - - Creates an array from an . - - - - - Returns distinct elements from a sequence by using the default - equality comparer to compare values. - - - - - Returns distinct elements from a sequence by using a specified - to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and a key comparer. - - - - - Creates a from an - according to specified key - and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer and an element selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function and compares the keys by using a specified - comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and projects the elements for each group by - using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. - - - - - Groups the elements of a sequence according to a key selector - function. The keys are compared by using a comparer and each - group's elements are projected by using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The elements of each group are projected by using a - specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The keys are compared by using a specified comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. Key values are compared by using a specified comparer, - and the elements of each group are projected by using a - specified function. - - - - - Applies an accumulator function over a sequence. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value, and the - specified function is used to select the result value. - - - - - Produces the set union of two sequences by using the default - equality comparer. - - - - - Produces the set union of two sequences by using a specified - . - - - - - Returns the elements of the specified sequence or the type - parameter's default value in a singleton collection if the - sequence is empty. - - - - - Returns the elements of the specified sequence or the specified - value in a singleton collection if the sequence is empty. - - - - - Determines whether all elements of a sequence satisfy a condition. - - - - - Determines whether a sequence contains any elements. - - - - - Determines whether any element of a sequence satisfies a - condition. - - - - - Determines whether a sequence contains a specified element by - using the default equality comparer. - - - - - Determines whether a sequence contains a specified element by - using a specified . - - - - - Determines whether two sequences are equal by comparing the - elements by using the default equality comparer for their type. - - - - - Determines whether two sequences are equal by comparing their - elements by using a specified . - - - - - Base implementation for Min/Max operator. - - - - - Base implementation for Min/Max operator for nullable types. - - - - - Returns the minimum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the minimum resulting value. - - - - - Returns the maximum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the maximum resulting value. - - - - - Makes an enumerator seen as enumerable once more. - - - The supplied enumerator must have been started. The first element - returned is the element the enumerator was on when passed in. - DO NOT use this method if the caller must be a generator. It is - mostly safe among aggregate operations. - - - - - Sorts the elements of a sequence in ascending order according to a key. - - - - - Sorts the elements of a sequence in ascending order by using a - specified comparer. - - - - - Sorts the elements of a sequence in descending order according to a key. - - - - - Sorts the elements of a sequence in descending order by using a - specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order by using a specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order, according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order by using a specified comparer. - - - - - Base implementation for Intersect and Except operators. - - - - - Produces the set intersection of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set intersection of two sequences by using the - specified to compare values. - - - - - Produces the set difference of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set difference of two sequences by using the - specified to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and key comparer. - - - - - Creates a from an - according to specified key - selector and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer, and an element selector function. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. A - specified is used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. A specified - is used to compare keys. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Represents a collection of objects that have a common key. - - - - - Gets the key of the . - - - - - This attribute allows us to define extension methods without - requiring .NET Framework 3.5. For more information, see the section, - Extension Methods in .NET Framework 2.0 Apps, - of Basic Instincts: Extension Methods - column in MSDN Magazine, - issue Nov 2007. - - - - - Defines an indexer, size property, and Boolean search method for - data structures that map keys to - sequences of values. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - This type is not intended to be used directly from user code. - It may be removed or changed in a future version without notice. - - - - - Represents a sorted sequence. - - - - - Performs a subsequent ordering on the elements of an - according to a key. - - - - - Represents a collection of keys each mapped to one or more values. - - - - - Determines whether a specified key is in the . - - - - - Applies a transform function to each key and its associated - values and returns the results. - - - - - Returns a generic enumerator that iterates through the . - - - - - Gets the number of key/value collection pairs in the . - - - - - Gets the collection of values indexed by the specified key. - - -
-
diff --git a/packages/Npgsql.2.2.5/lib/net20/de/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/de/Npgsql.resources.dll deleted file mode 100644 index 79bc52760..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/es/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/es/Npgsql.resources.dll deleted file mode 100644 index c9f0a9c51..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/fi/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/fi/Npgsql.resources.dll deleted file mode 100644 index e8e18b0c9..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/fr/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/fr/Npgsql.resources.dll deleted file mode 100644 index 8e00f589d..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/ja/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/ja/Npgsql.resources.dll deleted file mode 100644 index d2ead53b9..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net20/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net20/zh-CN/Npgsql.resources.dll deleted file mode 100644 index 787937016..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net20/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/Mono.Security.dll b/packages/Npgsql.2.2.5/lib/net35/Mono.Security.dll deleted file mode 100644 index 5173f0dc4..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/Npgsql.dll b/packages/Npgsql.2.2.5/lib/net35/Npgsql.dll deleted file mode 100644 index 06d1dbbc6..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/Npgsql.xml b/packages/Npgsql.2.2.5/lib/net35/Npgsql.xml deleted file mode 100644 index bf4390393..000000000 --- a/packages/Npgsql.2.2.5/lib/net35/Npgsql.xml +++ /dev/null @@ -1,6531 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - This class implements the Fastpath api. - - - - - This maps the functions names to their id's (possible unique just - to a connection). - - - - - Our connection. - - - - - The network stream. - - - - - Initialises the fastpath system. - - BaseConnection to attach to. - The network stream to the backend. - - - - Initialises the fastpath system. - - BaseConnection to attach to. - - - - Send a function call to the PostgreSQL backend. - - Function id. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - Send a function call to the PostgreSQL backend by name. - Note: the mapping for the procedure name to function id needs to exist, - usually to an earlier call to addfunction(). - This is the prefered method to call, as function id's can/may change - between versions of the backend. - For an example of how this works, refer to NpgsqlTypes.LargeObject - - Function name. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Integer result. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Array containing result - - - - This adds a function to our lookup table. - User code should use the addFunctions method, which is based upon a - query, rather than hard coding the oid. The oid for a function is not - guaranteed to remain static, even on different servers of the same - version. - - Function name. - Function id. - - - - This takes a ResultSet containing two columns. Column 1 contains the - function name, Column 2 the oid. - It reads the entire ResultSet, loading the values into the function - table. - REMEMBER to close() the resultset after calling this!! - Implementation note about function name lookups: - PostgreSQL stores the function id's and their corresponding names in - the pg_proc table. To speed things up locally, instead of querying each - function from that table when required, a Dictionary is used. Also, only - the function's required are entered into this table, keeping connection - times as fast as possible. - The org.postgresql.largeobject.LargeObject class performs a query upon it's startup, - and passes the returned ResultSet to the addFunctions() method here. - Once this has been done, the LargeObject api refers to the functions by - name. - Dont think that manually converting them to the oid's will work. Ok, - they will for now, but they can change during development (there was some - discussion about this for V7.0), so this is implemented to prevent any - unwarranted headaches in the future. - - ResultSet - - - - This returns the function id associated by its name - If addFunction() or addFunctions() have not been called for this name, - then an NpgsqlException is thrown. - - Function name to lookup. - Function ID for fastpath call. - - - - Fast Path Arg. - - - - - Type of argument, true=integer, false=byte[]. - - - - - Integer value if type=true. - - - - - Byte value if type=false; - - - - - Constructs an argument that consists of an integer value. - - Int value to set. - - - - Constructs an argument that consists of an array of bytes. - - Array to store. - - - - Constructs an argument that consists of part of a byte array. - - Source array. - offset within array. - length of data to include. - - - - Constructs an argument that consists of a String. - - String to store. - - - - This sends this argument down the network stream. - The stream sent consists of the length.int4 then the contents. - Note: This is called from Fastpath, and cannot be called from - client code. - - - - - - Report send size. - - Send size. - - - - Large Object. - - - - - Indicates a seek from the begining of a file. - - - - - Indicates a seek from the current position. - - - - - Indicates a seek from the end of a file. - - - - - This opens a large object. - If the object does not exist, then an NpgsqlException is thrown. - - FastPath API for the connection to use. - OID of the Large Object to open. - Mode of opening the large object - - - - OID getter. - - The OID of this LargeObject. - - - - This method closes the object. You must not call methods in this - object after this is called. - - - - - Reads some data from the object, and return as a byte[] array. - - Number of bytes to read. - Array containing data read. - - - - Reads some data from the object into an existing array. - - Destination array. - Offset within array. - Maximum number of bytes to read. - The number of bytes actually read. - - - - Writes an array to the object. - - Array to write. - - - - Writes some data from an array to the object. - - Destination array. - Offset within array. - Number of bytes to write. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object. - Either SEEK_SET, SEEK_CUR or SEEK_END. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object from begining. - - - - Report the current position within the object. - - The current position within the object. - - - - This method is inefficient, as the only way to find out the size of - the object is to seek to the end, record the current position, then - return to the original position. - A better method will be found in the future. - - The size of the large object. - - - - OID. - - - - - Large Object Manager. - - - - - This mode indicates we want to write to an object - - - - - This mode indicates we want to read an object - - - - - This mode is the default. It indicates we want read and write access to - - - - - Constructs the LargeObject API. - There should only be one LargeObjectManager per Connection. The - org.postgresql.Connection class keeps track of the various extension API's - and it's advised you use those to gain access, and not going direct. - - - - - - This opens an existing large object, based on its OID. This method - assumes that READ and WRITE access is required (the default). - - OID of large object. - LargeObject instance providing access to the object - - - - This opens an existing large object, based on its OID. - - OID of large object. - Mode of open. - - - - - This creates a large object, returning its OID. - - OID of new object. - - - - This creates a large object, returning its OID. - - Bitmask describing different attributes of the new object. - OID of new object. - - - - This deletes a large object. - - OID describing object to delete. - - - - This deletes a large object. - It is identical to the Delete() method, and is supplied as the C API uses unlink. - - OID describing object to delete. - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Summary description for NpgsqlQuery - - - - - For classes representing messages sent from the client to the server. - - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - For prepared commands, captures the connection's - at the time the command was prepared. This allows us to know whether the connection was - closed since the command was prepared. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Internal query shortcut for use in cases where the number - of affected rows is of no interest. - - - - - Special adaptation of ExecuteBlind() that sets statement_timeout. - This exists to prevent Connector.SetBackendCommandTimeout() from calling Command.ExecuteBlind(), - which will cause an endless recursive loop. - - - Timeout in seconds. - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - UTF8 encoded command ready to be sent to the backend. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - - - false if the query has multiple statements which are not allowed - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - DB connection. - - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - DB parameter collection. - - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - DB transaction. - - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - Returns whether this query will execute as a prepared (compiled) query. - - - - - Design time visible. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Clear connection pool. - - - - - Clear all connection pools. - - - - - Enlist transation. - - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - A counter that gets incremented every time the connection is (re-)opened. - This allows us to identify an "instance" of connection, which is useful since - some resources are released when a connection is closed (e.g. prepared statements). - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Compatibility version. - - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - PostgreSQL server version. - - - - - Protocol version in use. - This can only be called when there is an active connection. - Always retuna Version3 - - - - - Whether the backend is an AWS Redshift instance - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Use extended types. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - DB provider factory. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Whether the backend is an AWS Redshift instance - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Modify the backend statement_timeout value if needed. - - New timeout - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Whether the backend is an AWS Redshift instance - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Default delimiter. - - - - - Default separator. - - - - - Default null. - - - - - Default escape. - - - - - Default quote. - - - - - Default buffer size. - - - - - Constructor. - - - - - - Flush buffers. - - - - - Flush rows. - - - - - Flush fields. - - - - - Close the serializer. - - - - - Escape sequence for the given character. - - - - - - - Make room for bytes. - - - - - - Add bytes. - - - - - - End row. - - - - - Prefix field. - - - - - Field added. - - - - - Add null. - - - - - Add string. - - - - - - add Int32. - - - - - - Add Int64. - - - - - - Add number. - - - - - - Add bool - - - - - - Add DateTime. - - - - - - Report whether the serializer is active. - - - - - To Stream. - - - - - Delimiter. - - - - - Separator. - - - - - Escape. - - - - - Null. - - - - - Buffer size. - - - - - Report whether space remains in the buffer. - - - - - Strings to escape. - - - - - Escape sequence bytes. - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Default constructor. - - - - - Constructor. - - - - - - Constructor. - - - - - - - Constructor. - - - - - - - Create row updated event. - - - - - - - - - - Create row updating event. - - - - - - - - - - Raise the RowUpdated event. - - - - - - Raise the RowUpdating event. - - - - - - Row updated event. - - - - - Row updating event. - - - - - Delete command. - - - - - Select command. - - - - - Update command. - - - - - Insert command. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Has ordinal. - - - - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get specified field value. - /// - - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Send closed event. - - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Get enumerator. - - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Get object data. - - - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - The current command timeout on the backend. This is set via "SET statement_timeout = (milliseconds)". - A value of -1 means the backend's timeout value is unknown because it has not yet been set. - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Reset DBType. - - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Whether to use an explicit cast when included in a query. - - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Source column mapping. - - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - Add an Array of parameters to the collection. - - Parameters to add. - - - - Get parameter. - - - - - - - Get parameter. - - - - - - - Set parameter. - - - - - - - Set parameter. - - - - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Report the offset within the collection of the given parameter. - - Parameter to find. - Index of the parameter, or -1 if the parameter is not present. - - - - Insert the specified parameter into the collection. - - Index of the existing parameter before which to insert the new one. - Parameter to insert. - - - - Report whether the specified parameter is present in the collection. - - Parameter to find. - True if the parameter was found, otherwise false. - - - - Remove the specified parameter from the collection. - - Parameter to remove. - True if the parameter was found and removed, otherwise false. - - - - Convert collection to a System.Array. - - Destination array. - Starting index in destination array. - - - - Convert collection to a System.Array. - - NpgsqlParameter[] - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Report whether the collection is read only. Always false. - - - - - Report whether the collection is fixed size. Always false. - - - - - Report whether the collection is synchronized. - - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - Sync root. - - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - The index of the current field in the stream, i.e. the one that hasn't - been read yet - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Dispose. - - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - DB connection. - - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.2.5/lib/net35/de/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/de/Npgsql.resources.dll deleted file mode 100644 index 60f063d4e..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/es/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/es/Npgsql.resources.dll deleted file mode 100644 index e73277f61..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/fi/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/fi/Npgsql.resources.dll deleted file mode 100644 index 23d8ec6bb..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/fr/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/fr/Npgsql.resources.dll deleted file mode 100644 index 59f32a5a7..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/ja/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/ja/Npgsql.resources.dll deleted file mode 100644 index b087e7605..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net35/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net35/zh-CN/Npgsql.resources.dll deleted file mode 100644 index 22b3602e3..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net35/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/Mono.Security.dll b/packages/Npgsql.2.2.5/lib/net40/Mono.Security.dll deleted file mode 100644 index 62ae33940..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/Npgsql.dll b/packages/Npgsql.2.2.5/lib/net40/Npgsql.dll deleted file mode 100644 index 20ca6b223..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/Npgsql.xml b/packages/Npgsql.2.2.5/lib/net40/Npgsql.xml deleted file mode 100644 index bf4390393..000000000 --- a/packages/Npgsql.2.2.5/lib/net40/Npgsql.xml +++ /dev/null @@ -1,6531 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - This class implements the Fastpath api. - - - - - This maps the functions names to their id's (possible unique just - to a connection). - - - - - Our connection. - - - - - The network stream. - - - - - Initialises the fastpath system. - - BaseConnection to attach to. - The network stream to the backend. - - - - Initialises the fastpath system. - - BaseConnection to attach to. - - - - Send a function call to the PostgreSQL backend. - - Function id. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - Send a function call to the PostgreSQL backend by name. - Note: the mapping for the procedure name to function id needs to exist, - usually to an earlier call to addfunction(). - This is the prefered method to call, as function id's can/may change - between versions of the backend. - For an example of how this works, refer to NpgsqlTypes.LargeObject - - Function name. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Integer result. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Array containing result - - - - This adds a function to our lookup table. - User code should use the addFunctions method, which is based upon a - query, rather than hard coding the oid. The oid for a function is not - guaranteed to remain static, even on different servers of the same - version. - - Function name. - Function id. - - - - This takes a ResultSet containing two columns. Column 1 contains the - function name, Column 2 the oid. - It reads the entire ResultSet, loading the values into the function - table. - REMEMBER to close() the resultset after calling this!! - Implementation note about function name lookups: - PostgreSQL stores the function id's and their corresponding names in - the pg_proc table. To speed things up locally, instead of querying each - function from that table when required, a Dictionary is used. Also, only - the function's required are entered into this table, keeping connection - times as fast as possible. - The org.postgresql.largeobject.LargeObject class performs a query upon it's startup, - and passes the returned ResultSet to the addFunctions() method here. - Once this has been done, the LargeObject api refers to the functions by - name. - Dont think that manually converting them to the oid's will work. Ok, - they will for now, but they can change during development (there was some - discussion about this for V7.0), so this is implemented to prevent any - unwarranted headaches in the future. - - ResultSet - - - - This returns the function id associated by its name - If addFunction() or addFunctions() have not been called for this name, - then an NpgsqlException is thrown. - - Function name to lookup. - Function ID for fastpath call. - - - - Fast Path Arg. - - - - - Type of argument, true=integer, false=byte[]. - - - - - Integer value if type=true. - - - - - Byte value if type=false; - - - - - Constructs an argument that consists of an integer value. - - Int value to set. - - - - Constructs an argument that consists of an array of bytes. - - Array to store. - - - - Constructs an argument that consists of part of a byte array. - - Source array. - offset within array. - length of data to include. - - - - Constructs an argument that consists of a String. - - String to store. - - - - This sends this argument down the network stream. - The stream sent consists of the length.int4 then the contents. - Note: This is called from Fastpath, and cannot be called from - client code. - - - - - - Report send size. - - Send size. - - - - Large Object. - - - - - Indicates a seek from the begining of a file. - - - - - Indicates a seek from the current position. - - - - - Indicates a seek from the end of a file. - - - - - This opens a large object. - If the object does not exist, then an NpgsqlException is thrown. - - FastPath API for the connection to use. - OID of the Large Object to open. - Mode of opening the large object - - - - OID getter. - - The OID of this LargeObject. - - - - This method closes the object. You must not call methods in this - object after this is called. - - - - - Reads some data from the object, and return as a byte[] array. - - Number of bytes to read. - Array containing data read. - - - - Reads some data from the object into an existing array. - - Destination array. - Offset within array. - Maximum number of bytes to read. - The number of bytes actually read. - - - - Writes an array to the object. - - Array to write. - - - - Writes some data from an array to the object. - - Destination array. - Offset within array. - Number of bytes to write. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object. - Either SEEK_SET, SEEK_CUR or SEEK_END. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object from begining. - - - - Report the current position within the object. - - The current position within the object. - - - - This method is inefficient, as the only way to find out the size of - the object is to seek to the end, record the current position, then - return to the original position. - A better method will be found in the future. - - The size of the large object. - - - - OID. - - - - - Large Object Manager. - - - - - This mode indicates we want to write to an object - - - - - This mode indicates we want to read an object - - - - - This mode is the default. It indicates we want read and write access to - - - - - Constructs the LargeObject API. - There should only be one LargeObjectManager per Connection. The - org.postgresql.Connection class keeps track of the various extension API's - and it's advised you use those to gain access, and not going direct. - - - - - - This opens an existing large object, based on its OID. This method - assumes that READ and WRITE access is required (the default). - - OID of large object. - LargeObject instance providing access to the object - - - - This opens an existing large object, based on its OID. - - OID of large object. - Mode of open. - - - - - This creates a large object, returning its OID. - - OID of new object. - - - - This creates a large object, returning its OID. - - Bitmask describing different attributes of the new object. - OID of new object. - - - - This deletes a large object. - - OID describing object to delete. - - - - This deletes a large object. - It is identical to the Delete() method, and is supplied as the C API uses unlink. - - OID describing object to delete. - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Summary description for NpgsqlQuery - - - - - For classes representing messages sent from the client to the server. - - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - For prepared commands, captures the connection's - at the time the command was prepared. This allows us to know whether the connection was - closed since the command was prepared. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Internal query shortcut for use in cases where the number - of affected rows is of no interest. - - - - - Special adaptation of ExecuteBlind() that sets statement_timeout. - This exists to prevent Connector.SetBackendCommandTimeout() from calling Command.ExecuteBlind(), - which will cause an endless recursive loop. - - - Timeout in seconds. - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - UTF8 encoded command ready to be sent to the backend. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - - - false if the query has multiple statements which are not allowed - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - DB connection. - - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - DB parameter collection. - - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - DB transaction. - - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - Returns whether this query will execute as a prepared (compiled) query. - - - - - Design time visible. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Clear connection pool. - - - - - Clear all connection pools. - - - - - Enlist transation. - - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - A counter that gets incremented every time the connection is (re-)opened. - This allows us to identify an "instance" of connection, which is useful since - some resources are released when a connection is closed (e.g. prepared statements). - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Compatibility version. - - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - PostgreSQL server version. - - - - - Protocol version in use. - This can only be called when there is an active connection. - Always retuna Version3 - - - - - Whether the backend is an AWS Redshift instance - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Use extended types. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - DB provider factory. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Whether the backend is an AWS Redshift instance - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Modify the backend statement_timeout value if needed. - - New timeout - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Whether the backend is an AWS Redshift instance - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Default delimiter. - - - - - Default separator. - - - - - Default null. - - - - - Default escape. - - - - - Default quote. - - - - - Default buffer size. - - - - - Constructor. - - - - - - Flush buffers. - - - - - Flush rows. - - - - - Flush fields. - - - - - Close the serializer. - - - - - Escape sequence for the given character. - - - - - - - Make room for bytes. - - - - - - Add bytes. - - - - - - End row. - - - - - Prefix field. - - - - - Field added. - - - - - Add null. - - - - - Add string. - - - - - - add Int32. - - - - - - Add Int64. - - - - - - Add number. - - - - - - Add bool - - - - - - Add DateTime. - - - - - - Report whether the serializer is active. - - - - - To Stream. - - - - - Delimiter. - - - - - Separator. - - - - - Escape. - - - - - Null. - - - - - Buffer size. - - - - - Report whether space remains in the buffer. - - - - - Strings to escape. - - - - - Escape sequence bytes. - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Default constructor. - - - - - Constructor. - - - - - - Constructor. - - - - - - - Constructor. - - - - - - - Create row updated event. - - - - - - - - - - Create row updating event. - - - - - - - - - - Raise the RowUpdated event. - - - - - - Raise the RowUpdating event. - - - - - - Row updated event. - - - - - Row updating event. - - - - - Delete command. - - - - - Select command. - - - - - Update command. - - - - - Insert command. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Has ordinal. - - - - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get specified field value. - /// - - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Send closed event. - - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Get enumerator. - - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Get object data. - - - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - The current command timeout on the backend. This is set via "SET statement_timeout = (milliseconds)". - A value of -1 means the backend's timeout value is unknown because it has not yet been set. - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Reset DBType. - - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Whether to use an explicit cast when included in a query. - - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Source column mapping. - - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - Add an Array of parameters to the collection. - - Parameters to add. - - - - Get parameter. - - - - - - - Get parameter. - - - - - - - Set parameter. - - - - - - - Set parameter. - - - - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Report the offset within the collection of the given parameter. - - Parameter to find. - Index of the parameter, or -1 if the parameter is not present. - - - - Insert the specified parameter into the collection. - - Index of the existing parameter before which to insert the new one. - Parameter to insert. - - - - Report whether the specified parameter is present in the collection. - - Parameter to find. - True if the parameter was found, otherwise false. - - - - Remove the specified parameter from the collection. - - Parameter to remove. - True if the parameter was found and removed, otherwise false. - - - - Convert collection to a System.Array. - - Destination array. - Starting index in destination array. - - - - Convert collection to a System.Array. - - NpgsqlParameter[] - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Report whether the collection is read only. Always false. - - - - - Report whether the collection is fixed size. Always false. - - - - - Report whether the collection is synchronized. - - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - Sync root. - - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - The index of the current field in the stream, i.e. the one that hasn't - been read yet - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Dispose. - - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - DB connection. - - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.2.5/lib/net40/de/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/de/Npgsql.resources.dll deleted file mode 100644 index 207b7f10b..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/es/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/es/Npgsql.resources.dll deleted file mode 100644 index 03c69aed6..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/fi/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/fi/Npgsql.resources.dll deleted file mode 100644 index 1d12d95f7..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/fr/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/fr/Npgsql.resources.dll deleted file mode 100644 index 8c19e329b..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/ja/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/ja/Npgsql.resources.dll deleted file mode 100644 index 80a9fc06b..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net40/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net40/zh-CN/Npgsql.resources.dll deleted file mode 100644 index 3463b500d..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net40/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/Mono.Security.dll b/packages/Npgsql.2.2.5/lib/net45/Mono.Security.dll deleted file mode 100644 index 62ae33940..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/Mono.Security.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/Npgsql.dll b/packages/Npgsql.2.2.5/lib/net45/Npgsql.dll deleted file mode 100644 index 8c44ff68d..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/Npgsql.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/Npgsql.xml b/packages/Npgsql.2.2.5/lib/net45/Npgsql.xml deleted file mode 100644 index bf4390393..000000000 --- a/packages/Npgsql.2.2.5/lib/net45/Npgsql.xml +++ /dev/null @@ -1,6531 +0,0 @@ - - - - Npgsql - - - - - Handles serialisation of .NET array or IEnumeration to pg format. - Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. - are treated as multi-dimensional arrays (in much the same manner as an array of arrays - is used to emulate multi-dimensional arrays in languages that lack native support for them). - If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, - hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg - will raise an error as it doesn't allow jagged arrays. - - - - - Create an ArrayNativeToBackendTypeConverter with the element converter passed - - The that would be used to serialise the element type. - - - - Serialise the enumeration or array. - - - - - Convert a System.Array to PG binary format. - Write the array header and prepare to write array data to the stream. - - - - - Append all array data to the binary stream. - - - - - Handles parsing of pg arrays into .NET arrays. - - - - - Takes a string representation of a pg 1-dimensional array - (or a 1-dimensional row within an n-dimensional array) - and allows enumeration of the string represenations of each items. - - - - - Takes a string representation of a pg n-dimensional array - and allows enumeration of the string represenations of the next - lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. - - - - - Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists - and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList - passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, - pushing them onto a stack until we hit something that isn't an ArrayList. - ArrayList to enumerate - IEnumerable - - - - - Create a new ArrayBackendToNativeTypeConverter - - for the element type. - - - - Creates an array from pg text representation. - - - - - Creates an array list from pg represenation of an array. - Multidimensional arrays are treated as ArrayLists of ArrayLists - - - - - Creates an n-dimensional array from an ArrayList of ArrayLists or - a 1-dimensional array from something else. - - to convert - Type of the elements in the list - produced. - - - - Creates an n-dimensional System.Array from PG binary representation. - This function reads the array header and sets up an n-dimensional System.Array object to hold its data. - PopulateArrayFromBinaryArray() is then called to carry out array population. - - - - - Recursively populates an array from PB binary data representation. - - - - - Takes an array of ints and treats them like the limits of a set of counters. - Retains a matching set of ints that is set to all zeros on the first ++ - On a ++ it increments the "right-most" int. If that int reaches it's - limit it is set to zero and the one before it is incremented, and so on. - - Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. - - - - - Implements a bit string; a collection of zero or more bits which can each be 1 or 0. - BitString's behave as a list of bools, though like most strings and unlike most collections the position - tends to be of as much significance as the value. - BitStrings are often used as masks, and are commonly cast to and from other values. - - - - - Represents the empty string. - - - - - Create a BitString from an enumeration of boolean values. The BitString will contain - those booleans in the order they came in. - - The boolean values. - - - - Creates a BitString filled with a given number of true or false values. - - The value to fill the string with. - The number of bits to fill. - - - - Creats a bitstring from a string. - The string to copy from. - - - - - - Creates a single-bit element from a boolean value. - - The bool value which determines whether - the bit is 1 or 0. - - - - Creates a bitstring from an unsigned integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - This method is not CLS Compliant, and may not be available to some languages. - - - - Creates a bitstring from an integer value. The string will be the shortest required to - contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). - - The integer. - - - - Finds the first instance of a given value - - The value - whether true or false - to search for. - The index of the value found, or -1 if none are present. - - - - True if there is at least one bit with the value looked for. - - The value - true or false - to detect. - True if at least one bit was the same as item, false otherwise. - - - - Copies the bitstring to an array of bools. - - The boolean array to copy to. - The index in the array to start copying from. - - - - Returns an enumerator that enumerates through the string. - - The enumerator. - - - - Creats a bitstring by concatenating another onto this one. - - The string to append to this one. - The combined strings. - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string. - The length of the string to return, must be greater than zero, and may not be - so large that the start + length exceeds the bounds of this instance. - The Bitstring identified - - - - Returns a substring of this string. - - The position to start from, must be between 0 and the length of the string, - the rest of the string is returned. - The Bitstring identified - - - - A logical and between this string and another. The two strings must be the same length. - - Another BitString to AND with this one. - A bitstring with 1 where both BitStrings had 1 and 0 otherwise. - - - - A logical or between this string and another. The two strings must be the same length. - - Another BitString to OR with this one. - A bitstring with 1 where either BitString had 1 and 0 otherwise. - - - - A logical xor between this string and another. The two strings must be the same length. - - Another BitString to XOR with this one. - A bitstring with 1 where one BitStrings and the other had 0, - and 0 where they both had 1 or both had 0. - - - - A bitstring that is the logical inverse of this one. - - A bitstring of the same length as this with 1 where this has 0 and vice-versa. - - - - Shifts the string operand bits to the left, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the left. - A left-shifted bitstring. - The behaviour of LShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a right-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. - - - - - Shifts the string operand bits to the right, filling with zeros to produce a - string of the same length. - - The number of bits to shift to the right. - A right-shifted bitstring. - The behaviour of RShift is closer to what one would expect from dealing - with PostgreSQL bit-strings than in using the same operations on integers in .NET - In particular, negative operands result in a left-shift, and operands greater than - the length of the string will shift it entirely, resulting in a zero-filled string. It also performs - a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero - (like PostgreSQL and like .NET for unsigned integers but not for signed integers). - - - - - Returns true if the this string is identical to the argument passed. - - - - - Compares two strings. Strings are compared as strings, so while 0 being less than 1 will - mean a comparison between two strings of the same size is the same as treating them as numbers, - in the case of two strings of differing lengths the comparison starts at the right-most (most significant) - bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger - string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). - - Another string to compare with this one. - A value if the two strings are identical, an integer less - than zero if this is less than the argument, and an integer greater - than zero otherwise. - - - - Compares the string with another object. - - The object to compare with. - If the object is null then this string is considered greater. If the object is another BitString - then they are compared as in the explicit comparison for BitStrings - in any other case a is thrown. - - - - Compares this BitString with an object for equality. - - - - - Returns a code for use in hashing operations. - - - - - Returns a string representation of the BitString. - - - A string which can contain a letter and optionally a number which sets a minimum size for the string - returned. In each case using the lower-case form of the letter will result in a lower-case string - being returned. - - - B - A string of 1s and 0s. - - - X - An hexadecimal string (will result in an error unless the string's length is divisible by 4). - - - G - A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). - - Y - An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. - - C - The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". - E - The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it - can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that - produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string - representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed - by the final bits in the format "G". E.g. "X'13DCE'||B'110'" - If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that - generally used by PostgreSQL for display). - - The formatted string. - - - - Returns a string representation for the Bitstring - - A string containing '0' and '1' characters. - - - - Returns the same string as . formatProvider is ignored. - - - - - Parses a string to produce a BitString. Most formats that can be produced by - can be accepted, but hexadecimal - can be interpreted with the preceding X' to mark the following characters as - being hexadecimal rather than binary. - - - - - Performs a logical AND on the two operands. - - - - - Performs a logcial OR on the two operands. - - - - - Perofrms a logical EXCLUSIVE-OR on the two operands - - - - - Performs a logical NOT on the operand. - - - - - Concatenates the operands. - - - - - Left-shifts the string BitString. - - - - - Right-shifts the string BitString. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Compares the two operands. - - - - - Interprets the bitstring as a series of bits in an encoded character string, - encoded according to the Encoding passed, and returns that string. - The bitstring must contain a whole number of octets(bytes) and also be - valid according to the Encoding passed. - - The to use in producing the string. - The string that was encoded in the BitString. - - - - Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - - - - - Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails - if the Bitstring does not contain a whole number of octets (its length is not evenly - divisible by 8). - This method is not CLS-Compliant and may not be available to languages that cannot - handle signed bytes. - - - - - Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of 16-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 16. - - - - - Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 32-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 32. - - - - - Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - This method is not CLS-Compliant and may not be available to languages that cannot - handle unsigned integers. - - - - - Interprets the bitstring as a series of signed 64-bit integers and returns those integers. - Fails if the Bitstring's length is not evenly divisible by 64. - - - - - The length of the string. - - - - - Retrieves the value of the bit at the given index. - - - - - Represents the PostgreSQL interval datatype. - PostgreSQL differs from .NET in how it's interval type doesn't assume 24 hours in a day - (to deal with 23- and 25-hour days caused by daylight savings adjustments) and has a concept - of months that doesn't exist in .NET's class. (Neither datatype - has any concessions for leap-seconds). - For most uses just casting to and from TimeSpan will work correctly — in particular, - the results of subtracting one or the PostgreSQL date, time and - timestamp types from another should be the same whether you do so in .NET or PostgreSQL — - but if the handling of days and months in PostgreSQL is important to your application then you - should use this class instead of . - If you don't know whether these differences are important to your application, they - probably arent! Just use and do not use this class directly ☺ - To avoid forcing unnecessary provider-specific concerns on users who need not be concerned - with them a call to on a field containing an - value will return a rather than an - . If you need the extra functionality of - then use . - - - - - - - - - - Represents the number of ticks (100ns periods) in one microsecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one millisecond. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one second. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one minute. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one hour. This field is constant. - - - - - Represents the number of ticks (100ns periods) in one day. This field is constant. - - - - - Represents the number of hours in one day (assuming no daylight savings adjustments). This field is constant. - - - - - Represents the number of days assumed in one month if month justification or unjustifcation is performed. - This is set to 30 for consistency with PostgreSQL. Note that this is means that month adjustments cause - a year to be taken as 30 × 12 = 360 rather than 356/366 days. - - - - - Represents the number of ticks (100ns periods) in one day, assuming 30 days per month. - - - - - Represents the number of months in a year. This field is constant. - - - - - Represents the maximum . This field is read-only. - - - - - Represents the minimum . This field is read-only. - - - - - Represents the zero . This field is read-only. - - - - - Initializes a new to the specified number of ticks. - - A time period expressed in 100ns units. - - - - Initializes a new to hold the same time as a - - A time period expressed in a - - - - Initializes a new to the specified number of months, days - & ticks. - - Number of months. - Number of days. - Number of 100ns units. - - - - Initializes a new to the specified number of - days, hours, minutes & seconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - - - - Initializes a new to the specified number of - days, hours, minutes, seconds & milliseconds. - - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - months, days, hours, minutes, seconds & milliseconds. - - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Initializes a new to the specified number of - years, months, days, hours, minutes, seconds & milliseconds. - Years are calculated exactly equivalent to 12 months. - - Number of years. - Number of months. - Number of days. - Number of hours. - Number of minutes. - Number of seconds. - Number of milliseconds. - - - - Creates an from a number of ticks. - - The number of ticks (100ns units) in the interval. - A d with the given number of ticks. - - - - Creates an from a number of microseconds. - - The number of microseconds in the interval. - A d with the given number of microseconds. - - - - Creates an from a number of milliseconds. - - The number of milliseconds in the interval. - A d with the given number of milliseconds. - - - - Creates an from a number of seconds. - - The number of seconds in the interval. - A d with the given number of seconds. - - - - Creates an from a number of minutes. - - The number of minutes in the interval. - A d with the given number of minutes. - - - - Creates an from a number of hours. - - The number of hours in the interval. - A d with the given number of hours. - - - - Creates an from a number of days. - - The number of days in the interval. - A d with the given number of days. - - - - Creates an from a number of months. - - The number of months in the interval. - A d with the given number of months. - - - - Adds another interval to this instance and returns the result. - - An to add to this instance. - An whose values are the sums of the two instances. - - - - Subtracts another interval from this instance and returns the result. - - An to subtract from this instance. - An whose values are the differences of the two instances. - - - - Returns an whose value is the negated value of this instance. - - An whose value is the negated value of this instance. - - - - This absolute value of this instance. In the case of some, but not all, components being negative, - the rules used for justification are used to determine if the instance is positive or negative. - - An whose value is the absolute value of this instance. - - - - Equivalent to PostgreSQL's justify_days function. - - An based on this one, but with any hours outside of the range [-23, 23] - converted into days. - - - - Opposite to PostgreSQL's justify_days function. - - An based on this one, but with any days converted to multiples of ±24hours. - - - - Equivalent to PostgreSQL's justify_months function. - - An based on this one, but with any days outside of the range [-30, 30] - converted into months. - - - - Opposite to PostgreSQL's justify_months function. - - An based on this one, but with any months converted to multiples of ±30days. - - - - Equivalent to PostgreSQL's justify_interval function. - - An based on this one, - but with any months converted to multiples of ±30days - and then with any days converted to multiples of ±24hours - - - - Opposite to PostgreSQL's justify_interval function. - - An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; - - - - Produces a canonical NpgslInterval with 0 months and hours in the range of [-23, 23]. - - - While the fact that for many purposes, two different instances could be considered - equivalent (e.g. one with 2days, 3hours and one with 1day 27hours) there are different possible canonical forms. - - E.g. we could move all excess hours into days and all excess days into months and have the most readable form, - or we could move everything into the ticks and have the form that allows for the easiest arithmetic) the form - chosen has two important properties that make it the best choice. - First, it is closest two how - objects are most often represented. Second, it is compatible with results of many - PostgreSQL functions, particularly with age() and the results of subtracting one date, time or timestamp from - another. - - Note that the results of casting a to is - canonicalised. - - - An based on this one, but with months converted to multiples of ±30days and with any hours outside of the range [-23, 23] - converted into days. - - - - Implicit cast of a to an - - A - An eqivalent, canonical, . - - - - Implicit cast of an to a . - - A . - An equivalent . - - - - Returns true if another is exactly the same as this instance. - - An for comparison. - true if the two instances are exactly the same, - false otherwise. - - - - Returns true if another object is an , that is exactly the same as - this instance - - An for comparison. - true if the argument is an and is exactly the same - as this one, false otherwise. - - - - Compares two instances. - - The first . - The second . - 0 if the two are equal or equivalent. A value greater than zero if x is greater than y, - a value less than zero if x is less than y. - - - - A hash code suitable for uses with hashing algorithms. - - An signed integer. - - - - Compares this instance with another/ - - An to compare this with. - 0 if the instances are equal or equivalent. A value less than zero if - this instance is less than the argument. A value greater than zero if this instance - is greater than the instance. - - - - Compares this instance with another/ - - An object to compare this with. - 0 if the argument is an and the instances are equal or equivalent. - A value less than zero if the argument is an and - this instance is less than the argument. - A value greater than zero if the argument is an and this instance - is greater than the instance. - A value greater than zero if the argument is null. - The argument is not an . - - - - Parses a and returns a instance. - Designed to use the formats generally returned by PostgreSQL. - - The to parse. - An represented by the argument. - The string was null. - A value obtained from parsing the string exceeded the values allowed for the relevant component. - The string was not in a format that could be parsed to produce an . - - - - Attempt to parse a to produce an . - - The to parse. - (out) The produced, or if the parsing failed. - true if the parsing succeeded, false otherwise. - - - - Create a representation of the instance. - The format returned is of the form: - [M mon[s]] [d day[s]] [HH:mm:ss[.f[f[f[f[f[f[f[f[f]]]]]]]]]] - A zero is represented as 00:00:00 - - Ticks are 100ns, Postgress resolution is only to 1µs at most. Hence we lose 1 or more decimal - precision in storing values in the database. Despite this, this method will output that extra - digit of precision. It's forward-compatible with any future increases in resolution up to 100ns, - and also makes this ToString() more applicable to any other use-case. - - - The representation. - - - - Adds two together. - - The first to add. - The second to add. - An whose values are the sum of the arguments. - - - - Subtracts one from another. - - The to subtract the other from. - The to subtract from the other. - An whose values are the difference of the arguments - - - - Returns true if two are exactly the same. - - The first to compare. - The second to compare. - true if the two arguments are exactly the same, false otherwise. - - - - Returns false if two are exactly the same. - - The first to compare. - The second to compare. - false if the two arguments are exactly the same, true otherwise. - - - - Compares two instances to see if the first is less than the second - - The first to compare. - The second to compare. - true if the first is less than second, false otherwise. - - - - Compares two instances to see if the first is less than or equivalent to the second - - The first to compare. - The second to compare. - true if the first is less than or equivalent to second, false otherwise. - - - - Compares two instances to see if the first is greater than the second - - The first to compare. - The second to compare. - true if the first is greater than second, false otherwise. - - - - Compares two instances to see if the first is greater than or equivalent the second - - The first to compare. - The second to compare. - true if the first is greater than or equivalent to the second, false otherwise. - - - - Returns the instance. - - An . - The argument. - - - - Negates an instance. - - An . - The negation of the argument. - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. This ignores the number of days and - months held. If you want them included use first. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - interval(0) - resolution of 1s (1 second) - - - interval(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - interval(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - interval(3) - resolution of 1ms = 0.001s (1 millisecond) - - - interval(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - interval(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - interval(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL interval will - not suffice for those purposes. - In more frequent cases though, the resolution of the interval suffices. - will always suffice to handle the resolution of any interval value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An in the range [-999999, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An in the range [-999, 999]. - - - - - Gets the number of whole seconds held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole minutes held in the instance. - An in the range [-59, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that this can be less than -23 or greater than 23 unless - has been used to produce this instance. - - - - - Gets the number of days held in the instance. - Note that this does not pay attention to a time component with -24 or less hours or - 24 or more hours, unless has been called to produce this instance. - - - - - Gets the number of months held in the instance. - Note that this does not pay attention to a day component with -30 or less days or - 30 or more days, unless has been called to produce this instance. - - - - - Returns a representing the time component of the instance. - Note that this may have a value beyond the range ±23:59:59.9999999 unless - has been called to produce this instance. - - - - - The total number of ticks (100ns units) in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of microseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of milliseconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of seconds in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of minutes in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of hours in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of days in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - The total number of months in the instance, assuming 24 hours in each day and - 30 days in a month. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - The total number of ticks(100ns units) contained. This is the resolution of the - type. - The resolution of the PostgreSQL - interval type is by default 1µs = 1,000 ns. It may be smaller as follows: - - - time(0) - resolution of 1s (1 second) - - - time(1) - resolution of 100ms = 0.1s (100 milliseconds) - - - time(2) - resolution of 10ms = 0.01s (10 milliseconds) - - - time(3) - resolution of 1ms = 0.001s (1 millisecond) - - - time(4) - resolution of 100µs = 0.0001s (100 microseconds) - - - time(5) - resolution of 10µs = 0.00001s (10 microseconds) - - - time(6) or interval - resolution of 1µs = 0.000001s (1 microsecond) - - - As such, if the 100-nanosecond resolution is significant to an application, a PostgreSQL time will - not suffice for those purposes. - In more frequent cases though, the resolution of time suffices. - will always suffice to handle the resolution of any time value, and upon - writing to the database, will be rounded to the resolution used. - - The number of ticks in the instance. - - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - Normalise this time; if it is 24:00:00, convert it to 00:00:00 - - This time, normalised - - - - Compares this with another . As per postgres' rules, - first the times are compared as if they were both in the same timezone. If they are equal then - then timezones are compared (+01:00 being "smaller" than -01:00). - - the to compare with. - An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. - - - - Gets the number of whole microseconds held in the instance. - An integer in the range [0, 999999]. - - - - - Gets the number of whole milliseconds held in the instance. - An integer in the range [0, 999]. - - - - - Gets the number of whole seconds held in the instance. - An interger in the range [0, 59]. - - - - - Gets the number of whole minutes held in the instance. - An integer in the range [0, 59]. - - - - - Gets the number of whole hours held in the instance. - Note that the time 24:00:00 can be stored for roundtrip compatibility. Any calculations on such a - value will normalised it to 00:00:00. - - - - - This class implements the Fastpath api. - - - - - This maps the functions names to their id's (possible unique just - to a connection). - - - - - Our connection. - - - - - The network stream. - - - - - Initialises the fastpath system. - - BaseConnection to attach to. - The network stream to the backend. - - - - Initialises the fastpath system. - - BaseConnection to attach to. - - - - Send a function call to the PostgreSQL backend. - - Function id. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - Send a function call to the PostgreSQL backend by name. - Note: the mapping for the procedure name to function id needs to exist, - usually to an earlier call to addfunction(). - This is the prefered method to call, as function id's can/may change - between versions of the backend. - For an example of how this works, refer to NpgsqlTypes.LargeObject - - Function name. - True if the result is an integer, false for other results. - FastpathArguments to pass to fastpath. - null if no data, Integer if an integer result, or byte[] otherwise. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Integer result. - - - - This convenience method assumes that the return value is an Integer. - - Function name. - Function arguments. - Array containing result - - - - This adds a function to our lookup table. - User code should use the addFunctions method, which is based upon a - query, rather than hard coding the oid. The oid for a function is not - guaranteed to remain static, even on different servers of the same - version. - - Function name. - Function id. - - - - This takes a ResultSet containing two columns. Column 1 contains the - function name, Column 2 the oid. - It reads the entire ResultSet, loading the values into the function - table. - REMEMBER to close() the resultset after calling this!! - Implementation note about function name lookups: - PostgreSQL stores the function id's and their corresponding names in - the pg_proc table. To speed things up locally, instead of querying each - function from that table when required, a Dictionary is used. Also, only - the function's required are entered into this table, keeping connection - times as fast as possible. - The org.postgresql.largeobject.LargeObject class performs a query upon it's startup, - and passes the returned ResultSet to the addFunctions() method here. - Once this has been done, the LargeObject api refers to the functions by - name. - Dont think that manually converting them to the oid's will work. Ok, - they will for now, but they can change during development (there was some - discussion about this for V7.0), so this is implemented to prevent any - unwarranted headaches in the future. - - ResultSet - - - - This returns the function id associated by its name - If addFunction() or addFunctions() have not been called for this name, - then an NpgsqlException is thrown. - - Function name to lookup. - Function ID for fastpath call. - - - - Fast Path Arg. - - - - - Type of argument, true=integer, false=byte[]. - - - - - Integer value if type=true. - - - - - Byte value if type=false; - - - - - Constructs an argument that consists of an integer value. - - Int value to set. - - - - Constructs an argument that consists of an array of bytes. - - Array to store. - - - - Constructs an argument that consists of part of a byte array. - - Source array. - offset within array. - length of data to include. - - - - Constructs an argument that consists of a String. - - String to store. - - - - This sends this argument down the network stream. - The stream sent consists of the length.int4 then the contents. - Note: This is called from Fastpath, and cannot be called from - client code. - - - - - - Report send size. - - Send size. - - - - Large Object. - - - - - Indicates a seek from the begining of a file. - - - - - Indicates a seek from the current position. - - - - - Indicates a seek from the end of a file. - - - - - This opens a large object. - If the object does not exist, then an NpgsqlException is thrown. - - FastPath API for the connection to use. - OID of the Large Object to open. - Mode of opening the large object - - - - OID getter. - - The OID of this LargeObject. - - - - This method closes the object. You must not call methods in this - object after this is called. - - - - - Reads some data from the object, and return as a byte[] array. - - Number of bytes to read. - Array containing data read. - - - - Reads some data from the object into an existing array. - - Destination array. - Offset within array. - Maximum number of bytes to read. - The number of bytes actually read. - - - - Writes an array to the object. - - Array to write. - - - - Writes some data from an array to the object. - - Destination array. - Offset within array. - Number of bytes to write. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object. - Either SEEK_SET, SEEK_CUR or SEEK_END. - - - - Sets the current position within the object. - This is similar to the fseek() call in the standard C library. It - allows you to have random access to the large object. - - Position within object from begining. - - - - Report the current position within the object. - - The current position within the object. - - - - This method is inefficient, as the only way to find out the size of - the object is to seek to the end, record the current position, then - return to the original position. - A better method will be found in the future. - - The size of the large object. - - - - OID. - - - - - Large Object Manager. - - - - - This mode indicates we want to write to an object - - - - - This mode indicates we want to read an object - - - - - This mode is the default. It indicates we want read and write access to - - - - - Constructs the LargeObject API. - There should only be one LargeObjectManager per Connection. The - org.postgresql.Connection class keeps track of the various extension API's - and it's advised you use those to gain access, and not going direct. - - - - - - This opens an existing large object, based on its OID. This method - assumes that READ and WRITE access is required (the default). - - OID of large object. - LargeObject instance providing access to the object - - - - This opens an existing large object, based on its OID. - - OID of large object. - Mode of open. - - - - - This creates a large object, returning its OID. - - OID of new object. - - - - This creates a large object, returning its OID. - - Bitmask describing different attributes of the new object. - OID of new object. - - - - This deletes a large object. - - OID describing object to delete. - - - - This deletes a large object. - It is identical to the Delete() method, and is supplied as the C API uses unlink. - - OID describing object to delete. - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - Clone the current object. - - A new NativeToBackendTypeConverterOptions object. - - - - Clone the current object with a different OID/Name mapping. - - OID/Name mapping object to use in the new instance. - A new NativeToBackendTypeConverterOptions object. - - - - Provide event handlers to convert all native supported basic data types from their backend - text representation to a .NET object. - - - - - Convert UTF8 encoded text a string. - - - - - Byte array from bytea encoded as ASCII text, escaped or hex format. - - - - - Byte array from bytea encoded as binary. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql boolean to a System.Boolean. - - - - - Convert a postgresql bit to a System.Boolean. - - - - - Convert a postgresql datetime to a System.DateTime. - - - - - Convert a postgresql date to a System.DateTime. - - - - - Convert a postgresql time to a System.DateTime. - - - - - Convert a postgresql money to a System.Decimal. - - - - - Convert a postgresql float4 or float8 to a System.Float or System.Double respectively. - - - - - Provide event handlers to convert extended native supported data types from their backend - text representation to a .NET object. - - - - - Convert a postgresql point to a System.NpgsqlPoint. - - - - - Convert a postgresql point to a System.RectangleF. - - - - - LDeg. - - - - - Path. - - - - - Polygon. - - - - - Circle. - - - - - Inet. - - - - - MAC Address. - - - - - interval - - - - - Provide event handlers to convert the basic native supported data types from - native form to backend representation. - - - - - Convert a string to UTF8 encoded text, escaped and quoted as required. - - - - - Convert a string to UTF8 encoded text. - - - - - Binary data, escaped and quoted as required. - - - - - Binary data with possible older style octal escapes, quoted. - - - - - Binary data in the new hex format (>= 9.0), quoted. - - - - - Binary data, raw. - - - - - Convert to a postgresql boolean text format. - - - - - Convert to a postgresql boolean binary format. - - - - - Convert to a postgresql binary int2. - - - - - Convert to a postgresql binary int4. - - - - - Convert to a postgresql binary int8. - - - - - Convert to a postgresql bit. - - - - - Convert to a postgresql timestamp. - - - - - Convert to a postgresql date. - - - - - Convert to a postgresql time. - - - - - Convert to a postgres money. - - - - - Convert to a postgres double with maximum precision. - - - - - Convert a System.Float to a postgres float4. - - - - - Convert a System.Double to a postgres float8. - - - - - Provide event handlers to convert extended native supported data types from - native form to backend representation. - - - - - Point. - - - - - Box. - - - - - LSeg. - - - - - Open path. - - - - - Polygon. - - - - - Convert to a postgres MAC Address. - - - - - Circle. - - - - - Convert to a postgres inet. - - - - - Convert to a postgres interval - - - - - Delegate called to convert the given backend text data to its native representation. - - - - - Delegate called to convert the given backend binary data to its native representation. - - - - - Represents a backend data type. - This class can be called upon to convert a backend field representation to a native object. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - fieldValueSize - Type modifier field sent from the backend. - - - - Perform a data conversion from a backend representation to - a native object. - - Data sent from the backend. - TypeSize - Type modifier field sent from the backend. - - - - Type OID provided by the backend server. - - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - NpgsqlDbType. - - - - - Provider type to convert fields of this type to. - - - - - System type to convert fields of this type to. - - - - - Reports whether a backend binary to native decoder is available for this type. - - - - - Delegate called to convert the given native data to its backand representation. - - - - - Represents a backend data type. - This class can be called upon to convert a native object to its backend field representation, - - - - - Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type - described by the NpgsqlNativeTypeInfo supplied. - - - - - Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. - - Type name provided by the backend server. - DbType - Quote - NpgsqlDbType - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended queries). - - - - Perform a data conversion from a native object to - a backend representation. - DBNull and null values are handled differently depending if a plain query is used - When - - Native .NET object to be converted. - Specifies that the value should be formatted for the extended query syntax. - Options to guide serialization. If null, a default options set is used. - Specifies that the value should be formatted as an extended query array element. - - - - Type name provided by the backend server. - - - - - NpgsqlDbType. - - - - - DbType. - - - - - Apply quoting. - - - - - Use parameter size information. - - - - - Reports whether a native to backend binary encoder is available for this type. - - - - - Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. - - - - - Construct an empty mapping. - - - - - Copy constuctor. - - - - - Add the given NpgsqlBackendTypeInfo to this mapping. - - - - - Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. - - Type OID provided by the backend server. - Type name provided by the backend server. - NpgsqlDbType - DbType - System type to convert fields of this type to. - Data conversion handler for text encoding. - Data conversion handler for binary data. - - - - Make a shallow copy of this type mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. - - - - - Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. - - - - - Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. - - - - - Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. - - - - - Add the given NpgsqlNativeTypeInfo to this mapping. - - - - - Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. - - Type name provided by the backend server. - NpgsqlDbType - DbType - Quote - Data conversion handler for text backend encoding. - Data conversion handler for binary backend encoding (for extended query). - - - - Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given DbType. - - - - - Retrieve the NpgsqlNativeTypeInfo with the given Type. - - - - - Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. - - - - - Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. - - - - - Get the number of type infos held. - - - - - Represents a PostgreSQL Point type - - - - - Represents a PostgreSQL Line Segment type. - - - - - Represents a PostgreSQL Path type. - - - - - Represents a PostgreSQL Polygon type. - - - - - Represents a PostgreSQL Circle type. - - - - - Represents a PostgreSQL inet type. - - - - - Represents a PostgreSQL MacAddress type. - - - - - - - The macAddr parameter must contain a string that can only consist of numbers - and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) - - - - This class contains helper methods for type conversion between - the .Net type system and postgresql. - - - - - A cache of basic datatype mappings keyed by server version. This way we don't - have to load the basic type mappings for every connection. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given NpgsqlDbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given DbType. - - - - - Find a NpgsqlNativeTypeInfo in the default types map that can handle objects - of the given System.Type. - - - - - This method is responsible to convert the byte[] received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - This method is responsible to convert the string received from the backend - to the corresponding NpgsqlType. - The given TypeInfo is called upon to do the conversion. - If no TypeInfo object is provided, no conversion is performed. - - - - - Create the one and only native to backend type map. - This map is used when formatting native data - types to backend representations. - - - - - This method creates (or retrieves from cache) a mapping between type and OID - of all natively supported postgresql data types. - This is needed as from one version to another, this mapping can be changed and - so we avoid hardcoding them. - - NpgsqlTypeMapping containing all known data types. The mapping must be - cloned before it is modified because it is cached; changes made by one connection may - effect another connection. - - - - - Attempt to map types by issuing a query against pg_type. - This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field - of each by querying pg_type. If the mapping is found, the type info object is - updated (OID) and added to the provided NpgsqlTypeMapping object. - - NpgsqlConnector to send query through. - Mapping object to add types too. - List of types that need to have OID's mapped. - - - - Summary description for NpgsqlQuery - - - - - For classes representing messages sent from the client to the server. - - - - - Set Cache Size. The default value is 20. - - - - - Lookup cached entity. null will returned if not match. - For both get{} and set{} apply LRU rule. - - key - - - - - The globally available text encoding used for frontend/backend communication. - - - - This class represents the base class for the state pattern design pattern - implementation. - - - This class represents the base class for the state pattern design pattern - implementation. - - - - - - This method is used by the states to change the state of the context. - - - - - Call ProcessBackendResponsesEnum(), and scan and discard all results. - - - - - This method is responsible to handle all protocol messages sent from the backend. - It holds all the logic to do it. - To exchange data, it uses a Mediator object from which it reads/writes information - to handle backend requests. - - - - - - Checks for context socket availability. - Socket.Poll supports integer as microseconds parameter. - This limits the usable command timeout value - to 2,147 seconds: (2,147 x 1,000,000 less than max_int). - In order to bypass this limit, the availability of - the socket is checked in 2,147 seconds cycles - - true, if for context socket availability was checked, false otherwise. - Context. - Select mode. - - - - Called from constructor of derived class. - - - - - Finalizer for HashAlgorithm - - - - - Computes the entire hash of all the bytes in the byte array. - - - - - When overridden in a derived class, drives the hashing function. - - - - - - - - When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. - - - - - When overridden in a derived class, initializes the object to prepare for hashing. - - - - - Used for stream chaining. Computes hash as data passes through it. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - The buffer to write the copied data to. - At what point in the outputBuffer to write the data at. - - - - Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. - - The buffer from which to grab the data to be copied. - The offset into the input buffer to start reading at. - The number of bytes to be copied. - - - - Get whether or not the hash can transform multiple blocks at a time. - Note: MUST be overriden if descendant can transform multiple block - on a single call! - - - - - Gets the previously computed hash. - - - - - Returns the size in bits of the hash. - - - - - Must be overriden if not 1 - - - - - Must be overriden if not 1 - - - - - Common base class for all derived MD5 implementations. - - - - - Called from constructor of derived class. - - - - - Creates the default derived class. - - - - - C# implementation of the MD5 cryptographic hash function. - - - - - Creates a new MD5CryptoServiceProvider. - - - - - Drives the hashing function. - - Byte array containing the data to hash. - Where in the input buffer to start. - Size in bytes of the data in the buffer to hash. - - - - This finalizes the hash. Takes the data from the chaining variables and returns it. - - - - - Resets the class after use. Called automatically after hashing is done. - - - - - This is the meat of the hash function. It is what processes each block one at a time. - - Byte array to process data from. - Where in the byte array to start processing. - - - - Pads and then processes the final block. - - Buffer to grab data from. - Position in buffer in bytes to get data from. - How much data in bytes in the buffer to use. - - - - Implements for version 3 of the protocol. - - - - - Reads a row, field by field, allowing a DataRow to be built appropriately. - - - - - Marker interface which identifies a class which may take possession of a stream for the duration of - it's lifetime (possibly temporarily giving that possession to another class for part of that time. - - It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. - - The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course - we can't make that inherit from this interface, alas. - - - - - Marker interface which identifies a class which represents part of - a response from the server. - - - - - Reads part of a field, as needed (for - and - - - - - Adds further functionality to stream that is dependant upon the type of data read. - - - - - Completes the implementation of Streamer for char data. - - - - - Completes the implementation of Streamer for byte data. - - - - - This class represents a BackEndKeyData message received - from PostgreSQL - - - - - This class represents the Bind message sent to PostgreSQL - server. - - - - - - This class represents the CancelRequest message sent to PostgreSQL - server. - - - - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - Represents a SQL statement or function (stored procedure) to execute - against a PostgreSQL database. This class cannot be inherited. - - - - - For prepared commands, captures the connection's - at the time the command was prepared. This allows us to know whether the connection was - closed since the command was prepared. - - - - - Initializes a new instance of the NpgsqlCommand class. - - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query. - - The text of the query. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - - - - Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. - - The text of the query. - A NpgsqlConnection that represents the connection to a PostgreSQL server. - The NpgsqlTransaction in which the NpgsqlCommand executes. - - - - Used to execute internal commands. - - - - - Attempts to cancel the execution of a NpgsqlCommand. - - This Method isn't implemented yet. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Create a new command based on this one. - - A new NpgsqlCommand object. - - - - Creates a new instance of an DbParameter object. - - An DbParameter object. - - - - Creates a new instance of a NpgsqlParameter object. - - A NpgsqlParameter object. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Internal query shortcut for use in cases where the number - of affected rows is of no interest. - - - - - Special adaptation of ExecuteBlind() that sets statement_timeout. - This exists to prevent Connector.SetBackendCommandTimeout() from calling Command.ExecuteBlind(), - which will cause an endless recursive loop. - - - Timeout in seconds. - - - - Executes a SQL statement against the connection and returns the number of rows affected. - - The number of rows affected if known; -1 otherwise. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader. - - A NpgsqlDataReader object. - - - - Sends the CommandText to - the Connection and builds a - NpgsqlDataReader - using one of the CommandBehavior values. - - One of the CommandBehavior values. - A NpgsqlDataReader object. - Currently the CommandBehavior parameter is ignored. - - - - This method binds the parameters from parameters collection to the bind - message. - - - - - Executes the query, and returns the first column of the first row - in the result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, - or a null reference if the result set is empty. - - - - Creates a prepared version of the command on a PostgreSQL server. - - - - - This method checks the connection state to see if the connection - is set or it is open. If one of this conditions is not met, throws - an InvalidOperationException - - - - - This method substitutes the Parameters, if exist, in the command - to their actual values. - The parameter name format is :ParameterName. - - A version of CommandText with the Parameters inserted. - - - - Process this.commandText, trimming each distinct command and substituting paramater - tokens. - - - UTF8 encoded command ready to be sent to the backend. - - - - Append a region of a source command text to an output command, performing parameter token - substitutions. - - Stream to which to append output. - Command text. - - - false if the query has multiple statements which are not allowed - - - - Gets or sets the SQL statement or function (stored procedure) to execute at the data source. - - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - - Gets or sets the wait time before terminating the attempt - to execute a command and generating an error. - - The time (in seconds) to wait for the command to execute. - The default is 20 seconds. - - - - Gets or sets a value indicating how the - CommandText property is to be interpreted. - - One of the CommandType values. The default is CommandType.Text. - - - - DB connection. - - - - - Gets or sets the NpgsqlConnection - used by this instance of the NpgsqlCommand. - - The connection to a data source. The default value is a null reference. - - - - DB parameter collection. - - - - - Gets the NpgsqlParameterCollection. - - The parameters of the SQL statement or function (stored procedure). The default is an empty collection. - - - - DB transaction. - - - - - Gets or sets the NpgsqlTransaction - within which the NpgsqlCommand executes. - - The NpgsqlTransaction. - The default value is a null reference. - - - - Gets or sets how command results are applied to the DataRow - when used by the Update - method of the DbDataAdapter. - - One of the UpdateRowSource values. - - - - Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. - - - - - Returns whether this query will execute as a prepared (compiled) query. - - - - - Design time visible. - - - - - This class is responsible to create database commands for automatic insert, update and delete operations. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The adapter. - - - - - This method is reponsible to derive the command parameter list with values obtained from function definition. - It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. - Parameters name will be parameter1, parameter2, ... - - NpgsqlCommand whose function parameters will be obtained. - - - - Gets the automatically generated object required - to perform insertions at the data source. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated object required to perform insertions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform insertions. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform updates at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform updates. - - - - - Gets the automatically generated object required to perform updates - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform updates. - - - - - Gets the automatically generated System.Data.Common.DbCommand object required - to perform deletions at the data source. - - - The automatically generated System.Data.Common.DbCommand object required to perform deletions. - - - - - Gets the automatically generated object required to perform deletions - at the data source, optionally using columns for parameter names. - - - If true, generate parameter names matching column names, if possible. - If false, generate @p1, @p2, and so on. - - - The automatically generated object required to perform deletions. - - - - - Applies the parameter information. - - The parameter. - The row. - Type of the statement. - if set to true [where clause]. - - - - Returns the name of the specified parameter in the format of @p#. - - The number to be included as part of the parameter's name.. - - The name of the parameter with the specified number appended as part of the parameter name. - - - - - Returns the full parameter name, given the partial parameter name. - - The partial name of the parameter. - - The full parameter name corresponding to the partial parameter name requested. - - - - - Returns the placeholder for the parameter in the associated SQL statement. - - The number to be included as part of the parameter's name. - - The name of the parameter with the specified number appended. - - - - - Registers the to handle the event for a . - - The to be used for the update. - - - - Adds an event handler for the event. - - The sender - A instance containing information about the event. - - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier. - - The original unquoted identifier. - - The quoted version of the identifier. Embedded quotes within the identifier are properly escaped. - - - - - Unquoted identifier parameter cannot be null - - - - Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier. - - The identifier that will have its embedded quotes removed. - - The unquoted identifier, with embedded quotes properly un-escaped. - - - - - Quoted identifier parameter cannot be null - - - - Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The beginning character or characters to use. The default is an empty string. - - - - - - - - Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens. - - - The ending character or characters to use. The default is an empty string. - - - - - - - - Represents the method that handles the Notice events. - - The source of the event. - A NpgsqlNoticeEventArgs that contains the event data. - - - - Represents the method that handles the Notification events. - - The source of the event. - A NpgsqlNotificationEventArgs that contains the event data. - - - - This class represents a connection to a - PostgreSQL server. - - - - - Initializes a new instance of the - NpgsqlConnection class. - - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Initializes a new instance of the - NpgsqlConnection class - and sets the ConnectionString. - - The connection used to open the PostgreSQL database. - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - An DbTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Begins a database transaction. - - A NpgsqlTransaction - object representing the new transaction. - - Currently there's no support for nested transactions. - - - - - Begins a database transaction with the specified isolation level. - - The isolation level under which the transaction should run. - A NpgsqlTransaction - object representing the new transaction. - - Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. - There's no support for nested transactions. - - - - - Opens a database connection with the property settings specified by the - ConnectionString. - - - - - This method changes the current database by disconnecting from the actual - database and connecting to the specified. - - The name of the database to use in place of the current database. - - - - Releases the connection to the database. If the connection is pooled, it will be - made available for re-use. If it is non-pooled, the actual connection will be shutdown. - - - - - When a connection is closed within an enclosing TransactionScope and the transaction - hasn't been promoted, we defer the actual closing until the scope ends. - - - - - Creates and returns a DbCommand - object associated with the IDbConnection. - - A DbCommand object. - - - - Creates and returns a NpgsqlCommand - object associated with the NpgsqlConnection. - - A NpgsqlCommand object. - - - - Releases all resources used by the - NpgsqlConnection. - - true when called from Dispose(); - false when being called from the finalizer. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Create a new connection based on this one. - - A new NpgsqlConnection object. - - - - Returns a copy of the NpgsqlConnectionStringBuilder that contains the parsed connection string values. - - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - Write each key/value pair in the connection string to the log. - - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Sets the `settings` ConnectionStringBuilder based on the given `connectionString` - - The connection string to load the builder from - - - - Refresh the cached _connectionString whenever the builder settings change - - - - - Returns the supported collections - - - - - Returns the schema collection specified by the collection name. - - The collection name. - The collection specified. - - - - Returns the schema collection specified by the collection name filtered by the restrictions. - - The collection name. - - The restriction values to filter the results. A description of the restrictions is contained - in the Restrictions collection. - - The collection specified. - - - - Clear connection pool. - - - - - Clear all connection pools. - - - - - Enlist transation. - - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - A counter that gets incremented every time the connection is (re-)opened. - This allows us to identify an "instance" of connection, which is useful since - some resources are released when a connection is closed (e.g. prepared statements). - - - - - Gets or sets the string used to connect to a PostgreSQL database. - Valid values are: -
    -
  • - Server: Address/Name of Postgresql Server; -
  • -
  • - Port: Port to connect to; -
  • -
  • - Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; -
  • -
  • - Database: Database name. Defaults to user name if not specified; -
  • -
  • - User Id: User name; -
  • -
  • - Password: Password for clear text authentication; -
  • -
  • - SSL: True or False. Controls whether to attempt a secure connection. Default = False; -
  • -
  • - Pooling: True or False. Controls whether connection pooling is used. Default = True; -
  • -
  • - MinPoolSize: Min size of connection pool; -
  • -
  • - MaxPoolSize: Max size of connection pool; -
  • -
  • - Timeout: Time to wait for connection open in seconds. Default is 15. -
  • -
  • - CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. -
  • -
  • - Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. -
  • -
  • - ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. -
  • -
  • - SyncNotification: Specifies if Npgsql should use synchronous notifications. -
  • -
  • - SearchPath: Changes search path to specified and public schemas. -
  • -
-
- The connection string that includes the server name, - the database name, and other parameters needed to establish - the initial connection. The default value is an empty string. - -
- - - Backend server host name. - - - - - Backend server port. - - - - - If true, the connection will attempt to use SSL. - - - - - Gets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets the name of the current database or the database to be used after a connection is opened. - - The name of the current database or the name of the database to be - used after a connection is opened. The default value is the empty string. - - - - Whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Gets the database server name. - - - - - Gets flag indicating if we are using Synchronous notification or not. - The default value is false. - - - - - Gets the current state of the connection. - - A bitwise combination of the ConnectionState values. The default is Closed. - - - - Gets whether the current state of the connection is Open or Closed - - ConnectionState.Open or ConnectionState.Closed - - - - Compatibility version. - - - - - Version of the PostgreSQL backend. - This can only be called when there is an active connection. - - - - - PostgreSQL server version. - - - - - Protocol version in use. - This can only be called when there is an active connection. - Always retuna Version3 - - - - - Whether the backend is an AWS Redshift instance - - - - - Process id of backend server. - This can only be called when there is an active connection. - - - - - Report whether the backend is expecting standard conformant strings. - In version 8.1, Postgres began reporting this value (false), but did not actually support standard conformant strings. - In version 8.2, Postgres began supporting standard conformant strings, but defaulted this flag to false. - As of version 9.1, this flag defaults to true. - - - - - Report whether the backend understands the string literal E prefix (>= 8.1). - - - - - Report whether the backend understands the hex byte format (>= 9.0). - - - - - The connector object connected to the backend. - - - - - Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. - - - - - User name. - - - - - Use extended types. - - - - - Password. - - - - - Determine if connection pooling will be used for this connection. - - - - - DB provider factory. - - - - - Return an exact copy of this NpgsqlConnectionString. - - - - - No integrated security if we're on mono and .NET 4.5 because of ClaimsIdentity, - see https://github.com/npgsql/Npgsql/issues/133 - - - - - This function will set value for known key, both private member and base[key]. - - - - - value, coerced as needed to the stored type. - - - - The function will modify private member only, not base[key]. - - - - value, coerced as needed to the stored type. - - - - The function will access private member only, not base[key]. - - - value. - - - - Clear the member and assign them to the default value. - - - - - Gets or sets the backend server host name. - - - - - Gets or sets the backend server port. - - - - - Gets or sets the name of the database to be used after a connection is opened. - - The name of the database to be - used after a connection is opened. - - - - Gets or sets the login user name. - - - - - Gets or sets the login password as a UTF8 encoded byte array. - - - - - Sets the login password as a string. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets a value indicating whether to attempt to use SSL. - - - - - Gets or sets the time to wait while trying to establish a connection - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - - - - Gets or sets the schema search path. - - - - - Gets or sets a value indicating whether connection pooling should be used. - - - - - Gets or sets the time to wait before closing unused connections in the pool if the count - of all connections exeeds MinPoolSize. - - - If connection pool contains unused connections for ConnectionLifeTime seconds, - the half of them will be closed. If there will be unused connections in a second - later then again the half of them will be closed and so on. - This strategy provide smooth change of connection count in the pool. - - The time (in seconds) to wait. The default value is 15 seconds. - - - - Gets or sets the minimum connection pool size. - - - - - Gets or sets the maximum connection pool size. - - - - - Gets or sets a value indicating whether to listen for notifications and report them between command activity. - - - - - Gets the time to wait while trying to execute a command - before terminating the attempt and generating an error. - - The time (in seconds) to wait for a command to complete. The default value is 20 seconds. - - - - Gets or sets a value indicating whether datareaders are loaded in their entirety (for compatibility with earlier code). - - - - - Compatibilty version. When possible, behaviour caused by breaking changes will be preserved - if this version is less than that where the breaking change was introduced. - - - - - Gets or sets the ootional application name parameter to be sent to the backend during connection initiation. - - - - - Gets or sets a value indicating whether to silently Prepare() all commands before execution. - - - - - Gets or sets the specified backend communication protocol version. - - - - - Gets the backend encoding. Always returns "UTF8". - - - - - Case insensative accessor for indivual connection string values. - - - - - Set both ImplicitDefault and ExplicitDefault to the 's default value. - - - - - - - - Set ImplicitDefault to the default value of 's type, - and ExplicitDefault to . - - - - - - - - Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication - - A X509CertificateCollection to be filled with one or more client certificates. - - - - Represents the method that is called to validate the certificate provided by the server during an SSL handshake - - The server's certificate - The certificate chain containing the certificate's CA and any intermediate authorities - Any errors that were detected - - - - !!! Helper class, for compilation only. - Connector implements the logic for the Connection Objects to - access the physical connection to the database, and isolate - the application developer from connection pooling internals. - - - - - Whether the backend is an AWS Redshift instance - - - - - Constructor. - - Connection string. - Pooled - Controls whether the connector can be shared. - - - - This method checks if the connector is still ok. - We try to send a simple query text, select 1 as ConnectionTest; - - - - - This method is responsible for releasing all resources associated with this Connector. - - - - - This method is responsible to release all portals used by this Connector. - - - - - Modify the backend statement_timeout value if needed. - - New timeout - - - - Default SSL CertificateSelectionCallback implementation. - - - - - Default SSL CertificateValidationCallback implementation. - - - - - Default SSL PrivateKeySelectionCallback implementation. - - - - - Default SSL ProvideClientCertificatesCallback implementation. - - - - - Default SSL ValidateRemoteCertificateCallback implementation. - - - - - This method is required to set all the version dependent features flags. - SupportsPrepare means the server can use prepared query plans (7.3+) - - - - - Opens the physical connection to the server. - - Usually called by the RequestConnector - Method of the connection pool manager. - - - - Closes the physical connection to the server. - - - - - Returns next portal index. - - - - - Returns next plan index. - - - - - Occurs on NoticeResponses from the PostgreSQL backend. - - - - - Occurs on NotificationResponses from the PostgreSQL backend. - - - - - Called to provide client certificates for SSL handshake. - - - - - Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. - - - - - Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. - - - - - Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. - - - - - Called to validate server's certificate during SSL handshake - - - - - Gets the current state of the connection. - - - - - Return Connection String. - - - - - Version of backend server this connector is connected to. - - - - - Whether the backend is an AWS Redshift instance - - - - - The physical connection socket to the backend. - - - - - The physical connection stream to the backend. - - - - - The top level stream to the backend. - - - - - Reports if this connector is fully connected. - - - - - The connection mediator. - - - - - Report if the connection is in a transaction. - - - - - Options that control certain aspects of native to backend conversions that depend - on backend version and status. - - - - - This class manages all connector objects, pooled AND non-pooled. - - - - Unique static instance of the connector pool - mamager. - - - Map of index to unused pooled connectors, avaliable to the - next RequestConnector() call. - This hashmap will be indexed by connection string. - This key will hold a list of queues of pooled connectors available to be used. - - - Timer for tracking unused connections in pools. - - - - Searches the shared and pooled connector lists for a - matching connector object or creates a new one. - - The NpgsqlConnection that is requesting - the connector. Its ConnectionString will be used to search the - pool for available connectors. - A connector object. - - - - Find a pooled connector. Handle shared/non-shared here. - - - - - Releases a connector, possibly back to the pool for future use. - - - Pooled connectors will be put back into the pool if there is room. - Shared connectors should just have their use count decremented - since they always stay in the shared pool. - - Connection to which the connector is leased. - The connector to release. - - - - Release a pooled connector. Handle shared/non-shared here. - - - - - Find an available pooled connector in the non-shared pool, or create - a new one if none found. - - - - - Put a pooled connector into the pool queue. - - Connection is leased to. - Connector to pool - - - - A queue with an extra Int32 for keeping track of busy connections. - - - - - Connections available to the end user - - - - - Connections currently in use - - - - - Represents information about COPY operation data transfer format as returned by server. - - - - - Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to read data from (if provided by user) - or for writing it (when generated by driver). - Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). - - - - - Given command is executed upon Start() and all data from fromStream is passed to it as copy data. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. - Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). - - - - - Called after writing all data to CopyStream to successfully complete this copy operation. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Will do nothing if current operation is not active. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start(). - User may provide a stream to constructor; it is used to pass to server all data read from it. - Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. - In latter case this is only available while the copy operation is active and null otherwise. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields expected on each input row if this operation is currently active, otherwise -1 - - - - - The Command used to execute this copy operation. - - - - - Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. - - - - - Represents an ongoing COPY FROM STDIN operation. - Provides methods to push data to server and end or cancel the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. - If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. - Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. - - - - - Sends given packet to server as a CopyData message. - Does not check for notifications! Use another thread for that. - - - - - Sends CopyDone message to server. Handles responses, ie. may throw an exception. - - - - - Sends CopyFail message to server. Handles responses, ie. should always throw an exception: - in CopyIn state the server responds to CopyFail with an error response; - outside of a CopyIn state the server responds to CopyFail with an error response; - without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. - - - - - Copy format information returned from server. - - - - - Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. - Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! - - - - - Created only by NpgsqlCopyInState.StartCopy() - - - - - Successfully completes copying data to server. Returns after operation is finished. - Does nothing if this stream is not the active copy operation writer. - - - - - Withdraws an already started copy operation. The operation will fail with given error message. - Does nothing if this stream is not the active copy operation writer. - - - - - Writes given bytes to server. - Fails if this stream is not the active copy operation writer. - - - - - Flushes stream contents to server. - Fails if this stream is not the active copy operation writer. - - - - - Not readable - - - - - Not seekable - - - - - Not supported - - - - - True while this stream can be used to write copy data to server - - - - - False - - - - - True - - - - - False - - - - - Number of bytes written so far - - - - - Number of bytes written so far; not settable - - - - - Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement - to execute against a PostgreSQL database - and an associated stream used to write results to (if provided by user) - or for reading the results (when generated by driver). - Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); - - - - - Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. - - - - - Given command is executed upon Start() and all requested copy data is written to toStream immediately. - - - - - Returns true if this operation is currently active and field at given location is in binary format. - - - - - Command specified upon creation is executed as a non-query. - If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. - Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. - - - - - Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. - - - - - Returns true if the connection is currently reserved for this operation. - - - - - The stream provided by user or generated upon Start() - - - - - The Command used to execute this copy operation. - - - - - Returns true if this operation is currently active and in binary format. - - - - - Returns number of fields if this operation is currently active, otherwise -1 - - - - - Faster alternative to using the generated CopyStream. - - - - - Represents an ongoing COPY TO STDOUT operation. - Provides methods to read data from server or end the operation. - - - - - Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. - If CopyStream is already set, it is used to write data received from server, after which the copy ends. - Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. - - - - - Called from NpgsqlOutStream.Read to read copy data from server. - - - - - Copy format information returned from server. - - - - - Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. - Passes data exactly as provided by the server. - - - - - Created only by NpgsqlCopyOutState.StartCopy() - - - - - Discards copy data as long as server pushes it. Returns after operation is finished. - Does nothing if this stream is not the active copy operation reader. - - - - - Not writable. - - - - - Not flushable. - - - - - Copies data read from server to given byte buffer. - Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. - Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. - - - - - Not seekable - - - - - Not supported - - - - - Returns a whole row of data from server without extra work. - If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. - - - - - True while this stream can be used to read copy data from server - - - - - True - - - - - False - - - - - False - - - - - Number of bytes read so far - - - - - Number of bytes read so far; can not be set. - - - - - Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). - - - - - Default delimiter. - - - - - Default separator. - - - - - Default null. - - - - - Default escape. - - - - - Default quote. - - - - - Default buffer size. - - - - - Constructor. - - - - - - Flush buffers. - - - - - Flush rows. - - - - - Flush fields. - - - - - Close the serializer. - - - - - Escape sequence for the given character. - - - - - - - Make room for bytes. - - - - - - Add bytes. - - - - - - End row. - - - - - Prefix field. - - - - - Field added. - - - - - Add null. - - - - - Add string. - - - - - - add Int32. - - - - - - Add Int64. - - - - - - Add number. - - - - - - Add bool - - - - - - Add DateTime. - - - - - - Report whether the serializer is active. - - - - - To Stream. - - - - - Delimiter. - - - - - Separator. - - - - - Escape. - - - - - Null. - - - - - Buffer size. - - - - - Report whether space remains in the buffer. - - - - - Strings to escape. - - - - - Escape sequence bytes. - - - - - Represents the method that handles the RowUpdated events. - - The source of the event. - A NpgsqlRowUpdatedEventArgs that contains the event data. - - - - Represents the method that handles the RowUpdating events. - - The source of the event. - A NpgsqlRowUpdatingEventArgs that contains the event data. - - - - This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. - - - - - Default constructor. - - - - - Constructor. - - - - - - Constructor. - - - - - - - Constructor. - - - - - - - Create row updated event. - - - - - - - - - - Create row updating event. - - - - - - - - - - Raise the RowUpdated event. - - - - - - Raise the RowUpdating event. - - - - - - Row updated event. - - - - - Row updating event. - - - - - Delete command. - - - - - Select command. - - - - - Update command. - - - - - Insert command. - - - - - Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. - - - - - Return the data type name of the column at index . - - - - - Return the data type of the column at index . - - - - - Return the Npgsql specific data type of the column at requested ordinal. - - column position - Appropriate Npgsql type for column. - - - - Return the column name of the column at index . - - - - - Return the data type OID of the column at index . - - FIXME: Why this method returns String? - - - - Has ordinal. - - - - - - - Return the column name of the column named . - - - - - Return the data DbType of the column at index . - - - - - Return the data NpgsqlDbType of the column at index . - - - - - Get specified field value. - /// - - - - - - Get the value of a column as a . - If the differences between and - in handling of days and months is not important to your application, use - instead. - - Index of the field to find. - value of the field. - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Get specified field value. - /// - - - - - - Send closed event. - - - - - Gets the value of a column converted to a Guid. - - - - - Gets the value of a column as Int16. - - - - - Gets the value of a column as Int32. - - - - - Gets the value of a column as Int64. - - - - - Gets the value of a column as Single. - - - - - Gets the value of a column as Double. - - - - - Gets the value of a column as String. - - - - - Gets the value of a column as Decimal. - - - - - Gets the value of a column as TimeSpan. - - - - - Copy values from each column in the current row into . - - Destination for column values. - The number of column values copied. - - - - Copy values from each column in the current row into . - - An array appropriately sized to store values from all columns. - The number of column values copied. - - - - Gets the value of a column as Boolean. - - - - - Gets the value of a column as Byte. - - - - - Gets the value of a column as Char. - - - - - Gets the value of a column as DateTime. - - - - - Returns a System.Data.DataTable that describes the column metadata of the DataReader. - - - - - This methods parses the command text and tries to get the tablename - from it. - - - - - Get enumerator. - - - - - - Is raised whenever Close() is called. - - - - - Gets the number of columns in the current row. - - - - - Gets the value of a column in its native format. - - - - - Gets the value of a column in its native format. - - - - - Gets a value indicating the depth of nesting for the current row. Always returns zero. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Contains the column names as the keys - - - - - Contains all unique columns - - - - - This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the - preload-reader option is not set in the connection string to resolve some potential backwards-compatibility - issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still - used to do the actual "leg-work" of turning a response stream from the server into a datareader-style - object - with CachingDataReader then filling it's cache from here. - - - - - Iterate through the objects returned through from the server. - If it's a CompletedResponse the rowsaffected count is updated appropriately, - and we iterate again, otherwise we return it (perhaps updating our cache of pending - rows if appropriate). - - The next we will deal with. - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Releases the resources used by the NpgsqlCommand. - - - - - Closes the data reader object. - - - - - Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. - - True if the reader was advanced, otherwise false. - - - - Advances the data reader to the next row. - - True if the reader was advanced, otherwise false. - - - - Return the value of the column at index . - - - - - Gets raw data from a column. - - - - - Gets raw data from a column. - - - - - Report whether the value in a column is DBNull. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Indicates if NpgsqlDatareader has rows to be read. - - - - - Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. - This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's - Rows into memory. There is a general principle that when there is a trade-off between a class design that - is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality - (in this case the internal-only functionality of caching results) that one can build the less efficent class - from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship - between ForwardsOnlyDataReader and CachingDataReader is an example of this). - Since the interface presented to the user is still forwards-only, queues are used to - store this information, so that dequeueing as we go we give the garbage collector the best opportunity - possible to reclaim any memory that is no longer in use. - ForwardsOnlyDataReader being used to actually - obtain the information from the server means that the "leg-work" is still only done (and need only be - maintained) in one place. - This class exists to allow for certain potential backwards-compatibility issues to be resolved - with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader - and hence never used internally. - - - - - This is the base class for NpgsqlDescribeStatement and NpgsqlDescribePortal. - - - - - - This class represents the Statement Describe message sent to PostgreSQL - server. - - - - - - This class represents the Portal Describe message sent to PostgreSQL - server. - - - - - - EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. - - - - - Notice information. - - - - - This class represents the ErrorResponse and NoticeResponse - message sent from PostgreSQL server. - - - - - Return a string representation of this error object. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Terse error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Backend protocol version in use. - - - - - Error and notice message field codes - - - - - Severity: the field contents are ERROR, FATAL, or PANIC (in an error message), - or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized - translation of one of these. Always present. - - - - - Code: the SQLSTATE code for the error (see Appendix A). Not localizable. Always present. - - - - - Message: the primary human-readable error message. This should be accurate - but terse (typically one line). Always present. - - - - - Detail: an optional secondary error message carrying more detail about the problem. - Might run to multiple lines. - - - - - Hint: an optional suggestion what to do about the problem. This is intended to differ - from Detail in that it offers advice (potentially inappropriate) rather than hard facts. - Might run to multiple lines. - - - - - Position: the field value is a decimal ASCII integer, indicating an error cursor - position as an index into the original query string. The first character has index 1, - and positions are measured in characters not bytes. - - - - - Internal position: this is defined the same as the P field, but it is used when the - cursor position refers to an internally generated command rather than the one submitted - by the client. - The q field will always appear when this field appears. - - - - - Internal query: the text of a failed internally-generated command. - This could be, for example, a SQL query issued by a PL/pgSQL function. - - - - - Where: an indication of the context in which the error occurred. - Presently this includes a call stack traceback of active procedural language functions - and internally-generated queries. The trace is one entry per line, most recent first. - - - - - Schema name: if the error was associated with a specific database object, - the name of the schema containing that object, if any. - - - - - Table name: if the error was associated with a specific table, the name of the table. - (Refer to the schema name field for the name of the table's schema.) - - - - - Column name: if the error was associated with a specific table column, the name of the column. - (Refer to the schema and table name fields to identify the table.) - - - - - Data type name: if the error was associated with a specific data type, the name of the data type. - (Refer to the schema name field for the name of the data type's schema.) - - - - - Constraint name: if the error was associated with a specific constraint, the name of the constraint. - Refer to fields listed above for the associated table or domain. - (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.) - - - - - File: the file name of the source-code location where the error was reported. - - - - - Line: the line number of the source-code location where the error was reported. - - - - - Routine: the name of the source-code routine reporting the error. - - - - - The level of verbosity of the NpgsqlEventLog - - - - - Don't log at all - - - - - Only log the most common issues - - - - - Log everything - - - - - This class handles all the Npgsql event and debug logging - - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - - This method is obsolete and should no longer be used. - It is likely to be removed in future versions of Npgsql - - The message to write to the event log - The minimum LogLevel for which this message should be logged. - - - - Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level - - The ResourceManager to get the localized resources - The name of the resource that should be fetched by the ResourceManager - The minimum LogLevel for which this message should be logged. - The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): - - - - Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - - - - Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Indexer - The parameter given to the Indexer - The value the Indexer is set to - - - - Writes the default log-message for the action of calling the Get-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - - - - Writes the default log-message for the action of calling the Set-part of a Property to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Property - The name of the Property - The value the Property is set to - - - - Writes the default log-message for the action of calling a Method without Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - - - - Writes the default log-message for the action of calling a Method with one Argument to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the Argument of the Method - - - - Writes the default log-message for the action of calling a Method with two Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - - - - Writes the default log-message for the action of calling a Method with three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - The value of the first Argument of the Method - The value of the second Argument of the Method - The value of the third Argument of the Method - - - - Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. - - The minimum LogLevel for which this message should be logged. - The name of the class that contains the Method - The name of the Method - A Object-Array with zero or more Ojects that are Arguments of the Method. - - - - Sets/Returns the filename to use for logging. - - The filename of the current Log file. - - - - Sets/Returns whether Log messages should be echoed to the console - - true if Log messages are echoed to the console, otherwise false - - - - The exception that is thrown when the PostgreSQL backend reports errors. - - - - - Construct a backend error exception based on a list of one or more - backend errors. The basic Exception.Message will be built from the - first (usually the only) error in the list. - - - - - Get object data. - - - - - - - Format a .NET style exception string. - Include all errors in the list, including any hints. - - - - - Append a line to the given Stream, first checking for zero-length. - - - - - Provide access to the entire list of errors provided by the PostgreSQL backend. - - - - - Severity code. All versions. - - - - - Error code. PostgreSQL 7.4 and up. - - - - - Basic error message. All versions. - - - - - Detailed error message. PostgreSQL 7.4 and up. - - - - - Suggestion to help resolve the error. PostgreSQL 7.4 and up. - - - - - Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. - - - - - Trace back information. PostgreSQL 7.4 and up. - - - - - Source file (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. - - - - - Schema name which relates to the error. PostgreSQL 9.3 and up. - - - - - Table name which relates to the error. PostgreSQL 9.3 and up. - - - - - Column name which relates to the error. PostgreSQL 9.3 and up. - - - - - Data type of column which relates to the error. PostgreSQL 9.3 and up. - - - - - Constraint name which relates to the error. PostgreSQL 9.3 and up. - - - - - String containing the sql sent which produced this error. - - - - - Returns the entire list of errors provided by the PostgreSQL backend. - - - - - This class represents the Execute message sent to PostgreSQL - server. - - - - - - A factory to create instances of various Npgsql objects. - - - - - Creates an NpgsqlCommand object. - - - - - This class represents the Flush message sent to PostgreSQL - server. - - - - - - For classes representing simple messages, - consisting only of a message code and length identifier, - sent from the client to the server. - - - - - This class is responsible for serving as bridge between the backend - protocol handling and the core classes. It is used as the mediator for - exchanging data generated/sent from/to backend. - - - - - - The current command timeout on the backend. This is set via "SET statement_timeout = (milliseconds)". - A value of -1 means the backend's timeout value is unknown because it has not yet been set. - - - - - EventArgs class to send Notification parameters. - - - - - Process ID of the PostgreSQL backend that sent this notification. - - - - - Condition that triggered that notification. - - - - - Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) - - - - - This class represents a parameter to a command that will be sent to server - - - - - Initializes a new instance of the NpgsqlParameter class. - - - - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and a value of the new NpgsqlParameter. - - The m_Name of the parameter to map. - An Object that is the value of the NpgsqlParameter. - -

When you specify an Object - in the value parameter, the DbType is - inferred from the .NET Framework type of the Object.

-

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. - This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. - Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

-
-
- - - Initializes a new instance of the NpgsqlParameter - class with the parameter m_Name and the data type. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - - - - Initializes a new instance of the NpgsqlParameter - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the NpgsqlDbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Initializes a new instance of the NpgsqlParameter. - - The m_Name of the parameter to map. - One of the DbType values. - The length of the parameter. - The m_Name of the source column. - One of the ParameterDirection values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which - Value is resolved. - The total number of decimal places to which - Value is resolved. - One of the DataRowVersion values. - An Object that is the value - of the NpgsqlParameter. - - - - Reset DBType. - - - - - Creates a new NpgsqlParameter that - is a copy of the current instance. - - A new NpgsqlParameter that is a copy of this instance. - - - - The collection to which this parameter belongs, if any. - - - - - Gets or sets the maximum number of digits used to represent the - Value property. - - The maximum number of digits used to represent the - Value property. - The default value is 0, which indicates that the data provider - sets the precision for Value. - - - - Whether to use an explicit cast when included in a query. - - - - - Gets or sets the number of decimal places to which - Value is resolved. - - The number of decimal places to which - Value is resolved. The default is 0. - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - The maximum size, in bytes, of the data within the column. - The default value is inferred from the parameter value. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets the DbType of the parameter. - - One of the DbType values. The default is String. - - - - Gets or sets a value indicating whether the parameter is input-only, - output-only, bidirectional, or a stored procedure return value parameter. - - One of the ParameterDirection - values. The default is Input. - - - - Gets or sets a value indicating whether the parameter accepts null values. - - true if null values are accepted; otherwise, false. The default is false. - - - - Gets or sets the m_Name of the NpgsqlParameter. - - The m_Name of the NpgsqlParameter. - The default is an empty string. - - - - The m_Name scrubbed of any optional marker - - - - - Gets or sets the m_Name of the source column that is mapped to the - DataSet and used for loading or - returning the Value. - - The m_Name of the source column that is mapped to the - DataSet. The default is an empty string. - - - - Gets or sets the DataRowVersion - to use when loading Value. - - One of the DataRowVersion values. - The default is Current. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Gets or sets the value of the parameter. - - An Object that is the value of the parameter. - The default value is null. - - - - Source column mapping. - - - - - Represents a collection of parameters relevant to a NpgsqlCommand - as well as their respective mappings to columns in a DataSet. - This class cannot be inherited. - - - - - Initializes a new instance of the NpgsqlParameterCollection class. - - - - - Invalidate the hash lookup tables. This should be done any time a change - may throw the lookups out of sync with the list. - - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The index of the new NpgsqlParameter object. - - - - Obsolete. Use AddWithValue instead. - - - Use caution when using this overload of the - Add method to specify integer parameter values. - Because this overload takes a value of type Object, - you must convert the integral value to an Object - type when the value is zero, as the following C# example demonstrates. - parameters.Add(":pname", Convert.ToInt32(0)); - If you do not perform this conversion, the compiler will assume you - are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. - - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. - - The name of the NpgsqlParameter. - The Value of the NpgsqlParameter to add to the collection. - One of the NpgsqlDbType values. - The length of the column. - The name of the source column. - The paramater that was added. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. - - The name of the parameter. - One of the DbType values. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the DbType values. - The length of the column. - The index of the new NpgsqlParameter object. - - - - Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the DbType values. - The length of the column. - The name of the source column. - The index of the new NpgsqlParameter object. - - - - Removes the specified NpgsqlParameter from the collection using the parameter name. - - The name of the NpgsqlParameter object to retrieve. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets the location of the NpgsqlParameter in the collection with a specific parameter name. - - The name of the NpgsqlParameter object to find. - The zero-based location of the NpgsqlParameter in the collection. - - - - Removes the specified NpgsqlParameter from the collection using a specific index. - - The zero-based index of the parameter. - - - - Inserts a NpgsqlParameter into the collection at the specified index. - - The zero-based index where the parameter is to be inserted within the collection. - The NpgsqlParameter to add to the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The name of the NpgsqlParameter to remove from the collection. - - - - Removes the specified NpgsqlParameter from the collection. - - The NpgsqlParameter to remove from the collection. - - - - Gets a value indicating whether a NpgsqlParameter exists in the collection. - - The value of the NpgsqlParameter object to find. - true if the collection contains the NpgsqlParameter object; otherwise, false. - - - - Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. - - The name of the NpgsqlParameter object to find. - A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. - true if the collection contains the parameter and param will contain the parameter; otherwise, false. - - - - Removes all items from the collection. - - - - - Gets the location of a NpgsqlParameter in the collection. - - The value of the NpgsqlParameter object to find. - The zero-based index of the NpgsqlParameter object in the collection. - - - - Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. - - The NpgsqlParameter to add to the collection. - The zero-based index of the new NpgsqlParameter object. - - - - Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. - - An Array to which to copy the NpgsqlParameter objects in the collection. - The starting index of the array. - - - - Returns an enumerator that can iterate through the collection. - - An IEnumerator that can be used to iterate through the collection. - - - - Add an Array of parameters to the collection. - - Parameters to add. - - - - Get parameter. - - - - - - - Get parameter. - - - - - - - Set parameter. - - - - - - - Set parameter. - - - - - - - In methods taking an object as argument this method is used to verify - that the argument has the type NpgsqlParameter - - The object to verify - - - - Report the offset within the collection of the given parameter. - - Parameter to find. - Index of the parameter, or -1 if the parameter is not present. - - - - Insert the specified parameter into the collection. - - Index of the existing parameter before which to insert the new one. - Parameter to insert. - - - - Report whether the specified parameter is present in the collection. - - Parameter to find. - True if the parameter was found, otherwise false. - - - - Remove the specified parameter from the collection. - - Parameter to remove. - True if the parameter was found and removed, otherwise false. - - - - Convert collection to a System.Array. - - Destination array. - Starting index in destination array. - - - - Convert collection to a System.Array. - - NpgsqlParameter[] - - - - Gets the NpgsqlParameter with the specified name. - - The name of the NpgsqlParameter to retrieve. - The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. - - - - Gets the NpgsqlParameter at the specified index. - - The zero-based index of the NpgsqlParameter to retrieve. - The NpgsqlParameter at the specified index. - - - - Report whether the collection is read only. Always false. - - - - - Report whether the collection is fixed size. Always false. - - - - - Report whether the collection is synchronized. - - - - - Gets the number of NpgsqlParameter objects in the collection. - - The number of NpgsqlParameter objects in the collection. - - - - Sync root. - - - - - This class represents the ParameterStatus message sent from PostgreSQL - server. - - - - - - This class represents the Parse message sent to PostgreSQL - server. - - - - - - This class represents a PasswordPacket message sent to backend - PostgreSQL. - - - - - Used when a connection is closed - - - - - This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. - - - - - The index of the current field in the stream, i.e. the one that hasn't - been read yet - - - - - This class represents a RowDescription message sent from - the PostgreSQL. - - - - - - This struct represents the internal data of the RowDescription message. - - - - - Provides the underlying mechanism for reading schema information. - - - - - Returns the MetaDataCollections that lists all possible collections. - - The MetaDataCollections - - - - Returns the Restrictions that contains the meaning and position of the values in the restrictions array. - - The Restrictions - - - - Returns the Databases that contains a list of all accessable databases. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Databases - - - - Returns the Tables that contains table and view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Tables - - - - Returns the Columns that contains information about columns in tables. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Columns. - - - - Returns the Views that contains view names and the database and schema they come from. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Views - - - - Returns the Users containing user names and the sysid of those users. - - The database connection on which to run the metadataquery. - The restrictions to filter the collection. - The Users. - - - - This class represents a StartupPacket message of PostgreSQL - protocol. - - - - - - Represents a completed response message. - - - - - This class represents the Sync message sent to PostgreSQL - server. - - - - - - Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. - - - - - Dispose. - - - - - - Commits the database transaction. - - - - - Rolls back a transaction from a pending state. - - - - - Rolls back a transaction from a pending savepoint state. - - - - - Creates a transaction save point. - - - - - Cancel the transaction without telling the backend about it. This is - used to make the transaction go away when closing a connection. - - - - - Gets the NpgsqlConnection - object associated with the transaction, or a null reference if the - transaction is no longer valid. - - The NpgsqlConnection - object associated with the transaction. - - - - DB connection. - - - - - Specifies the IsolationLevel for this transaction. - - The IsolationLevel for this transaction. - The default is ReadCommitted. - - - - This class provides many util methods to handle - reading and writing of PostgreSQL protocol messages. - - - - - This method takes a ProtocolVersion and returns an integer - version number that the Postgres backend will recognize in a - startup packet. - - - - - This method takes a version string as returned by SELECT VERSION() and returns - a valid version string ("7.2.2" for example). - This is only needed when running protocol version 2. - This does not do any validity checks. - - - - - This method gets a C NULL terminated string from the network stream. - It keeps reading a byte in each time until a NULL byte is returned. - It returns the resultant string of bytes read. - This string is sent from backend. - - - - - Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. - - Stream to read - byte buffer to fill - starting position to fill the buffer - number of bytes to read - The number of bytes read. May be less than count if no more bytes are available. - - - - Reads requested number of bytes from . If output matches exactly, and == false, is returned directly. - - Source array. - Starting position to read from - Number of bytes to read - Force a copy, even if the output is an exact copy of . - byte[] containing data requested. - - - - This method writes a string to the network stream. - - - - - This method writes a string to the network stream. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a C NULL terminated string to the network stream. - It appends a NULL terminator to the end of the String. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a byte to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a set of bytes to the stream. It also enables logging of them. - - - - - This method writes a C NULL terminated string limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - This method writes a C NULL terminated byte[] limited in length to the - backend server. - It pads the string with null bytes to the size specified. - - - - - Write a 32-bit integer to the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given stream in the correct byte order. - - - - - Read a 32-bit integer from the given array in the correct byte order. - - - - - Write a 16-bit integer to the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given stream in the correct byte order. - - - - - Read a 16-bit integer from the given array in the correct byte order. - - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Copy and possibly reverse a byte array, depending on host architecture endienness. - - Source byte array. - Starting offset in source array. - Number of bytes to copy. - Force a copy even if no swap is performed. - , reversed if on a little-endian architecture, copied if required. - - - - Represent the frontend/backend protocol version. - - - - - Represent the backend server version. - As this class offers no functionality beyond that offered by it has been - deprecated in favour of that class. - - - - - - Returns the string representation of this version in three place dot notation (Major.Minor.Patch). - - - - - Server version major number. - - - - - Server version minor number. - - - - - Server version patch level number. - - - - - A class to handle everything associated with SSPI authentication - - - - - Simplified SecBufferDesc struct with only one SecBuffer - - -
-
diff --git a/packages/Npgsql.2.2.5/lib/net45/de/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/de/Npgsql.resources.dll deleted file mode 100644 index 796bd3cbb..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/de/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/es/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/es/Npgsql.resources.dll deleted file mode 100644 index cfe39ebb1..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/es/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/fi/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/fi/Npgsql.resources.dll deleted file mode 100644 index a5481c12f..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/fi/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/fr/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/fr/Npgsql.resources.dll deleted file mode 100644 index 323d3aa9e..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/fr/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/ja/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/ja/Npgsql.resources.dll deleted file mode 100644 index e8f4db696..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/ja/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Npgsql.2.2.5/lib/net45/zh-CN/Npgsql.resources.dll b/packages/Npgsql.2.2.5/lib/net45/zh-CN/Npgsql.resources.dll deleted file mode 100644 index 8da70a8f3..000000000 Binary files a/packages/Npgsql.2.2.5/lib/net45/zh-CN/Npgsql.resources.dll and /dev/null differ diff --git a/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.XML b/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.XML deleted file mode 100644 index 567d46a5a..000000000 --- a/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.XML +++ /dev/null @@ -1,4645 +0,0 @@ - - - - Susanoo.Core - - - - - Allows declarative specification of when reading and writing to properties is allowed. - - - - - Initializes a new instance of the class. - - The actions in which this property is allowed to participate. - - - - Initializes a new instance of the class. - - - - - Gets the allowed actions for a property. - - The actions allowed. - - - - All possible compare methods for dynamic where clauses. - - - - - Remove the property from the comparison. - - - - - Provide a hand-coded comparison. - - - - - Values must equal. - - - - - Column value must be less than parameter value. - - - - - Column value must be less than or equal parameter value. - - - - - Column value must be greater than parameter value. - - - - - Column value must be greater than or equal parameter value. - - - - - Values must NOT equal. - - - - - Column value must start with parameter value. - - - - - Column value must end with parameter value. - - - - - Column value must contain parameter value. - - - - - Comparison options - - - - - Overrides the comparison with a provided comparison string. - - The override text. - - - - Gets the comparison format string. - - The compare. - System.String. - - - - Remove the property from the comparison. - - - - - Values must equal. - - - - - Column value must be less than parameter value. - - - - - Column value must be less than or equal parameter value. - - - - - Column value must be greater than parameter value. - - - - - Column value must be greater than or equal parameter value. - - - - - Values must NOT equal. - - - - - Column value must start with parameter value. - - - - - Column value must end with parameter value. - - - - - Column value must contain parameter value. - - - - - Replacement comparison for override - - - - - Initializes a new instance of the class. - - The override text. - - - - Override Text. - - - - - Gets the override text. - - The override text. - - - - Exposure points for extending or overriding Susanoo's behavior. - - - - - Gets or sets the command builder. - - The command builder. - value - - - - Retrieves the deserializer resolver. - - IDeserializerResolver. - - - - Retrieves the property metadata extractor Default uses ComponentModel Attributes. - - IPropertyMetadataExtractor. - - - - Retrieves a set of attributes to use to determine when to ignore a property unless explicitly included. - - System.Collections.Generic.IEnumerable<System.Attribute>. - - - - Called when an execution exception is encountered. - - The information. - The exception. - The parameters. - - - - Retrieves the order by regex used for whitelisting allowed cahracters. - - Regex. - - - - Retrieves the query wrapper format. - - System.String. - - - - Builds a query wrapper. - - The additional columns. - CommandModifier. - - - - Converts an object to an ExpandoObject. - - The anonymous object. - ExpandoObject. - - - - Basic details about a Command as defined by a command expression - - - - - Gets the command text. - - The command text. - - - - Gets the type of the database command. - - The type of the database command. - - - - Basic details about a Command and parameter building. - - - - - A fragment or step in the Fluent Pipeline API. - - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Builds the parameters (Not part of Fluent API). - - The database manager. - The filter. - Additional parameter object. - The explicit parameters. - IEnumerable<DbParameter>. - - - - Gets a value indicating whether storing column information is allowed. - - true if [allow store column information]; otherwise, false. - - - - Represents a ready to be executed command. - - - - - Gets the parameters. - - The parameters. - - - - Represents a ready to be executed command. - - - - - Gets the command text. - - The command text. - - - - Gets the type of the database command. - - The type of the database command. - - - - Gets the parameters. - - The parameters. - - - - Base implementation for Command Results. - - The type of the filter. - - - - Exposes information to Command Processors for result mapping. - - The type of the t filter. - - - - Gets or sets the command information. - - The command information. - - - - Converts to a single result expression. - - ICommandResultExpression<TFilter, TResult>. - - - - Gets the command modifiers. - - The command modifiers. - - - - Exposes property mapping export capabilities. - - - - - Exports a results mappings for processing. - - Type of the result. - IDictionary<System.String, IPropertyMapping>. - - - - Initializes a new instance of the class. - - The command. - The implementor. - - - - Adds a query wrapper. - - - - - Initializes a new instance of the class. - - The command. - - - - Gets the type argument hash code. - - The type. - BigInteger. - - - - Exports a results mappings for processing. - - Type of the result. - IDictionary<System.String, IPropertyMapping>. - - - - Converts to a single result expression. - - The type of the single. - ICommandResultExpression<TFilter, TSingle>. - - - - Tries to add command modifier. - - The modifier. - true if no other modifier exists with the same priority, false otherwise. - - - - Adds or overwrites a command modifier. - - The modifier. - - - - Gets or sets the command information. - - ICommandInfo<TFilter>. - The command information. - - - - Gets the mappings exporter. - - ICommandResultMappingExport. - - - - Gets the command expression. - - The command expression. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Gets the implementor of the Commandresult functionality. - - The implementor. - - - - Gets the command modifiers. - - The command modifiers. - - - - Shared components for Command Result Expressions. - - The type of the filter. - - - - Tries to add a command modifier. - - The modifier. - true if no other modifier exists with the same priority, false otherwise. - - - - Adds or replaces a command modifier. - - The modifier. - - - - Gets the command. - - The command. - - - - Describes and places a priority ranking on a modification of a command. - - - - - Gets or sets the priority. - - The priority. - - - - Gets or sets the description. - - The description. - - - - Gets or sets the modifier function. - - The modifier function. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides deserialization for built in types - - - - - Reads the first value only and casts to built in type. - - The type of the result. - The reader. - The column checker. - IEnumerable<TResult>. - Value types cannot cast null. - - - - Represents values from an IDataRecord object. - - - - - Initializes a new instance of the class. - - The columns Susanoo has discovered and will map to properties. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The columns Susanoo has discovered and will map to properties. - The values. - - Thrown if column count and value count do not match. - - - - - Returns the - responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - The to bind this object. - - - - Gets the value at a specified index. - - The ordinal. - System.Object. - - - - Gets the value for a column name. - - - - - Sets a value at a specified index. - - The ordinal. - The value. - - - - Sets a value to a column. - - The name of the column in SQL. - The value of the column in this record. - - - - Returns the array of values in the row. - - System.Object[]. - - - - Converts to a dictionary (Only named columns) - - Dictionary<System.String, System.Object>. - - - - Gets the length of the values array. - - The length. - - - - Overrides for Dynamic that uses common methods for properties rather than reflection binding for each property. - - - - - Initializes a new instance of the class. - - - The expression representing this during the dynamic binding process. - - The set of binding restrictions under which the binding is valid. - The columns. - - - - Initializes a new instance of the class. - - - The expression representing this during the dynamic binding process. - - The set of binding restrictions under which the binding is valid. - The runtime value represented by the . - The columns. - - - - Performs the binding of the dynamic invoke member operation. - - - An instance of the that represents the details of the dynamic operation. - - - An array of instances - arguments to the invoke member operation. - - - The new representing the result of the binding. - - - - - Performs the binding of the dynamic get member operation. - - - An instance of the that represents the details of the dynamic operation. - - - The new representing the result of the binding. - - - - - Performs the binding of the dynamic set member operation. - - - An instance of the that represents the details of the dynamic operation. - - - The representing the value for the set member operation. - - - The new representing the result of the binding. - - - - - Returns the enumeration of all dynamic member names. - - The list of dynamic member names. - - - - Performs the binding of the dynamic get index operation. - - - An instance of the that represents the details of the dynamic operation. - - - An array of instances - indexes for the get index operation. - - - The new representing the result of the binding. - - - - - Performs the binding of the dynamic set index operation. - - - An instance of the that represents the details of the dynamic operation. - - - An array of instances - indexes for the set index operation. - - The - representing the value for the set index operation. - - - The new representing the result of the binding. - - - - - Describes how to handle an exception based on conditions. - - - - - Initializes a new instance of the class. - - The condition function. - The handler. - - - - Gets the exception handler. - - The handler. - - - - Gets the condition function. - - The condition function. - - - - A simple bidirectional Dictionary that allows efficient lookup on either key or value. - - The type of the t1. - The type of the t2. - - - - Extension methods for ICommandResultExpressions - - - - - Gets a matching processor. - - The type of the filter. - The type of the result. - The result information. - IResultMapper<TResult>. - - - - Exposes property mapping export capabilities. - - - - - Exports this instance. - - IDictionary<System.String, Action<IPropertyMappingConfiguration<IDataRecord>>>. - - - - A step in the command definition Fluent API, in which properties are mapped to potential result data. - - The type of the result. - - - - Clears the result mappings. - - - - - Mapping options for a property in the result model. - - The property expression. - The options. - - - - Mapping options for a property in the result model. - - Name of the property. - The options. - - - - Maps the declarative properties. - - - - - Allows retrieval of configurations at the property level. - - - - - Assembles the mapping expression. - - The property. - Expression<Action<IDataRecord, int>>. - - - - Gets the property metadata. - - The property metadata. - - - - Gets or sets the name of the return column. - - The name of the return. - - - - Represents cached data and the rules surrounding it. - - - - - Initializes a new instance of the class. - - The item. - The mode. - The interval. - item - - - - Renews the intervals. - - - - - Gets the item. - - The item. - - - - Gets the caching mode. - - The caching mode. - - - - Gets the interval. - - The interval. - - - - Gets the call count. - - The call count. - - - - Gets the time stamp. - - The time stamp. - - - - Caching modes supported by Susanoo - - - - - No caching - - - - - Do not expire cached items - - - - - Expire the cached items every second interval - - - - - Expire the cached items every interval of requests for the data - - - - - Exception that describes a condition which has caused mapping to fail at a column to property level. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - The message and inner exception constructor information for this type. - - - - - Initializes a new instance of the class with a specified error message and a - reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception. If the - parameter is not a null reference (Nothing in Visual Basic), the current - exception is raised in a catch block that handles the inner exception. - - - - Initializes a new instance of the class with a specified message and error - code. - - The message that indicates the reason the exception occurred. - The error code (HRESULT) value associated with the exception. - - - - Initializes a new instance of the class with serialized data. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Tracks available fields in return results to allow for efficient column existence checks. - - - - - Tries the get value. - - The key. - The value. - true if contains key, false otherwise. - - - - Tries the get value. - - The key. - The value. - true if contains key, false otherwise. - - - - Initializes a new instance of the class. - - - - - Determines whether the specified record has a column. - - The record. - The name. - true if the specified record has column; otherwise, false. - - - - Determines whether the specified record has a column. - - The record. - The index. - true if the specified record has column; otherwise, false. - - - - Exports a dictionary showing mapped columns and indexes. - - Dictionary<System.String, System.Int32>. - - - - Copies this instance. - - ColumnChecker. - - - - Gets the count of columns mapped. - - The count. - - - - Provides an entry point to defining commands and therein entering the Susanoo command Fluent API. - - - - - Provides an entry point to defining commands and therein entering the Susanoo command Fluent API. - - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineResults on - the result of this call. - - The type of the filter. - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineResults on - the result of this call. - - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineResults on - the result of this call. - - The type of the filter. - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - commandText - No command text provided.;commandText - or - TableDirect is not supported.;commandType - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineResults on - the result of this call. - - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - commandText - No command text provided.;commandText - or - TableDirect is not supported.;commandType - - - - Contains information needed to build a command and provides FluentPipeline methods for defining results and - modifiers. - - The type of the filter. - - - - Susanoo's initial step in the command definition Fluent API, in which parameters and command information are - provided. - - The type of the filter. - - - - Realizes the pipeline with no result mappings. - - ICommandProcessor<TFilter>. - - - - Disables Susanoo's ability to cache a result sets column indexes and names for faster retrieval. - This is typically only needed for stored procedures that return different columns or columns - in different orders based on criteria in the procedure. - - ICommandExpression<TFilter>. - - - - ADO.NET ignores parameters with NULL values. calling this opts in to send DbNull in place of NULL on standard - parameters. - Properties with modifier Actions do NOT qualify for this behavior - - The mode. - ICommandExpression<TFilter>. - - - - Adds parameters that will always use the same value. - - Name of the parameter. - The parameter builder. - ICommandExpression<TResult>. - - - - Uses the explicit property inclusion mode for including parameters from a potential filter. - - ICommandExpression<TResult>. - - - - Excludes a property of the filter. - - The property expression. - ICommandExpression<T>. - - - - Excludes a property of the filter. - - Name of the property. - ICommandExpression<TFilter, TResult>. - - - - Includes a property of the filter. - - The property expression. - ICommandExpression<T>. - - - - Includes a property of the filter or modifies its inclusion. - - The property expression. - The parameter options. - ICommandExpression<T>. - - - - Includes a property of the filter. - - Name of the property. - ICommandExpression<T>. - - - - Includes a property of the filter or modifies its inclusion. - - Name of the property. - The parameter options. - ICommandExpression<T>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - The type of the result3. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - IResultMappingExpression<TResult>. - - - - Defines the result mappings (Moves to next Step in Fluent API). - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - The type of the result7. - IResultMappingExpression<TResult>. - - - - Gets or sets the command text. - - The command text. - - - - The constant parameters - - - - - The parameter exclusions - - - - - The parameter inclusions - - - - - The explicit inclusion mode - - - - - Initializes a new instance of the class. - - The command text. - Type of the command. - - databaseManager - or - commandText - - - No command text provided.;commandText - or - TableDirect is not supported.;commandType - - - - - Builds the parameters (Not part of Fluent API). - - The database manager. - The filter. - Additional parameters. - The explicit parameters. - IEnumerable<DbParameter>. - - - - Realizes the pipeline with no result mappings. - - ICommandProcessor<TFilter>. - - - - Adds parameters that will always use the same value. - - Name of the parameter. - The parameter modifier. - ICommandExpression<T>. - - - - ADO.NET ignores parameters with NULL values. calling this opts in to send DbNull in place of NULL on standard - parameters. - Properties with modifier Actions do NOT qualify for this behavior - - The mode. - ICommandExpression<TFilter>. - - - - Disables Susanoo's ability to cache a result sets column indexes and names for faster retrieval. - This is typically only needed for stored procedures that return different columns or columns in different orders - based on criteria in the procedure. - - ICommandExpression<TFilter>. - - - - Uses the explicit property inclusion mode for a potential filter. - - ICommandExpression<TResult>. - - - - Excludes a property of the filter. - - The property expression. - ICommandExpression<TFilter, TResult>. - - - - Excludes a property of the filter. - - Name of the property. - ICommandExpression<TFilter, TResult>. - - - - Includes the property of the filter. - - The property expression. - ICommandExpression<TFilter, TResult>. - - - - - Includes the property of the filter. - - The property expression. - The parameter options. - ICommandExpression<TFilter, TResult>. - - - - - Includes the property of the filter. - - Name of the property. - ICommandExpression<TFilter, TResult>. - - - - - Includes the property of the filter. - - Name of the property. - The parameter options. - ICommandExpression<TFilter, TResult>. - - - - Defines the result mappings. - - The type of the result. - ICommandResultExpression<TFilter, TResult>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - ICommandResultExpression<TFilter, TResult1, TResult2>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - The type of the result3. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - Defines the result mappings. - - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - The type of the result7. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - Computes the hash. - - - - - Builds the property inclusion parameters. - - The database manager. - The filter. - IEnumerable<DbParameter>. - - - - Replaces the null with database null. - - The value. - System.Object. - - - - Builds the parameters. - - The database manager. - The explicit parameters. - IEnumerable<DbParameter>. - - - - Builds the parameters. - - The database manager. - The filter. - The explicit parameters. - IEnumerable<DbParameter>. - - - - Gets the type of the database command. - - The type of the database command. - - - - Gets a value indicating whether storing column information is allowed. - - true if [allow store column information]; otherwise, false. - - - - Gets the command text. - - The command text. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - This class is used as the single entry point when using with Susanoo. - - - - - Gets the expression assembly that contains runtime compiled methods used for mappings. - - The expression assembly. - - - - The module builder for the dynamic assembly. - - - - - Handles exceptions in execution. - - The command expression information. - The ex. - The parameters. - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineMappings on - the result of this call. - - The type of the filter. - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - - - - Begins the command definition process using a Fluent API implementation, move to next step with DefineMappings on - the result of this call. - - The command text. - Type of the command. - ICommandExpression<TFilter, TResult>. - - - - Gets the database type from the CLR type for use in parameters. - - The CLR type. - DbType. - - - - Attempts to get a command processor by hash code. - - The hash. - The command processor. - true if a command processor with the same configuration has been registered and not garbage collected, - false otherwise. - - - - Attempts to get a command processor by name. - - The name of the processor. - The command processor. - true if a command processor with the same configuration has been registered and not garbage collected, - false otherwise. - - - - Registers the command processor. - - The processor. - The name. - The hash code override. - - - - Flushes caches on all command processors. - - - - - Clears any column index information that may have been cached. - - The processor. - processor - - - - Clears any column index information that may have been cached. - - - - - Flushes caches on a specific named command processor. - - The name of the command processor. - - - - Saves the dynamic assembly to disk. - - Name of the assembly file. - - - - Registers a bootstrapper which provides extension points in susanoo. - - The bootstrapper. - bootstrapper - - - - Gets the dynamic namespace. - - The dynamic namespace. - - - - Gets the command builder. - - The command builder. - - - - Gets the bootstrapper. - - The bootstrapper. - - - - Common components between CommandProcessors with ResultSets - - The type of the t filter. - - - - Shared members for all command processors that have ResultSets. - - - - - Shared members for all command processors that have ResultSets. - - - - - Clears any column index information that may have been cached. - - - - - Flushes the result cache. - - - - - Gets the command result information. - - The command result information. - - - - Shared members for all command processors. - - The type of the filter. - - - - Gets the command information. - - The command information. - - - - Initializes pipeline components of the result processor - - The command result information. - - - - Prevents a default instance of the class from being created. - - - - - Clears any column index information that may have been cached. - - - - - - Flushes the cache. - - - - - Updates the column index information. - - The information. - - - - Retrieves a copy of the column index information. - - ColumnChecker. - - - - Activates the result caching. - - The mode. - The interval. - - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - - Retrieves a cached result. - - The hash code. - The value. - ICommandProcessor<TFilter, TResult>. - - - - Gets the result cache container. - - The result cache container. - - - - Gets a value indicating whether [result caching enabled]. - - true if [result caching enabled]; otherwise, false. - - - - Gets the result caching interval. - - The result caching interval. - - - - Gets the result caching mode. - - The result caching mode. - - - - Gets the command expression. - - The command expression. - - - - Gets the mapping expressions. - - The mapping expressions. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the result. - - - - Allows customization of result set. - - The mappings. - ICommandResultExpression<TFilter, TResult>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult>. - - - - Builds the where filter. - - The options object. - ICommandExpression<TFilter>. - - - - Adds the order by expression. - - Name of the parameter. - ICommandResultExpression<TFilter, TResult>. - - - - Initializes a new instance of the class. - - The command. - - - - Initializes a new instance of the class. - - The command. - The implementor. - - - - Builds the where filter. - - The options object. - ICommandExpression<TFilter>. - - - - Builds the where filter. - - Name of the parameter. - ICommandExpression<TFilter>. - Conflicting priorities for command modifiers - - - - Builds the where filter implementation. - - The information. - ICommandResultExpression<TFilter, TResult>. - - - - Gets the default compare method. - - The type. - CompareMethod. - - - - Provide mapping actions and options for a result set - - The mappings. - ICommandResultExpression<TFilter, TResult>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult>. - - - - Builds the or regenerates a command processor from cache. - - The command result information. - The name. - ICommandProcessor<TFilter, TResult>. - - - - To the single result. - - The type of the single. - ICommandResultExpression<TFilter, TResult>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Gets the where filter options. Null if no where filter. - - The where filter options. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2>. - - - - Initializes a new instance of the class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3>. - - - - Initializes a new instance of the - class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - Initializes a new instance of the - class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - Initializes a new instance of the - class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - Initializes a new instance of the - class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - The type of the 7th result. - - - - Provides methods for customizing how results are handled and compiling result mappings. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - The type of the 7th result. - - - - Allows customization of a type of result set. - - The type of the result type. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - Realizes the pipeline and compiles result mappings. - - The name. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - Initializes a new instance of the - - class. - - The command. - - - - Provide mapping actions and options for a result set - - The type of the result. - The mappings. - ICommandResultExpression<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - Realizes the pipeline and compiles result mappings. - - The name of the processor. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Provides a common class for ICommandResultExpressions to store and retrieve mappings. - - The type of the filter. - - - - Provides a common form of storage and retrieval for mapping details of results. - - The type of the filter. - - - - Retrieves a mapping exporter. - - Type of the result. - IResultMappingExpression<TFilter, TResult>. - - - - Stores a mapping. - - The type of the result. - The mapping. - - - - Exports a results mappings for processing. - - Type of the result. - IDictionary<System.String, IPropertyMapping>. - - - - Initializes a new instance of the class. - - - - - Retrieves a mapping exporter. - - Type of the result. - IResultMappingExpression<TFilter, TResult>. - - - - Stores the mapping. - - The type of the t result. - The mapping. - - - - Exports a results mappings for processing. - - Type of the result. - IDictionary<System.String, IPropertyMapping>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Simple mapping when none were explicitly provided. - - - - - Initializes a new instance of the class. - - Type of the result. - - - - Maps the declarative properties. - - - - - Exports this instance. - - IDictionary<System.String, Action<IPropertyMappingConfiguration<IDataRecord>>>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - An extendable or replaceable component that chooses an appropriate way to deserialize an IDataReader to objects. - - - - - An extendable or replaceable component that chooses an appropriate way to deserialize an IDataReader to objects. - - - - - Retrieves and compiles, if necessary, an appropriate type deserializer. - - The type of the t result. - Func<IDataReader, ColumnChecker, IEnumerable<TResult>>. - - - - Retrieves and compiles, if necessary, an appropriate type deserializer. - - The type of the t result. - Func<IDataReader, ColumnChecker, IEnumerable<TResult>>. - - - - Resolves any custom deserializers. - - The type of the t result. - The mappings. - Func<IDataReader, ColumnChecker, IEnumerable<TResult>>. - - - - Provides deserialization for dynamic and a way to geta Key-Value-Pair. - - - - - Dumps all columns into an array for simple use cases. - - The reader. - The column checker. - dynamic. - - - - Provides the ability to map objects with constructors or special considerations. - - - - - Deserializes into a complex object from a data reader. - - The data reader. - The column object. - IEnumerable<TResult>. - - - - Common hashing method for Susanoo. - - - - - Computes the specified value into a hash. - - The value. - BigInteger. - - - - Gets the seed of hashes. - - The seed. - - - - Murmur3 helper extensions. - - - - - Rotates the ulong left. - - The original. - The bits. - System.UInt64. - - - - Rotates the ulong right. - - The original. - The bits. - System.UInt64. - - - - Converts byte array to ulong. - - The bb. - The position. - System.UInt64. - - - - Maps properties to a KeyValuePair using Activator - - The type of the t result. - - - - Initializes a new instance of the class. - - The mappings. - - - - Deserializes into a KeyValuePair from a data reader. - - The data reader. - The column object. - IEnumerable<TResult>. - - - - Performs the actual map operation between an IDataRecord and a result type. - - The type of the result. - - - - Performs the actual map operation between an IDataRecord and a result type. - - - - - Maps the result. - - The record. - IEnumerable<TResult>. - - - - Maps the result. - - The record. - The column checker. - The mapping. - IEnumerable<TResult>. - - - - Maps the result. - - The record. - IEnumerable<TResult>. - - - - A list that implements IResultSet - - The type of the t result. - - - - A result object that returns columns that were available. - - - - - Gets the available columns in the result set. - - The available columns. - - - - Provides the information to build a mapping report. - - The checker. - - - - Gets the available columns in the result set. - - The available columns. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2>. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - The type of the result3. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>, IEnumerable<TResult3>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3>. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>, IEnumerable<TResult3>, IEnumerable<TResult4>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>;>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>;>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4>. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>, IEnumerable<TResult3>, IEnumerable<TResult4>, IEnumerable<TResult5>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5>. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>, IEnumerable<TResult3>, IEnumerable<TResult4>, IEnumerable<TResult5>, IEnumerable<TResult6>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6>. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result1. - The type of the result2. - The type of the result3. - The type of the result4. - The type of the result5. - The type of the result6. - The type of the result7. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the 1st result. - The type of the 2nd result. - The type of the 3rd result. - The type of the 4th result. - The type of the 5th result. - The type of the 6th result. - The type of the 7th result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>, - IEnumerable<TResult7> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>, - IEnumerable<TResult7> - >. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple<IEnumerable<TResult1>, IEnumerable<TResult2>, IEnumerable<TResult3>, IEnumerable<TResult4>, IEnumerable<TResult5>, IEnumerable<TResult6>, IEnumerable<TResult7>>. - - - - Initializes a new instance of the - - class. - - The command result information. - The name. - - - - Executes the command using a provided database manager and optionally a filter to read parameters from and explicit - parameters. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>, - IEnumerable<TResult7>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>, - IEnumerable<TResult7>>. - - - - Executes the command using a provided database manager and optionally parameters. - - The database manager. - The filter. - The explicit parameters. - Tuple< - IEnumerable<TResult1>, - IEnumerable<TResult2>, - IEnumerable<TResult3>, - IEnumerable<TResult4>, - IEnumerable<TResult5>, - IEnumerable<TResult6>, - IEnumerable<TResult7>>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7>. - - - - A fully built and ready to be executed command expression with a filter parameter. - - The type of the filter. - - A fully built and ready to be executed command expression with a filter parameter. - - - - - Represents a fully built and ready to be executed command expression with no mapping expressions and a filter - parameter. - - The type of the filter. - - - - Executes the scalar action asynchronously. - - The type of the return. - The database manager. - The filter. - The cancellation token. - The explicit parameters. - Task<TReturn>. - - - - Executes the command and retrieves a single value. - - The type of the return. - The database manager. - The filter. - The explicit parameters. - TReturn. - - - - Executes the command and retrieves a single value. - - The type of the return. - The database manager. - The explicit parameters. - TReturn. - - - - Executes the command and returns a return code. - - The database manager. - The filter. - The explicit parameters. - System.Int32. - - - - Executes the command and returns a return code. - - The database manager. - The explicit parameters. - System.Int32. - - - - Initializes a new instance of the class. - - The command. - - - - Executes the scalar. - - The type of the return. - The database manager. - The filter. - The explicit parameters. - TReturn. - - - - Executes the scalar. - - The type of the return. - The database manager. - The explicit parameters. - TReturn. - - - - Executes the non query. - - The database manager. - The filter. - The explicit parameters. - System.Int32. - - - - Executes the non query. - - The database manager. - The explicit parameters. - System.Int32. - - - - Execute scalar as an asynchronous operation. - - The type of the t return. - The database manager. - The filter. - The cancellation token. - The explicit parameters. - Task<TReturn>. - - - - Executes the non query async. - - The database manager. - The filter. - The cancellation token. - The explicit parameters. - Task<System.Int32>. - - - - Executes the non query async. - - The database manager. - The filter. - The explicit parameters. - Task<System.Int32>. - - - - Executes the non query async. - - The database manager. - The cancellation token. - The explicit parameters. - Task<System.Int32>. - - - - Executes the non query async. - - The database manager. - The explicit parameters. - Task<System.Int32>. - - - - Execute scalar as an asynchronous operation. - - The type of the t return. - The database manager. - The cancellation token. - The explicit parameters. - Task<TReturn>. - - - - Execute scalar as an asynchronous operation. - - The type of the t return. - The database manager. - The filter. - The explicit parameters. - Task<TReturn>. - - - - Execute scalar as an asynchronous operation. - - The type of the t return. - The database manager. - The explicit parameters. - Task<TReturn>. - - - - Gets the command expression. - - The command expression. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - A step in the command definition Fluent API, in which properties are mapped to potential result data. - - The type of the result. - - - - Initializes a new instance of the class. - - - - - Clears the result mappings. - - - - - Mapping options for a property in the result model. - - The property expression. - The options. - - - - Mapping options for a property in the result model. - - Name of the property. - The options. - - - - Exports this instance. - - IDictionary<System.String, Action<IPropertyMappingConfiguration<IDataRecord>>>. - - - - - Maps the declarative properties. - - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Gets or sets the property metadata extractor. - - The property metadata extractor. - - - - Provides compilation and deserialization for complex types. - - - - - Compiles mappings. - - Func<IDataReader, ColumnChecker, IEnumerable<System.Object>>. - - - - Makes the compiled expression represent the correct type. - - The type of the t result. - Func<IDataReader, ColumnChecker, IEnumerable<TResult>>. - - - - A fully built and ready to be executed command expression with appropriate mapping expressions compiled and a - filter parameter. - - The type of the filter. - The type of the result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Represents a fully built and ready to be executed command expression with appropriate mapping expressions compiled - and a filter parameter. - - The type of the filter. - The type of the result. - Appropriate mapping expressions are compiled at the point this interface becomes available. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The cancellation token. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The cancellation token. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Updates the column index information. - - The column checker. - - - - Retrieves a copy of the column index info. - - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - IEnumerable<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - IEnumerable<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - IEnumerable<TResult>. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Gets the command modifiers ordered by priority (Higher is executed sooner). - - The command modifiers. - - - - Initializes a new instance of the class. - - The mappings. - The command modifiers. - The name. - - - - Enables result caching. - - The mode. - The interval. - ICommandProcessor<TFilter, TResult>. - @Calling EnableResultCaching with CacheMode None effectively would disable caching, - this is confusing and therefor is not allowed.;mode - - - - Clears any column index information that may have been cached. - - - - - - Updates the column index information. - - The column checker. - - - - Retrieves a copy of the column index info. - - ColumnChecker. - - - - Maps the result. - - The record. - IEnumerable<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - IEnumerable<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - IEnumerable<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The parameter object. - The explicit parameters. - IEnumerable<TResult>. - - - - Maps the result. - - The reader. - The column checker. - The mapping. - IEnumerable<TResult>. - - - - Maps the result. - - The record. - IEnumerable<TResult>. - - - - Builds the or regen result mapper from cache. - - The command result information. - The name. - IResultMapper<TResult>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The cancellation token. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The cancellation token. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Assembles a data command for an ADO.NET provider, - executes the command and uses pre-compiled mappings to assign the resultant data to the result object type. - - The database manager. - The filter. - The explicit parameters. - Task<IEnumerable<TResult>>. - - - - Gets the compiled mapping. - - The compiled mapping. - - - - Gets or sets the column report. - - The column report. - - - - Gets the command modifiers ordered by priority (Higher is executed sooner). - - The command modifiers. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - A step in the command definition Fluent API, in which properties are mapped to potential result data. - - The type of the filter. - The type of the result. - - - - A step in the command definition Fluent API, in which properties are mapped to potential result data. - - The type of the filter. - The type of the result. - - - - Clears the result mappings. - - IResultMappingExpression<TFilter, TResult>. - - - - Mapping options for a property in the result model. - - The property expression. - The options. - IResultMappingExpression<TFilter, TResult>. - - - - Mapping options for a property in the result model. - - Name of the property. - The options. - IResultMappingExpression<TFilter, TResult>. - - - - Initializes a new instance of the class. - - - - - Clears the result mappings. - - IResultMappingExpression<TFilter, TResult>. - - - - Mapping options for a property in the result model. - - The property expression. - The options. - IResultMappingExpression<TFilter, TResult>. - - - - Mapping options for a property in the result model. - - Name of the property. - The options. - IResultMappingExpression<TFilter, TResult>. - - - - Exports this instance. - - IDictionary<System.String, Action<IPropertyMappingConfiguration<IDataRecord>>>. - - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Gets the implementor this is the Bridge design pattern. - - The implementor. - - - - Standard Database Manager for Susanoo that supports any DB implementation that provides a DbProviderFactory. - - - Standard Database Manager for Susanoo that supports any DB implementation that provides a DbProviderFactory. - - - - - The interface a Data later abstraction must support for use with Susanoo - - - - - Executes the data reader. - - Name of the procedure. - Type of the command. - The parameters. - IDataReader. - - - - Executes the scalar. - - - Name of the procedure. - Type of the command. - The parameters. - A single value of type T. - - - - Executes the stored procedure. - - Name of the procedure. - Type of the command. - The parameters. - System.Int32. - - - - Creates a parameter. - - DbParameter. - - - - Creates the parameter. - - Name of the parameter. - The parameter direction. - Type of the parameter. - The value. - DbParameter. - - - - Creates the input parameter. - - Name of the parameter. - Type of the parameter. - The value. - DbParameter. - - - - Opens the connection. - - - - - Closes the connection. - - - - - Executes the data reader asynchronously. - - Name of the procedure. - Type of the command. - The cancellation token. - The parameters. - Task<IDataReader>. - - - - Executes the scalar action asynchronously. - - - The command text. - Type of the command. - The cancellation token. - The parameters. - Task<T>. - - - - Executes the stored procedure asynchronously. - - Name of the procedure. - Type of the command. - The cancellation token. - The parameters. - Task<System.Int32>. - - - - Gets the state of the connection. - - The state. - - - - Initializes a new instance of the class. - - The provider. - Name of the connection string. - The provider specific command settings. - The database provider type specified is not supported. - - - - Initializes a new instance of the class. - - The provider. - Name of the connection string. - The database provider type specified is not supported. - - - - Initializes a new instance of the class. - - Name of the connection string. - Provider is a required component of the connection - string.;connectionStringName - - - - Executes the data reader. - - Name of the procedure. - Type of the command. - The parameters. - IDataReader. - commandText - - - - Executes the scalar. - - - Name of the procedure. - Type of the command. - The parameters. - A single value of type T. - commandText - - - - Executes the stored procedure. - - Name of the procedure. - Type of the command. - The parameters. - System.Int32. - commandText - - - - Creates a parameter. - - DbParameter. - - - - Creates a parameter. - - Name of the parameter. - The parameter direction. - Type of the parameter. - The value. - DbParameter. - - - - Creates a parameter. - - Name of the parameter. - Type of the parameter. - The value. - DbParameter. - - - - Opens the connection. - - - - - Closes the connection. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Performs a bulk copy operation. - - The type of the record. - Name of the destination table. - The records. - The white list of properties to include. Default is NULL. - The black list of properties to exclude. Default is NULL. - - - - - Realizes an instance of the class. - - - - - Returns value or it's string representation. - - The new type. - The value. - Value or string representation. - - - - Begins a transaction. - - DbTransaction. - - - - Preps the command. - - The connection. - The command text. - Type of the command. - The parameters. - DbCommand. - - - - Adjusts the command by provider. - - The command. - - - - Opens the connection. - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only - unmanaged resources. - - - - Executes the data reader asynchronously. - - Name of the procedure. - Type of the command. - The cancellation token. - The parameters. - IDataReader. - commandText - - - - Executes the stored procedure asynchronously. - - Name of the procedure. - Type of the command. - The cancellation token. - The parameters. - System.Int32. - commandText - - - - Execute scalar as an asynchronous operation. - - - The command text. - Type of the command. - The cancellation token. - The parameters. - Task<T>. - commandText - - - - Gets the connection. - - The connection. - - - - Gets the provider. - - The provider. - - - - Gets the state of the connection. - - The state. - - - - Helpful Expression extension methods - - - - - Given an expression, extract the listed property name; similar to reflection but with familiar LINQ+lambdas. - - the model type to extract property names - the value type of the expected property - expression that just selects a model property to be turned into a string - indicated property name - - - - Opt-in levels for sending null values in parameters. - - - - - Default option, standard ADO.NET behavior, values of null exclude the parameter from the parameter set. - - - - - Replaces null with DbNull on filter properties when no modifier action is provided. - - - - - Replaces null with DbNull on all filter properties. - - - - - Replaces null with DbNull on explicit parameters only. - - - - - Replaces null with DbNull on all parameters EXCEPT constants. - - - - - Allows configuration of the Susanoo mapper at the property level during command definition. - - - - - Uses the specified alias when mapping from the data call. - - The alias. - Susanoo.IResultMappingExpression<TFilter,TResult>. - - - - Describes the required methods for determining if a property can be mapped using Susanoo. - - - - - Finds the properties on an object and resolves if they are actionable for mapping and discerns appropriate - declarative aliases. - - Type of the object. - The actions. - The whitelist. - The blacklist. - Dictionary<PropertyInfo, PropertyMap>. - - - - Determines whether the specified property is blacklisted. - - The property info. - The blacklist. - true if the specified property information is blacklisted; otherwise, false. - - - - Determines whether the specified property is whitelisted. - - The property info. - The whitelist. - true if the specified property information is whitelisted; otherwise, false. - - - - Resolves the name of the return column as defined declaratively. - - The property information. - The custom attributes. - System.String. - - - - Default implementation of IPropertyMetadataExtractor that uses Component Model ColumnAttributes to resolve - declarative aliases. - - - - - Finds the properties on an object and resolves if they are actionable for mapping and discerns appropriate - declarative aliases. - - Type of the object. - The actions. - The whitelist. - The blacklist. - Dictionary<PropertyInfo, PropertyMap>. - filterType - - - - Resolves the name of the return column as defined declaratively. - - The property information. - The custom attributes. - System.String. - propertyInfo - - - - Determines whether the specified property is whitelisted. - - The property info. - The whitelist. - true if the specified property information is whitelisted; otherwise, false. - propertyInfo - - - - Determines whether the specified property is blacklisted. - - The property info. - The blacklist. - true if the specified property information is blacklisted; otherwise, false. - propertyInfo - - - - Determines whether the specified property is actionable. - - The property information. - The custom attributes. - The actions. - The whitelist. - The blacklist. - true if [is actionable property] [the specified property information]; otherwise, false. - propertyInfo - or - customAttributes - - - - Determines whether the specified property is restricted declaratively. - - The property information. - The attributes. - The actions. - true if [is allowed by attribute] then [the specified property information]; otherwise, false. - - - - Indicates which actions are allowed for a property. - - - - - Indicates no actions allowed - - - - - Indicates read action allowed - - - - - Indicates update action allowed - - - - - Indicates insert action allowed - - - - - Indicates delete action allowed - - - - - Represents basic information about a property including its reflection information and alias. - - - - - Initializes a new instance of the class. - - The property. - The alias. - property - - - - Gets the property information. - - The property information. - - - - Gets the alias. - - The alias. - - - - Allows configuration of the Susanoo mapper at the property level during command definition. - - - - - Initializes a new instance of the class. - - The property information. - - - - Assembles the mapping expression. - - The property. - Expression<Action<IDataRecord>>. - - - - Uses the specified alias when mapping from the data call. - - The alias. - Susanoo.IResultMappingExpression<TFilter,TResult>. - - - - Processes the value in some form before assignment. - - The process. - IPropertyMappingConfiguration<TRecord>. - - - - Assembles the assignment expression. - - The property. - The record parameter. - The ordinal parameter. - BinaryExpression. - - - - Gets the conversion process. - - The conversion process. - - - - Gets the active alias of the property. - - The active alias. - - - - Gets the PropertyInfo that describes the property. - - The property reflection meta data. - - - - Gets the hash code used for caching result mapping compilations. - - The cache hash. - - - - Example of Thread static scoping. May use this in the future for command batching. - - - - - - Provides all options for overriding Susanoo's behavior. - - - - - Gets or sets the command builder. - - The command builder. - value - - - - Retrieves the deserializer resolver. - - IDeserializerResolver. - - - - Retrieves the property metadata extractor Default uses ComponentModel Attributes.. - - IPropertyMetadataExtractor. - - - - Retrieves a set of attributes to use to determine when to ignore a property unless explicitly included. - - System.Collections.Generic.IEnumerable<System.Attribute>. - - - - Called when an execution exception is encountered. - - The information. - The exception. - The parameters. - - - - Retrieves the order by regex used for whitelisting allowed cahracters. - - Regex. - - - - Retrieves the query wrapper format. - - System.String. - - - - Builds a query wrapper. - - - - diff --git a/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.dll b/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.dll deleted file mode 100644 index 76b814221..000000000 Binary files a/packages/Susanoo.Core.0.8.4.36/lib/net45/Susanoo.Core.dll and /dev/null differ diff --git a/packages/repositories.config b/packages/repositories.config deleted file mode 100644 index 32e4503ca..000000000 --- a/packages/repositories.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/semver.txt b/semver.txt new file mode 100644 index 000000000..9bcab4a46 --- /dev/null +++ b/semver.txt @@ -0,0 +1 @@ +1.50.5-alpha1 \ No newline at end of file